本次的传感器只有一个灰尘传感器,因为板载的只有一个串口,其中的实现是将本地的串口接入到arduinoR4WiFi实现,接收串口灰尘的数据,将其中的消息上传到云平台,最后通过app来查看数据。
UNO代码实现我们串口数据可以看到

其中前面的数字就是PM25的数据,所以我们可以将其中的串口获取出来,将其中的串口数据作为我们的收发的数据
#include <Wire.h>
#include "SHTSensor.h"
#include "WiFiS3.h"
#include <AliyunIoTSDK.h> // 引入阿里云 IoT SDK
// 设置产品和设备信息
#define PRODUCT_KEY "k1pkwhcnphr"
#define DEVICE_NAME "desk"
#define DEVICE_SECRET "you"
#define REGION_ID "cn-shanghai"
// WiFi 信息
#define WIFI_SSID "12345678"
#define WIFI_PASSWD "12345678.."
// 订阅Topic
#define topic_Set "/sys/k1pkwhcnphr/desk/thing/service/property/set"
static WiFiClient espClient;
void setup() {
Serial.begin(115200); // 串口0: 输出到电脑监视器
Serial1.begin(115200); // 串口1: 接收外部模块的数据
wifiInit(WIFI_SSID, WIFI_PASSWD);
AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);
if(AliyunIoTSDK::subscribe(topic_Set,0))
Serial.println("订阅成功");
}
void loop() {
// ⭐重点:检测 Serial1 是否有数据,收到就打印到 Serial0
if (Serial1.available()) {
String recv = Serial1.readStringUntil('\n'); // 读取一整行 例: "4,Green"
recv.trim(); // 去空格换行
Serial.print("[Serial1 Rx] ");
Serial.println(recv); // 输出调试
// ====== 阅读全文