利用树莓派连接DHT11读取温湿度

材料:

树莓派3B+,DHT11温湿度传感器,杜邦线。
安装VNC,安装Python编译环境。

步骤:

**

步骤一:开始树莓派的VNC服务:

通过ssh远程连接树莓派,输入命令:

sudo raspi-config 

进入该页面,进入选项5:

*在这里插入图片描述

进入另一页面后,打开选项3:
在这里插入图片描述
确认开启VNC服务:
在这里插入图片描述

*

电脑打开VNC软件然后连接:(通过树莓派的IP地址连接)
在这里插入图片描述

步骤二:安装Python编译环境:

(1) 安装python库

sudo apt-get install python-dev

(2) 执行更新

sudo easy_install -U  distribute

(3) 安装python-pip

sudo apt-get install python-pip

(4) 安装python的GPIO库

sudo pip install rpi.gpio

步骤三:完成树莓派与DHT11的连接

在这里插入图片描述

在这里插入图片描述
接线如下:
VCC–物理引脚1
DATE–物理引脚7
GND–物理引脚9

在这里插入图片描述

步骤三:完成获取DHT11温湿度的代码

通过VNC在树莓派上建立一个空文档:

在这里插入图片描述
然后在文档中输入下列代码:

import RPi.GPIO as GPIO
import time
 
channel =4 
data = []
j = 0
 
GPIO.setmode(GPIO.BCM)
 
time.sleep(1)
 
GPIO.setup(channel, GPIO.OUT)
GPIO.output(channel, GPIO.LOW)
time.sleep(0.02)
GPIO.output(channel, GPIO.HIGH)
GPIO.setup(channel, GPIO.IN)
 
while GPIO.input(channel) == GPIO.LOW:
  continue
while GPIO.input(channel) == GPIO.HIGH:
  continue
 
while j < 40:
  k = 0
  while GPIO.input(channel) == GPIO.LOW:
    continue
  while GPIO.input(channel) == GPIO.HIGH:
    k += 1
    if k > 100:
      break
  if k < 8:
    data.append(0)
  else:
    data.append(1)
 
  j += 1
 
print ("sensor is working.")
print (data)
 
humidity_bit = data[0:8]
humidity_point_bit = data[8:16]
temperature_bit = data[16:24]
temperature_point_bit = data[24:32]
check_bit = data[32:40]
 
humidity = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 0
 
for i in range(8):
  humidity += humidity_bit[i] * 2 ** (7-i)
  humidity_point += humidity_point_bit[i] * 2 ** (7-i)
  temperature += temperature_bit[i] * 2 ** (7-i)
  temperature_point += temperature_point_bit[i] * 2 ** (7-i)
  check += check_bit[i] * 2 ** (7-i)
 
tmp = humidity + humidity_point + temperature + temperature_point
 
if check == tmp:
  print ("temperature :", temperature, "*C, humidity :", humidity, "%")
else:
  print ("wrong")
  print ("temperature :", temperature, "*C, humidity :", humidity, "% check :", check, ", tmp :", tmp)

GPIO.cleanup()

PS:该程序中“channel=4”的意思是DATA所接的GPIO.7所对应的BCM编码,即随着GPIO的接口的BCM编码的改变,“channel”的赋值也随之改变。

最后确认引脚连接无误后,运行该程序:
在这里插入图片描述
即可获取此时的温度和湿度。

程序每运行一次就可以得知此刻环境的温湿度了。

  • 3
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值