携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情
温湿度传感器
温湿度传感器的型号有很多种。
- 有I2C通信的sht系列
这种传感器封装小,功耗低,i2c读取也比较好对接。
对于我们这个项目,之所以没有选择,是因为考虑到大部分人手工焊接的熟练程度,这种封装的传感器很难焊接好,另外,使用热风枪焊接的话,又很容易损坏这个传感器。
- 单总线模式的dht系列
dht11传感器也是数字量信号,他是将温湿度传感器&一个微型mcu集成在一起。封装成为一个小的模组。
这种传感器体积大,但是便于焊接,对接方式为单总线通讯,也比较简单。
因此我们这个项目就选择dht11.
DHT11
引脚
DHT11只有4个引脚,如上图。供电3-5.5V。我们板子的电源有5V供电,满足供电需求。
一个NC,一个DATA。实际上只用3根线。
协议
单总线协议mcu作为通讯主机,传感器作为通信从机。通信的时序图如下:
从上图我们可以看出,想要读取到温湿度的值,需要以下步骤:
- 板子上电,延时1S,等待dht11状态初始化稳定
- 主机拉低DATA,并维持低电>200us
- 主机拉高DATA,释放DATA总线
- 从机检测到DATA读取信号,先拉低DATA表示收到CMD
- 之后从机拉高DATA表示要输出信号,高电平时间87us
- 传感器开始输出DATA
- 传感器输出完毕后,释放总线,进入等待下一个CMD到来
原理图
快捷a调出符号库,搜索dht11,放置到工作区。连接gnd,vcc,data上拉后输出dht11data信号。
完成后如下图:
原理图比较简单,注意供电处的滤波电容和data线上的上拉电阻。
下一节讲继电器信号输出