这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【Arduino_UNO_Q】物联网温湿度计

共1条 1/1 1 跳转至

【Arduino_UNO_Q】物联网温湿度计

工程师
2026-06-08 17:11:41     打赏

【Arduino UNO Q】物联网温湿度计

本文介绍了 Arduino UNO Q 开发板结合 Arduino App Lab 软件、Arduino Cloud 云服务平台、AHT30 传感器以及板载 LED 矩阵,实现物联网云端温湿度计的项目设计,包括硬件连接、软件安装、工程创建、流程图、工程代码、效果演示等。

项目介绍

  • 准备工作:硬件连接、Arduino App Lab 安装、软件包更新、Arduino Cloud 注册等;

  • 工程加载:创建工程、流程图、工程代码等;

  • 调试运行:编译上传、运行程序、云端更新、效果演示等。

arduino_cloud_workflow.jpg

相较于传统 MQTT 接入 Home Assistant 的方案,该项目为物联网开发提供了一种更加 轻量化 和 快速 的解决方案。

硬件连接

  • 连接显示屏(或 SSH 远程登录、数据线 ADB 登录);

  • 连接鼠标键盘;

  • WiFi 连接无线网;

  • 使用 PD 电源供电;

aht30_connect.jpg

环境搭建

下载并安装最新版 Arduino APP Lab 软件;

arduino_app_lab_download.jpg

Arduino Cloud

Arduino 云 是一个开发Arduino项目并将其与世界连接起来的平台。

它支持通过 Wi-Fi®LoRa®设备以太网蜂窝网络(GSM/NB-IoT) 与主板的安全连接,可快速将任何信息从一块主板发送到另一块。

arduino_cloud_cover.jpg

Arduino 云平台包括:

  • 一个用于编程电路板的集成开发环境(IDE);

  • 一项云后端服务,用于同步来自 Arduino 板块的数据;

  • 一个图形化工具(仪表盘),用于控制和监控设备;

  • REST API命令行工具,用于大规模自动化。

详见:Arduino Cloud . Getting Started with Arduino Cloud .

流程图


flowchart_cloud_t_h.jpg

工程代码

工程代码包括 arduino 代码和 python 代码两部分。

Arduino

展开左侧文件列表,打开 sketch/sketch.ino 文件,代码如下

 #include <Arduino_RouterBridge.h>
 #include "ArduinoGraphics.h"
 #include "Arduino_LED_Matrix.h"
 #include <Wire.h>
 #include <Adafruit_AHTX0.h>
 
 Arduino_LED_Matrix matrix;
 Adafruit_AHTX0 aht;
 sensors_event_t hum_event, temp_event;
 
 float current_temperature = 0.0;
 float current_humidity = 0.0;
 
 // Bridge回调函数声明
 float get_temperature();
 float get_humidity();
 
 void setup() {
   // LED矩阵初始化
   matrix.begin();
   matrix.textFont(Font_5x7);
   matrix.textScrollSpeed(100);
   matrix.clear();
   
   // 传感器初始化
   Wire.begin();
   if (!aht.begin()) {
     matrix.beginText(0, 1, 127, 0, 0);
     matrix.print("AHT ERR");
     matrix.endText(SCROLL_LEFT);
     while(1);
   }
   
   matrix.beginText(0, 1, 127, 0, 0);
   matrix.print("START");
   matrix.endText(SCROLL_LEFT);
   
   // Bridge初始化
   Bridge.begin();
   
   // 注册Bridge回调函数(Python调用)
   Bridge.provide("get_temperature", get_temperature);
   Bridge.provide("get_humidity", get_humidity);
   
   delay(1000);
 }
 
 void loop() {
   // 读取传感器数据
   if (aht.getEvent(&hum_event, &temp_event)) {
     current_temperature = temp_event.temperature;
     current_humidity = hum_event.relative_humidity;
     
     // LED矩阵显示
     String display = "  T:" + String(current_temperature, 0) + 
                      "C H:" + String(current_humidity, 0) + "%";
     matrix.beginText(0, 1, 127, 0, 0);
     matrix.print(display);
     matrix.endText(SCROLL_LEFT);
   }
   
   delay(200);
 }
 
 // Bridge回调
 float get_temperature() {
   return current_temperature;
 }
 
 float get_humidity() {
   return current_humidity;
 }

保存代码。

资料:https://docs.arduino.cc/software/app-lab/bridge/bridge-api/ .

Python

展开左侧文件列表,打开 python/main.py 文件,代码如下

 from arduino.app_bricks.arduino_cloud import ArduinoCloud
 from arduino.app_utils import App, Bridge
 import time
 
 # 初始化云端
 iot_cloud = ArduinoCloud()
 
 # 注册温湿度变量
 iot_cloud.register("temperature", value=0.0)
 iot_cloud.register("humidity", value=0.0)
 
 # 启动云端连接
 App.start_brick(iot_cloud)
 
 print("Starting temperature and humidity upload...")
 
 # 主循环
 while True:
     try:
         # 从C++读取传感器数据
         temp = Bridge.call("get_temperature")
         humi = Bridge.call("get_humidity")
         
         # 更新云端变量
         iot_cloud.temperature = round(temp, 1)
         iot_cloud.humidity = round(humi, 1)
         
         print(f"Uploaded - Temp: {temp:.1f}°C, Humidity: {humi:.1f}%")
         
     except Exception as e:
         print(f"Error: {e}")
     
     time.sleep(2)

保存代码。

Arduino 程序每 2 秒向 Python 程序上传数据,更新云端数据并保持同步。

编译运行

  • 点击右上角 Run 按钮,自动编译、上传并运行程序;

  • 板载矩阵 LED 显示环境温湿度数据;

  • aht30_scroll.gif

  • Python 终端连续打印上传至云端的温湿度数据;

ahtx0_iot_run.jpg

云端显示

arduino_cloud_things_add.jpg

  • 选择创建的设备,添加变量,如 humidity 和 temperature ;

things_lab_temp_humi.jpg

  • 输入变量名称,类型为 float,操作方式为只读,周期循环,间隔 1 秒;

  • 点击左侧目录栏的设备标签,点击右上角的添加设备,选择 Arduino UNO Q;

arduino_cloud_devices_add_unoq.jpg

  • 点击左侧目录栏的仪表盘标签,点击右上角的添加仪表盘按钮;

arduino_cloud_dashboards_new.jpg

  • 点击目标仪表盘,进入主界面,点击 ADD 按钮添加所需部件;

arduino_cloud_dashboards_add_scon.jpg

  • 配置部件相关参数,将其链接至 Things 变量,点击右上角 Done 按钮,完成仪表盘设计;

  • 此时可见温湿度实时更新

dashboard_t_h.jpg

  • 手机安装并打开 Arduino IoT Remote ,登录账号,可在移动设备随时查看温湿度数据

arduino_cloud_app_t_h.jpg

总结

本文介绍了 Arduino UNO Q 开发板结合 Arduino App Lab 软件、Arduino Cloud 云服务平台、AHT30 传感器以及板载 LED 矩阵,实现物联网云端温湿度计的项目设计,包括硬件连接、软件安装、工程创建、流程图、工程代码、效果演示等,为相关产品在物联网 IoT 领域的快速开发和应用设计提供了参考。





关键词: arduino     cloud     IoT     aht30         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]