一.介绍
传感器模块DHT11 / DHT22用于测量温度/湿度。在本教程中,我们将学习如何使用Arduino ESP32与DHT11 / DHT22(这里使用DHT11)进行通信,以读取温度和湿度值。
二.元器件清单
- ESP32开发板
- 一个DHT11模块
- 面包板
- 导线若干
三.电路图
四.代码设计
我们将使用由Adafruit提供的DHT22库传感器。你可以在这里下载https:
//github.com/adafruit/DHT-sensor-library/archive/master.zip
载后,将其解压缩并将解压缩的文件夹复制到Arduino文件夹下的libraries文件夹:C:/ Users / [YOUR_USER_NAME] / Documents / Arduino / libraries注意:如果您已经打开了Arduino IDE,则需要重新启动Arduino IDE才能生效。 该库提供了一些功能,以便您可以使用它们从DHT22读取数据,例如:
从传感器读取湿度:
readHumidity():
如果参数flag为true,则从传感器读取的温度为华氏温度值。如果参数flag为false,则从传感器读取的温度为摄氏度值:
readTemperature(bool flag)
要使用这些功能,您必须创建一个实例(变量)类型DHT 。例如:DHT dht(DHTPIN,DHTTYPE)。这将创建一个带有2个输入的DHT实例(这是C ++构造函数)是DHTPIN(ESP32的引脚连接到DHT22的数据引脚)和DHTTYPE(这是DHT传感器类型(DHT11或DHT22)),我这里使用的是DHT11,因为传感器很慢,所以我们需要在测量之间延迟(大约2秒)。
以下就是这个项目的代码:
/*******************************************************
ESP32 DHT11/22 获取温湿度
功能:从DHT11获取温湿度打印到串口监视器
引脚:DATA-> GPIO 23
Designer: Code_Mouse
Date:2018-9-7
*******************************************************/
#include "DHT.h"
#define DHTPIN 23 //DHT11 DATA 数据引脚
#define DHTTYPE DHT11 //选择的类型
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
Serial.println("DHT22 sensor!");
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C ");
delay(2000);
}
五.测试代码
要测试代码,只需使用Arduino IDE上传它。然后,您应该能看到串口监视器里的温湿度的数据。以下就是实现的效果:
请问这错误是什么
12:15:41.868 -> rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
12:15:41.868 -> flash read err, 1000
12:15:41.868 -> ets_main.c 371
12:15:42.174 -> ets Jun 8 2016 00:22:57
这看起来是固件的问题啊,程序应该是没问题的
请问怎么将采集的温度通过WiFi传输到电脑用网络调试助手现实呢? ✗不是吧!✗
可以参考一下这篇:https://www.qutaojiao.com/242.html
怎么样能将esp32板子设置成一个WiFi,然后电脑去连接它,然后板子上边的数据传送到网络调试助手上边呢? ✗不是吧!✗ ✗不是吧!✗ ✗不是吧!✗
你用的是什么网络调试助手啊?可以通过http协议,MQTT协议等进行网络传输。电脑连接wifi然后通过esp32传输给电脑的我没做过,但是esp32联网然后通过网络传输到服务器的我倒是做过了,改天我研究下发个教程。
您好,你这边有 esp32 开发板http ,mqtt协议案例吗,我想学一下,可以发一下案例链接吗?
我邮箱:2868613334@qq.com 谢谢
网站上找找哦 有一些教程的
为开发版编译错误请问怎么解决
✗汗✗
你看看还有提示啥错误,是不是库没安装,esp32环境配置好了吗
对,就是库没安装,已解决,谢谢您。
不用谢哦,感谢支持!
读取的值怎样转化为字符串在oled上显示??
可以使用toString()
找到方法了,谢谢
怎样将读取的数字转化为字符串在oled显示呢??
点个赞
过来学习
学习
学习学习
?
学习学习
加油加油
学习学习
请问 如何使用蓝牙模块上传到小程序呢
蓝牙模块没联网上传不到小程序里啊,通过wifi模块可以