温湿度检测部分
温湿度传感器选用DHT21,传输协议为单总线协议。传感器模块有三根数据线,3.3V-5.2V的VCC(红色),建议供电5V;GND(黑色);SDA数据传输线(黄色),可用于读写数据。所测量的湿度数据范围为0-99.9%RH,25摄氏度下精度为正负3%RH;温度测量范围为-40℃-80摄氏度,精度为正负0.3摄氏度,最大精度为正负1摄氏度。
1.单总线通信特殊说明
1.典型电路中建议连接线长度小于30米事用5.1K上拉电阻,大于30米时根据实际情况减低上拉电阻的阻值。
2.使用3.3V电压供电时连接线长度不得大于100cm。否则线路压降会导致传感器供电不足,造成测量偏差。
3.读取传感器最小间隔时间为2S,读取时间小于2S可能会导致读取数值不准确或者通信不成功。
4.每次读出的温湿度数值是上一次测量的结果,欲获取实时数据,需连续读取两次,
建议连续多次读取传感器,且每次读取传感器间隔大于 2 秒即可获得准确的数据。
2.什么叫单总线协议?
单总线即只有一根数据线,系统中的数据交流以及控制均由数据线完成。该总线连接处理器的漏级开路或者三态端口,单总线要求外接一个5.1K的上拉电阻,这样主机在不闲置时,状态为高电平。
3.单总线传输时序
DHT21一次只能传输40位数据,数据的最高八位为湿度高8为,其次8位为湿度低8位,再其次8位为温度高8位,然后是温度低8为,最后8为为校验位。如图:
![![AEUU26LG%_HU7Q(C70H](D:\博客\宠物箱总结\A]EUU26LG%_HU7Q(C7
0H.png)
用户主机(MCU)发送一次起始信号(把数据总线 SDA 拉低至少 800µs)后,AM2301 从休眠模式转换到高速模式。待主机开始信号结束后,AM2301 发送响应信号,从数据总线 SDA 串行送出 40Bit的数据,先发送字节的高位;发送的数据依次为湿度高位、湿度低位、温度高位、温度低位、校验位,发送数据结束触发一次信息采集,采集结束传感器自动转入休眠模式,直到下一次通信来临。如图: