树莓派DHT11温湿度监控
2019-02-24 本文已影响0人
hey白启明
功能
- 远程监控温湿度 数据持久化 在网页查看历史数据
效果
-
系统实物图
树莓派和DHT11
-
网页
温湿度
原理
- 使用树莓派I/O驱动DHT11 向模块发送一个高电平后 根据时序信号接收数据
- DHT11原理
硬件设计
- 使用树莓派为DHT11供电 将BCM编码的18引脚与DHT11的OUT引脚连接
软件设计
- 开启DHT11
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 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
- 校验数据
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)