Skip to content

Arduino UNO R4 WiFi 网络应用指南

目录

  1. 硬件准备与开发环境
  2. Arduino Cloud 账号与网络配置
  3. 智能家居实战:智能环境监控与自动通风系统
    • 项目概述
    • 硬件连接
    • 云端变量与仪表盘设置
    • 核心控制代码
  4. 部署、测试与扩展

一、硬件准备与开发环境

1. 所需硬件

  • 主控板:Arduino UNO R4 WiFi
  • 传感器:DHT11 温湿度传感器
  • 执行器:5V 继电器模块、小型风扇
  • 其他:杜邦线、面包板、USB-C 数据线

2. 开发环境

  • 安装最新版 Arduino IDE(需支持 UNO R4 WiFi)
  • 安装 Arduino IoT Cloud 库
  • 注册并登录 Arduino Cloud 平台

二、Arduino Cloud 账号与网络配置

  1. 创建项目:在 IoT Cloud 仪表板点击 “Create a New Thing”,选择设备类型为 UNO R4 WiFi。
  2. 配置网络:输入 Wi-Fi 的 SSID密码
  3. 获取凭证:在 Thing 详情页记录 Device IDSecret Key,后续代码中需替换对应占位符。
  4. 注意事项: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 中创建以下变量:

变量名数据类型权限仪表盘组件建议
temperatureintRead and WriteLine Chart / Gauge
humidityintRead and WriteLine Chart / Gauge
fanStateboolRead and WriteButton / Switch
tempThresholdintRead and WriteSlider

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. 部署与测试

  1. 编译并上传代码至 UNO R4 WiFi。
  2. 打开 Serial Monitor 确认 Wi-Fi 连接成功。
  3. 访问 Cloud 仪表盘:
    • 查看实时温湿度曲线。
    • 手动点击按钮控制风扇,或拖动滑块调整温度阈值。

2. 调试技巧

  • 若连接失败,请检查 deviceIDsecretKey 是否复制正确。
  • 使用 Serial.println() 输出关键状态变量进行排查。

3. 扩展应用

  • 更多传感器:接入光照、空气质量(MQ-135)传感器。
  • 更多执行器:控制灯光、窗帘电机。
  • 高级功能:利用 MQTT 协议实现消息订阅/发布;结合板载 LED 矩阵显示设备状态。

参考资料