咸鱼ZTMR实例—DHT11温湿度模块
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
主控板:ZTMR1.1开发板
DHT11温湿度模块
模块介绍:
- 可以检测周围环境的湿度和温度
- 传感器采用DHT11
- 湿度测量范围:20%-95%(0度-50度范围)
- 湿度测量误差:±5%
- 温度测量范围:0度-50度 温度测量误差:±2度
- 工作电压3.3V-5V
- 输出形式 数字输出
- 设有固定螺栓孔,方便安装
- 小板PCB尺寸:3.2cm * 1.4cm
- 电源指示灯(红色)
模块使用说明:
DHT11的供电电压为 3-5.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。
DATA 用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次 通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数
部分用于以后扩展,现读出为零.操作流程如下: 一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据
+8bi温度整数数据+8bit温度小数数据
+8bit校验和 数据传送正确时校验和数据等于“ 8bit 湿度整数数据 +8bit 湿度小数数据
+8bi 温度整数数据 +8bit 温度小数数据 ”所得结果的末8位。
基本用法
from pyb import Pin
from dht import DHT11 #导入模块
dt.measure() #温湿度采集
dt.temperature() #获取温度值
dt.humidity() #获取湿度值
接线说明
接线 | 说明 (3线制) |
---|---|
VCC | 外接3.3V-5V |
GND | 外接GND |
DATA | 小板开关数字量输出接口 接单片机IO口 |
示例代码
#引入相关模块
from pyb import delay,Pin
from dht import DHT11
#创建DTH11对象dt
dt=DHT11(Pin('Y11'))
delay(1000) #首次启动停顿1秒然传感器稳定
while True:
dt.measure() #温湿度采集
tem=dt.temperature() #获取温度值
hum=dt.humidity() #获取湿度值
print('temperature:'+ str(tem))
print('humidity:'+ str(hum))
delay(1000)
dht.py
# DHT11/DHT22 driver for MicroPython on ESP8266
# MIT license; Copyright (c) 2016 Damien P. George
try:
from esp import dht_readinto
except:
from pyb import dht_readinto
class DHTBase:
def __init__(self, pin):
self.pin = pin
self.buf = bytearray(5)
def measure(self):
buf = self.buf
dht_readinto(self.pin, buf)
if (buf[0] + buf[1] + buf[2] + buf[3]) & 0xff != buf[4]:
raise Exception("checksum error")
class DHT11(DHTBase):
def humidity(self):
return self.buf[0]
def temperature(self):
return self.buf[2]
class DHT22(DHTBase):
def humidity(self):
return (self.buf[0] << 8 | self.buf[1]) * 0.1
def temperature(self):
t = ((self.buf[2] & 0x7f) << 8 | self.buf[3]) * 0.1
if self.buf[2] & 0x80:
t = -t
return t
串口显示