DHT11温湿度传感器 |
您所在的位置:网站首页 › 温度湿度感应探头 › DHT11温湿度传感器 |
一、DHT11的简单介绍
DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH, 温度±2℃, 量程湿度20-90%RH, 温度0~50℃——百度百科 注解:相对湿度(RH)是指单位体积空气中,实际水蒸气的分压与相同温度和体积下水饱和蒸气压的百分比。(实际水蒸气的分压/水饱和蒸汽压) 基本组成:电阻式感湿元件 一个NTC测温元件 一个高性能8位单片机 参数指标:
长期稳定性:传感器在规定时间内仍保持不超过允许误差范围的能力。 互换性:指在统一规格的一批零件(或部件)中,不经选择、修配或调整,任取其一,都能装在机器上达到规定的功能要求。 (在现代工业生产中常采用专业化的协作生产,即用分散制造、集中装配的办法来提高生产率,保证产品质量和降低成本。要实行专业化生产保证产品具有互换性,必须采用互换性生产原则) 电气特性
(1)引脚说明 代码参考视频:使用Arduino的DHT11和DHT22温湿度传感器教程[How To Mechatronics] 这个视频讲解质量相对较高,参考下面又评论按照这个代码做出来了,所以我认为比较靠谱。 其他学习视频:《单片机实践项目》之DHT11温湿度传感器详细讲解(51单片机) 另外还有较为简单易懂的靠谱的代码: #include //引用dht11库文件,使得下面可以调用相关参数 #define DHT11PIN 8 //定义温湿度针脚号为8号引脚 void setup() { //初始化设置 Serial.begin(9600); //设置波特率参数 pinMode(DHT11PIN,OUTPUT); } void loop(){ //循环 int chk = DHT11.read(DHT11PIN); //将读取到的值赋给chk int hum=(float)DHT11.humidity; //将湿度值赋给hum Serial.print("hum:"); Serial.print(hum); Serial.print("%/t"); int tem=(float)DHT11.temperature; //将湿度值赋给tem Serial.print(" tem:"); Serial.print(tem); Serial.println("℃"); delay(2000); }代码源地址:DHT11详细介绍 注:由于直接引用的是DHT的库函数的原因。不需要按照下图的时序输入开始指令 DATA 用于Arduino与DHT11之间的通讯和同步,一次传输40位数据,高位先出。 数据格式(从前到后):8bit湿度整数数据、8bit湿度小数数据、8bit温度整数数据、8bit温度小数数据+8bit校验位 注:校检位作用——检测温湿度结果是否正确 校检位原理: 校验位定义“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据”结果末八位 =8bit校验位 实例: 1.DHT11 上电后,测试环境温湿度数据 (DHT11 上电后要等待 1S 以越过不稳定状态在此期间不能发送任何指令) 2.记录数据 DHT11 的 DATA 数据线由上拉电阻拉高一直保持高电平 3.此时 DHT11 的DATA 引脚处于输入状态,时刻检测外部信号 步骤二主机先发送开始信号,从机会返回一个相应信号进行应答,随后信号线拉高准备接收数据: 1.Arduino的 I/O 设置为输出同时输出低电平,且低电平保持时间不能小于 18ms 2.Arduino的 I/O设置为输入状态,由于上拉电阻,微处理器的 I/O 即 DHT11 的 DATA 数据线也随之变高,等待 DHT11 作出回答信号 第三步:开始接收数据(一次接收40位)。 1.DHT11 的 DATA 引脚检测到外部信号有低电平时,等待外部信号低电平结束 2.延迟后 DHT11 的 DATA引脚处于输出状态,并且输出 80 微秒的低电平作为应答信号,紧接着输出 80 微秒的高电平通知外设准备接收数据 3.微处理器的 I/O 此时处于输入状态,检测到 I/O 有低电平(DHT11 回应信号)后,等待 80 微秒的高电平后的数据接收,发送信号如图 由 DHT11 的 DATA 引脚输出 40 位数据,微处理器根据 I/O 电平的变化接收 40 位数据。数据格式如下 结束: 1.DHT11 的 DATA 引脚输出 40 位数据后,继续输出低电平 50 微秒后转为输入状态,由于上拉电阻随之变为高电平。 2. DHT11 内部重新检测环境温湿度数据,幵记录数据,等待外部信号的到来。 工作步骤演示图 发送开始信号 Arduino DHT11注:开始信号——Arduino的 I/O 设置为输出同时输出低电平,且低电平保持时间不能小于 18ms,随后抬高。 接收信号并发送信号准通知后者准备接收数据 DHT11 Arduino注释:发送信号内容 —— 80 微秒的低电平作为应答信号紧接着输出 80 微秒的高电平通知准备接收数据 DATA引脚发送数据 DHT11 Arduino |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |