Funpack 3-5 Arduino UNO R4 WiFi-通过网络连接到智能云端,可以从远程获取传感器的信息
该项目使用了Arduino IDE,实现了Arduino UNO R4 WiFi的设计,它的主要功能为:搭配传感器,并通过网络连接到智能云端,可以从远程获取传感器的信息。
标签
嵌入式系统
Funpack活动
Arduino UNO R4 WiFi
智能云端
QingSpace
更新2025-01-16
87

1.硬件介绍

Arduino UNO R4 WiFi 是 Arduino UNO 系列的最新成员,结合了经典 UNO 的易用性和现代功能,如 Wi-Fi 连接和更强的处理能力。它是为物联网(IoT)、教育、原型设计和 DIY 项目设计的理想开发板。




主要特性

1. 处理器

  • 型号: Renesas RA4M1 (ARM Cortex-M4)
  • 主频: 48 MHz
  • 性能: 相比 UNO R3 的 AVR 处理器,性能大幅提升。

2. 内存

  • SRAM: 32 KB
  • Flash: 256 KB
  • EEPROM: 8 KB

3. 无线连接

  • Wi-Fi: 内置 ESP32-S3 模块,支持 2.4 GHz Wi-Fi 和蓝牙(BLE)。
  • 网络协议: 支持 TCP/IP、HTTP、MQTT 等。

4. 外设接口

  • 数字 I/O: 14 个(其中 6 个支持 PWM)
  • 模拟输入: 6 个(10 位 ADC)
  • 通信接口:
    • 1 x UART (Serial)
    • 1 x I2C
    • 1 x SPI
  • USB: USB-C 接口,支持编程和供电。

5. 电源

  • 输入电压: 6-24V (通过 VIN 引脚) 或 5V (通过 USB-C)
  • 输出电压: 3.3V 和 5V
  • 电流限制: 每个 I/O 引脚 20 mA,总电流 200 mA。

6. 其他特性

  • 兼容性: 完全兼容 UNO R3 的引脚布局和 Shields(扩展板)。
  • LED 矩阵: 内置 12x8 LED 矩阵,可用于显示简单图形或文本。
  • Qwiic 连接器: 支持 SparkFun Qwiic 生态系统,方便连接 I2C 设备。

7. 尺寸

  • 长宽: 68.6 x 53.4 mm(与 UNO R3 相同)




开发环境

  • Arduino IDE: 官方支持,提供丰富的库和示例代码。
  • Arduino Web Editor: 支持在线编程。
  • 第三方工具: 兼容 PlatformIO、VS Code 等开发环境。




应用场景

  1. 物联网(IoT):
    • 通过 Wi-Fi 连接互联网,实现远程控制和数据传输。
    • 支持 MQTT、HTTP 等协议,适合智能家居、环境监测等应用。
  2. 教育:
    • 适合初学者学习编程和电子技术。
    • 内置 LED 矩阵和 Wi-Fi 功能,可用于互动教学项目。
  3. 原型设计:
    • 兼容 UNO R3 的 Shields,方便快速搭建原型。
    • 强大的处理能力和丰富的接口,适合复杂项目开发。
  4. DIY 项目:
    • 适合制作智能设备、机器人、艺术装置等。

2.功能介绍

本项目实现了通过网络连接到智能云端——Arduino Cloud,并从Arduino Cloud获取板卡上传感器的信息,同时可以在云端控制板卡上LED的亮灭。

3.设计思路

Arduino Cloud对于Arduino系列的板卡有这独特的优化,这使得在Arduino Cloud上与Arduino UNO R4 WiFi这款自带了WiFi的板卡进行数据传输十分的便捷,我们只需要按照指引在Arduino Cloud中配置WiFi信息,添加传感器即可。

4.流程图

5.代码介绍

#include "thingProperties.h"
#include <DHT11.h>

#define DHT_PIN 8
#define LED_PIN 13

DHT11 dht11(DHT_PIN);

void setup() {
 // Initialize serial and wait for port to open:
 Serial.begin(9600);
 // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
 delay(1500);

 pinMode(LED_PIN, OUTPUT);

 // Defined in thingProperties.h
 initProperties();

 // Connect to Arduino IoT Cloud
 ArduinoCloud.begin(ArduinoIoTPreferredConnection);
 
 /*
    The following function allows you to obtain more information
    related to the state of network and IoT Cloud connection and errors
    the higher number the more granular information you’ll get.
    The default is 0 (only errors).
    Maximum is 4
*/
 setDebugMessageLevel(2);
 ArduinoCloud.printDebugInfo();
}

void loop() {
 ArduinoCloud.update();
 // Your code here
 delay(1000);
 dht11.readTemperatureHumidity(temp, hum);
 Serial.println(temp);
 Serial.println(hum);
}

/*
 Since Led is READ_WRITE variable, onLedChange() is
 executed every time a new value is received from IoT Cloud.
*/
void onLedChange() {
 // Add your code here to act upon Led change
 if(led)
{
   digitalWrite(LED_PIN, HIGH);
}
 else
{
   digitalWrite(LED_PIN, LOW);    
}
}
  1. 初始化
    • 初始化串口通信。
    • 设置 LED 引脚为输出模式。
    • 初始化 Arduino IoT Cloud 连接。
    • 配置调试信息级别。
  2. 主循环
    • 更新 Arduino IoT Cloud 状态。
    • 每隔 1 秒读取 DHT11 传感器的温度和湿度数据,并通过串口打印。
  3. LED 控制
    • 当 Arduino IoT Cloud 上的 led 变量发生变化时,调用 onLedChange() 函数。
    • 根据 led 的值控制 LED 灯的开关。
      网页效果:

具体的实物展示可以参考视频。

6.心得体会

本项目让我更加惊叹与Arduino上手的简单与方便,之前发现它的配置过程与代码编写十分简单,适合新手,这次更是发现了连无线通信Arduino也已经优化的十分方便,简洁的界面与快捷的配置过程让我有了全新的体验。

附件下载
Uno_R4_WiFi_oct06a.zip
团队介绍
一位热爱嵌入式开发的大学生
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号