26浏览
查看: 26|回复: 6

[项目] 【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度

[复制链接]
【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度图1

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度图2

驴友花雕  中级技神
 楼主|

发表于 9 小时前

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度图2

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度图1

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度图3
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 9 小时前

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度

  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百五十六:AHT20 温湿度传感器模块 高精度湿度探头 DHT11升级款I2C
  项目之二:通过串口监视器进行实时显示温湿度数据

实验开源代码

  1. /*
  2.   【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百五十六:AHT20 温湿度传感器模块 高精度湿度探头 DHT11升级款I2C
  4.   项目之二:通过串口监视器进行实时显示温湿度数据
  5. */
  6. // 示例:从 AHT 传感器获取独立的温湿度数据
  7. #include <Adafruit_AHTX0.h> // 引入 Adafruit AHTX0 传感器库
  8. // 创建 AHT 传感器对象
  9. Adafruit_AHTX0 aht;
  10. // 创建温湿度传感器指针
  11. Adafruit_Sensor *aht_humidity, *aht_temp;
  12. void setup(void) {
  13.   Serial.begin(115200); // 初始化串口通信,波特率设为 115200
  14.   while (!Serial)
  15.     delay(10); // 对 Zero、Leonardo 等板子,等待串口就绪
  16.   Serial.println("Adafruit AHT10/AHT20 传感器测试!");
  17.   // 检测 AHT 传感器是否连接成功
  18.   if (!aht.begin()) {
  19.     Serial.println("未找到 AHT10/AHT20 传感器,请检查接线!");
  20.     while (1) {
  21.       delay(10); // 如果传感器未连接,则进入死循环
  22.     }
  23.   }
  24.   Serial.println("成功检测到 AHT10/AHT20!");
  25.   // 获取温度传感器对象并打印详细信息
  26.   aht_temp = aht.getTemperatureSensor();
  27.   aht_temp->printSensorDetails();
  28.   // 获取湿度传感器对象并打印详细信息
  29.   aht_humidity = aht.getHumiditySensor();
  30.   aht_humidity->printSensorDetails();
  31. }
  32. void loop() {
  33.   // 创建传感器数据对象
  34.   sensors_event_t humidity;
  35.   sensors_event_t temp;
  36.   // 读取最新温湿度数据
  37.   aht_humidity->getEvent(&humidity);
  38.   aht_temp->getEvent(&temp);
  39.   // 显示温度数据
  40.   Serial.print("\t\t温度: ");
  41.   Serial.print(temp.temperature);
  42.   Serial.println(" °C");
  43.   // 显示湿度数据
  44.   Serial.print("\t\t湿度: ");
  45.   Serial.print(humidity.relative_humidity);
  46.   Serial.println(" % RH");
  47.   delay(100); // 采样间隔 100 毫秒
  48.   /* 串口绘图模式:输出温湿度数据,适用于 Serial Plotter */
  49.   Serial.print(temp.temperature);
  50.   Serial.print(",");
  51.   Serial.print(humidity.relative_humidity);
  52.   Serial.println();
  53.   delay(10); // 额外短暂延迟
  54. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 9 小时前

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度

代码解读
1、初始化传感器

aht.begin(); 检测 AHT10/AHT20 是否连接成功。

如果未检测到传感器,进入 死循环,防止后续代码执行。

2、获取温湿度传感器对象

aht_temp = aht.getTemperatureSensor();

aht_humidity = aht.getHumiditySensor();

调用 printSensorDetails(); 输出传感器详细信息。

3、读取温湿度数据

aht_humidity->getEvent(&humidity);

aht_temp->getEvent(&temp);

获取温度 temp.temperature 和 湿度 humidity.relative_humidity。

4、串口输出

以 格式化方式 输出温湿度数据,使其直观可读。

5、适配 Serial Plotter

Serial.print(temp.temperature); Serial.print(","); Serial.print(humidity.relative_humidity); Serial.println();

以 逗号分隔格式 输出数据,方便绘制波形图。

6、采样间隔

delay(100); 控制数据更新频率,避免数据过于密集。

应用场景
环境监测:用于记录温湿度变化

智能家居:控制空调、加湿器等设备

物联网 (IoT):远程采集数据,上传至云端

这段代码可以用于 Arduino Serial Plotter 实时观察 温湿度曲线,适用于 数据分析、可视化展示。


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 9 小时前

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度

实验串口返回情况

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 9 小时前

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度


实验串口绘图器返回情况

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度图1


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 9 小时前

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度

实验场景图

【花雕学编程】Arduino动手做(256)---AHT20串口显示温湿度图1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail