|
[项目] 【花雕学编程】Arduino动手做(218)--DHT22模块五个小实验 |
代码解读 这段代码使用 Adafruit DHT Unified 库 读取 DHT22 传感器的温度和湿度数据,核心逻辑如下: 1. 初始化 ✅ #define DHTPIN 2 → 数据引脚连接到 Arduino D2 ✅ #define DHTTYPE DHT22 → 指定传感器类型(DHT22,可改为 DHT11 或 DHT21) ✅ DHT_Unified dht(DHTPIN, DHTTYPE); → 初始化 DHT 传感器 2. 设备检测 ✅ sensor_t sensor; dht.temperature().getSensor(&sensor); → 获取温度传感器详情 ✅ dht.humidity().getSensor(&sensor); → 获取湿度传感器详情 ✅ 打印传感器信息(型号、分辨率、最大/最小值) 3. 读取温湿度数据 ✅ sensors_event_t event; dht.temperature().getEvent(&event); → 获取温度事件 ✅ dht.humidity().getEvent(&event); → 获取湿度事件 ✅ isnan(event.temperature) → 检测错误数据(避免错误读取) 4. 采集间隔 ✅ delayMS = sensor.min_delay / 1000; → 根据传感器特性自动设定读取间隔 5. 输出数据 ✅ 打印温度 → Serial.print(event.temperature); Serial.println("°C"); ✅ 打印湿度 → Serial.print(event.relative_humidity); Serial.println("%"); 这段代码让 DHT22 传感器定期测量温湿度,并打印结果。 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百一十八:DHT22 单总线数字温湿度传感器 AM2302电子积木模块 项目之五:将实时温湿度数据显示在 0.96寸 OLED 屏幕上 实验开源代码
|
代码解读 这段代码实现了一个基于Arduino平台的温湿度监测系统,使用DHT22传感器采集环境温湿度数据,并通过OLED显示屏实时显示,同时将数据通过串口输出。 1. 头文件包含
Wire.h:Arduino的I2C通信库,用于OLED显示屏与Arduino之间的数据传输。 Adafruit_GFX.h:Adafruit图形库的基础库,提供绘图函数,如绘制线条、矩形、文字等,为后续在OLED上显示内容提供基础支持。 Adafruit_SSD1306.h:Adafruit针对SSD1306 OLED显示屏的驱动库,封装了对SSD1306显示屏的各种操作,如初始化、清屏、显示文字等。 DHT.h:DHT传感器库,用于与DHT系列温湿度传感器进行通信,读取温湿度数据。 2. 宏定义与对象创建
SCREEN_WIDTH 和 SCREEN_HEIGHT:定义OLED显示屏的宽度和高度,这里使用的是128x64像素的屏幕。 OLED_RESET:OLED显示屏的复位引脚,设为 -1 表示与Arduino的复位引脚共用。 Adafruit_SSD1306 display:创建一个SSD1306显示屏对象,指定屏幕尺寸、I2C通信对象 Wire 和复位引脚。 DHTPIN:定义DHT22传感器的数据引脚连接到Arduino的数字引脚2。 DHTTYPE:指定传感器类型为DHT22。 DHT dht:创建一个DHT对象,用于与DHT22传感器进行通信。 3. setup() 函数
Serial.begin(115200):初始化串口通信,波特率设置为115200,用于将数据通过串口输出到计算机。 display.begin(SSD1306_SWITCHCAPVCC, 0x3C):初始化OLED显示屏,SSD1306_SWITCHCAPVCC 表示使用内部稳压器为显示屏供电,0x3C 是OLED显示屏的I2C地址。 若初始化失败,通过串口输出错误信息,并进入死循环。 清除显示屏内容,设置文字大小为1,文字颜色为白色,设置光标位置为(0, 0),显示“Initializing...”提示信息,然后更新显示屏。 调用 dht.begin() 初始化DHT22传感器,并延迟2秒等待传感器稳定。 4. loop() 函数
dht.readHumidity() 和 dht.readTemperature():分别读取DHT22传感器的湿度和温度数据。 使用 isnan() 函数检查读取的数据是否为有效值,若无效则通过串口输出错误信息,在OLED上显示“DHT22 Error!”,延迟2秒后返回。 清除显示屏内容,设置文字大小为2,设置光标位置为(0, 0),显示温度信息;再将光标位置设置为(0, 32),显示湿度信息,然后更新显示屏。 通过串口输出温度和湿度信息。 延迟2秒后再次循环执行。 总结 这段代码实现了一个简单的温湿度监测系统,通过DHT22传感器采集环境温湿度数据,使用OLED显示屏实时显示数据,并通过串口将数据输出到计算机,方便用户查看和分析。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed