Appearance
Arduino UNO R4 WiFi 网络应用指南
目录
- 硬件准备与开发环境
- Arduino Cloud 账号与网络配置
- 智能家居实战:智能环境监控与自动通风系统
- 项目概述
- 硬件连接
- 云端变量与仪表盘设置
- 核心控制代码
- 部署、测试与扩展
一、硬件准备与开发环境
1. 所需硬件
- 主控板:Arduino UNO R4 WiFi
- 传感器:DHT11 温湿度传感器
- 执行器:5V 继电器模块、小型风扇
- 其他:杜邦线、面包板、USB-C 数据线
2. 开发环境
- 安装最新版 Arduino IDE(需支持 UNO R4 WiFi)
- 安装 Arduino IoT Cloud 库
- 注册并登录 Arduino Cloud 平台
二、Arduino Cloud 账号与网络配置
- 创建项目:在 IoT Cloud 仪表板点击 “Create a New Thing”,选择设备类型为 UNO R4 WiFi。
- 配置网络:输入 Wi-Fi 的 SSID 和 密码。
- 获取凭证:在 Thing 详情页记录 Device ID 和 Secret Key,后续代码中需替换对应占位符。
- 注意事项:UNO R4 WiFi 仅支持 2.4GHz Wi-Fi 网络。
三、智能家居实战:智能环境监控与自动通风系统
1. 项目概述
本示例构建一个室内温湿度监测系统。当温度或湿度超过预设阈值时,系统自动通过继电器开启风扇通风,并将数据同步至 Arduino Cloud,支持远程监控与手动干预。
2. 硬件连接
| 设备 | 连接到 UNO R4 WiFi |
|---|---|
| DHT11 数据引脚 | D2 引脚 |
| 继电器 IN 控制引脚 | D3 引脚 |
| DHT11 / 继电器 / 风扇 | 3.3V 和 GND 引脚 |
3. 云端变量与仪表盘设置
在 Arduino Cloud 中创建以下变量:
| 变量名 | 数据类型 | 权限 | 仪表盘组件建议 |
|---|---|---|---|
temperature | int | Read and Write | Line Chart / Gauge |
humidity | int | Read and Write | Line Chart / Gauge |
fanState | bool | Read and Write | Button / Switch |
tempThreshold | int | Read and Write | Slider |
4. 核心控制代码
cpp
#include <ArduinoIoTCloud.h>
#include <DHT.h>
// --- 1. 基本配置 ---
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
const char* deviceID = "YOUR_DEVICE_ID";
const char* secretKey = "YOUR_SECRET_KEY";
// --- 2. 硬件定义 ---
#define DHTPIN 2
#define FAN_RELAY_PIN 3
DHT dht(DHTPIN, DHT11);
// --- 3. 云端变量 ---
int temperature = 0;
int humidity = 0;
bool fanState = false;
int tempThreshold = 28; // 默认温度阈值 28°C
// --- 4. 变量回调函数 ---
void onFanStateChanged() {
digitalWrite(FAN_RELAY_PIN, fanState ? HIGH : LOW);
}
void onTempThresholdChanged() {
// 阈值改变时的处理逻辑(可选)
}
// --- 5. 系统初始化 ---
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(FAN_RELAY_PIN, OUTPUT);
digitalWrite(FAN_RELAY_PIN, LOW); // 初始关闭风扇
ArduinoCloud.setDebugLevel(1);
ArduinoCloud.setSecretDeviceKey(secretKey);
ArduinoCloud.setDeviceId(deviceID);
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
// 绑定回调
ArduinoCloud.setCallback(fanState, onFanStateChanged);
ArduinoCloud.setCallback(tempThreshold, onTempThresholdChanged);
}
// --- 6. 主循环 ---
void loop() {
temperature = dht.readTemperature();
humidity = dht.readHumidity();
// 自动温控逻辑:温度过高开启,低于阈值-2关闭
if (temperature > tempThreshold && !fanState) {
fanState = true;
Serial.println("温度过高,自动开启风扇。");
} else if (temperature < tempThreshold - 2 && fanState) {
fanState = false;
Serial.println("温度正常,自动关闭风扇。");
}
ArduinoCloud.update();
delay(2000);
}四、部署、测试与扩展
1. 部署与测试
- 编译并上传代码至 UNO R4 WiFi。
- 打开 Serial Monitor 确认 Wi-Fi 连接成功。
- 访问 Cloud 仪表盘:
- 查看实时温湿度曲线。
- 手动点击按钮控制风扇,或拖动滑块调整温度阈值。
2. 调试技巧
- 若连接失败,请检查
deviceID和secretKey是否复制正确。 - 使用
Serial.println()输出关键状态变量进行排查。
3. 扩展应用
- 更多传感器:接入光照、空气质量(MQ-135)传感器。
- 更多执行器:控制灯光、窗帘电机。
- 高级功能:利用 MQTT 协议实现消息订阅/发布;结合板载 LED 矩阵显示设备状态。
参考资料:
- Arduino Cloud 文档:https://docs.arduino.cc/cloud
- UNO R4 WiFi 规格:https://store.arduino.cc/uno-r4-wifi