本文主要是介绍Arduino方式玩转ESP8266之云平台实战02-驱动DHT11获取温湿度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
本节,我们学习如何使用NodeMCU驱动DHT11温湿度传感器,之后的课程中,我们将把采集的温度和湿度数据上传给云平台。
一、基础知识
1.DHT11简介
DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数
字模块采集技术和温湿度传感技术,确保产品具有枀高的可靠性与卓越的长期稳定性。传感器包括一
个电容式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接
采用单总线方式通信,发送开始信号,等待设备相应以及返回数据,最后收到DHT11返回结束信号后,释放总线。注意数据传输过程中 一次传送 40 位数据,高位先出,具体对应关系如下
0011010100000000000110000000010001010001温度高8位温度低 8 位温度高 8 位温度低 8 位8位校验位
2.安装DHT11驱动软件包
点击菜单栏项目->加载库->管理库,进入下图页面,搜索DHT11,安装SimpleDHT软件包即可
3.硬件连接
NodeMCU和DHT11连接对应关系如下
硬件连接时如图如下
二、实例
#include <SimpleDHT.h>// for DHT11,
// VCC: 5V or 3V
// GND: GND
// DATA: 14 / D5
int pinDHT11 = 14;
SimpleDHT11 dht11(pinDHT11);void setup() {Serial.begin(115200);
}void loop() {// start working...Serial.println("=================================");Serial.println("Sample DHT11...");// read without samples.byte temperature = 0;byte humidity = 0;int err = SimpleDHTErrSuccess;if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);return;}Serial.print("Sample OK: ");Serial.print((int)temperature); Serial.print(" *C, "); Serial.print((int)humidity); Serial.println(" H");// DHT11 sampling rate is 1HZ.delay(1500);
}
三、运行
打开串口监视器,点击上传按钮
上文可以看到程序循环打印出温度和湿度
四、结语
如您在使用过程中有任何问题,请加QQ群进一步交流。
QQ交流群:906015840 (备注:物联网项目交流)
公众号:物联网客栈,扫码关注获取更多资料。
项目实战:https://edu.51cto.com/sd/0c0ad
一叶孤沙出品:一沙一世界,一叶一菩提
这篇关于Arduino方式玩转ESP8266之云平台实战02-驱动DHT11获取温湿度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!