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

Windows 10 IoT Core + Raspberry Pi + Arduino 实现家庭插座自动化控制

组件与物料清单

组件 数量
Raspberry Pi 2 Model B 1
XBee 模块 2
Arduino UNO 1
FTDI 转接线 2
4 路继电器扩展板 1
SparkFun XBee Shield 1

所需工具与软件

项目简介

引言

本项目演示如何使用运行 Windows 10 IoT Core 的 Raspberry Pi、XBee 无线模块和 Arduino,实现家庭插座的本地与云端双模式控制。所有代码已开源至 GitHub。

为什么要自动化插座?

控制插座而非单个设备,可让任意家电接入自动化体系。项目以风扇和灯为例演示。

XBee 无线通信模块配置

采用两个 XBee 模块:一个作为 Coordinator(协调器)连接 Raspberry Pi,另一个作为 Router(路由器)连接插座端 Arduino。Coordinator 根据用户指令发送无线信号给 Router 控制继电器。

AT 模式配置 XBee

  1. 下载安装 XCTU。
  2. 使用 FTDI 适配器更新 XBee 固件。
  3. 参考视频教程完成 AT 模式配置,确保两模块可互通。

接收端(插座侧)搭建

所需硬件: XBee Router、Arduino UNO、XBee Shield、4 路继电器扩展板。

Arduino 代码

接收 Coordinator 发送的串口指令:

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
  pinMode(RELAY2, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.readString();
    Serial.println(state);
  }
  if (state == "ON1\r\n") digitalWrite(RELAY1, HIGH);
  else if (state == "ON2\r\n") digitalWrite(RELAY2, HIGH);
  else if (state == "OFF1\r\n") digitalWrite(RELAY1, LOW);
  else if (state == "OFF2\r\n") digitalWrite(RELAY2, LOW);
  else {
    digitalWrite(RELAY1, LOW);
    digitalWrite(RELAY2, LOW);
  }
}

高压插座接线(⚠ 高压危险,操作需极度小心)

继电器本质是电控开关,可接通/切断 110–240V 市电。建议使用延长线插座改装:保留一根火线完整,另一根火线剪断,分别接入继电器的 COM(公共端)和 NO(常开端)。

Windows 10 IoT Core + Raspberry Pi + Arduino 实现家庭插座自动化控制
Windows 10 IoT Core + Raspberry Pi + Arduino 实现家庭插座自动化控制
Windows 10 IoT Core + Raspberry Pi + Arduino 实现家庭插座自动化控制

将继电器扩展板堆叠在 Arduino 上,XBee Shield 再堆叠在继电器板上,插入配置为 Router 的 XBee。使用外部电池供电 Arduino,接收端完成。

服务端(Raspberry Pi 侧)搭建

需 Raspberry Pi 2 运行 Windows 10 IoT Core,Coordinator XBee 通过 FTDI 适配器 + 6 针 USB 线连接 Pi 的 USB 口。

在 Pi 上搭建 UWP Web 服务器,监听用户请求,通过串口向 Coordinator XBee 发送指令。XBee 将指令以无线电波发送给 Router 端。

Windows 10 IoT Core + Raspberry Pi + Arduino 实现家庭插座自动化控制

参考视频教程搭建 Web 服务器。FTDI 驱动移植参考:GitHub。

接入 Azure 云服务

实现全球远程控制:

  1. 在 Azure 创建网站托管 Web 应用。
  2. 创建 Azure SQL Database 处理用户认证授权。
  3. 创建 Azure 表存储存储控制指令,Pi 端轮询处理。

参考文档:表存储、SQL 数据库。

演示

两种控制方式:

  1. 局域网内直接访问 Pi 的 Web 服务器地址。
  2. 通过部署在 Azure 的 ASP.NET 5 Web 应用远程控制。

总结与应用场景

  1. 结合光敏/人体红外传感器,实现节能自动开关灯。
  2. 老年人可用遥控器/射频卡控制插座。
  3. 定时任务自动开关,节约电能。
  4. 入侵检测联动全屋照明报警。
  5. 度假一键断电全屋。
  6. 按需控制空调/暖气,避免无人时长时间运行。

代码:继电器控制 (C/C++)

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
  pinMode(RELAY2, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.readString();
    Serial.println(state);
  }
  if (state == "ON1\r\n") digitalWrite(RELAY1, HIGH);
  else if (state == "ON2\r\n") digitalWrite(RELAY2, HIGH);
  else if (state == "OFF1\r\n") digitalWrite(RELAY1, LOW);
  else if (state == "OFF2\r\n") digitalWrite(RELAY2, LOW);
  else {
    digitalWrite(RELAY1, LOW);
    digitalWrite(RELAY2, LOW);
  }
}

原理图

Windows 10 IoT Core + Raspberry Pi + Arduino 实现家庭插座自动化控制

制造工艺

  1. 打造低成本家庭无线传感器网络:Arduino + 树莓派 + Xively 物联网平台
  2. Windows IoT + 树莓派打造人脸识别智能门锁
  3. Windows 10 IoT Core 上基于 SHT15 的精准温湿度监测
  4. 树莓派 3 Model B+ 安装 Windows 10 IoT Core 完整步骤指南
  5. 在树莓派 2 上用 Windows 10 IoT Core 构建语音控制机器人
  6. 在树莓派 3 上扩展 GoPiGo v2 的 Windows 10 IoT Core 应用
  7. 基于 Arduino 与 MAX30100 的实时物联网心率监测系统
  8. Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
  9. 通过 Arduino IoT Cloud 用 Alexa 控制电视:分步指南
  10. Azure IoT智能游泳池监控系统:温度感知与远程控制
  11. 从 PLCnext 云数据创建 Power BI 仪表板
  12. 驾驭物联网:加速数字化转型的即时数据战略