亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino MKR1000 + DHT11 双节点 MQTT 物联网演示:接入 Samsung ARTIK Cloud

项目架构概览

本项目构建了一个 双节点 MQTT 物联网系统,演示「传感器节点 → 云端规则引擎 → 执行器节点」的完整闭环:

硬件清单(每节点)

组件数量说明
Arduino MKR10002内置 WiFi (ATECC508A 加密芯片)
DHT11 温湿度传感器1仅节点 A 使用,接 D2
LED (红/黄)各1仅节点 B 使用,接 D11/D13,串联 220Ω

核心软件栈

关键配置参数(需替换为实际值)

// WiFi
const char* _SSID = "YOUR_WIFI_SSID";
const char* _PASSWORD = "YOUR_WIFI_PASS";

// ARTIK Cloud 设备凭证(每个设备唯一)
// 节点 A (Sensor)
char mqttCloudUsername[] = "SENSOR_DEVICE_ID";
char mqttCloudPassword[] = "SENSOR_DEVICE_TOKEN";
char mqttCloudDataOut[]  = "/v1.1/messages/SENSOR_DEVICE_ID";

// 节点 B (Actor)
char mqttCloudUsername[] = "ACTOR_DEVICE_ID";
char mqttCloudPassword[] = "ACTOR_DEVICE_TOKEN";
char mqttCloudActionsIn[] = "/v1.1/actions/ACTOR_DEVICE_ID";

节点 A:传感器固件逻辑

数据采集与发布


void getNextSample(float* T, float* H) {
  delay(2000); // DHT11 最低 1-2s 采样间隔
  *H = dht.readHumidity();
  *T = dht.readTemperature();
}

void sendToArtikCloud(float t, float h) {
  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& root = jsonBuffer.createObject();
  root["temperature"] = t;
  root["humidity"] = h;
  root.printTo(buf, sizeof(buf));
  mqttCloudClient.publish(mqttCloudDataOut, buf);
}

主循环

节点 B:执行器固件逻辑

动作解析与执行


void parseBuffer(String payload) {
  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& root = jsonBuffer.parseObject(payload);
  int ledRed    = root["actions"][0]["parameters"]["led_red"];
  int ledYellow = root["actions"][0]["parameters"]["led_yellow"];

  // 红灯:带延时关闭防抖
  if (ledRed == 1) { digitalWrite(LED_RED_PIN, HIGH); savedRedTime = millis(); }
  else if (millis() - savedRedTime > RED_DELAY) digitalWrite(LED_RED_PIN, LOW);

  // 黄灯:同理
  if (ledYellow == 1) { digitalWrite(LED_YELLOW_PIN, HIGH); savedYellowTime = millis(); }
  else if (millis() - savedYellowTime > YELLOW_DELAY) digitalWrite(LED_YELLOW_PIN, LOW);
}

ARTIK Cloud 规则引擎配置(4 条规则)

条件 (IF)动作 (THEN)
温度 > 32°C 且 湿度 > 34%红灯=ON, 黄灯=ON
温度 > 32°C 且 湿度 < 35%红灯=ON, 黄灯=OFF
温度 < 33°C 且 湿度 > 34%红灯=OFF, 黄灯=ON
温度 < 33°C 且 湿度 < 35%红灯=OFF, 黄灯=OFF

注:阈值仅为演示,实际部署需根据应用场景校准。规则引擎在云端评估,下发 Actions 至 Actor 设备。

迁移指南:ARTIK Cloud 停服后的替代方案

Samsung ARTIK Cloud 已于 2020 年停止服务。以下是零代码/少量代码迁移路径:

方案一:ThingsBoard (开源、自托管)

方案二:AWS IoT Core + Rules Engine

方案三:本地 MQTT Broker (Mosquitto/EMQX) + Node-RED

安全性最佳实践

性能与功耗优化

完整双节点固件代码(artik_dht11_sensor.ino / artik_led_actor.ino)请参考项目附件。迁移至现代 IoT 平台时,仅需修改 MQTT 服务器地址、端口、主题格式与 JSON 负载结构,核心采集/执行逻辑复用度极高。

制造工艺

  1. DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
  2. DIY 蓝牙控制 Arduino 间谍小车
  3. FlickMote:基于手势的智能家居红外遥控器
  4. DIY Arduino TV-B-Gone:万能关机遥控器
  5. 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
  6. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  7. Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
  8. Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
  9. 从零构建智能 Arduino 四足机器人:完整指南
  10. Blynk + Arduino 读取 DHT11 温湿度数据教程
  11. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
  12. Arduino MKR1000 开发板详解:引脚定义、Wi-Fi/加密芯片、供电方式与上手指南