littlebot
Published on 2025-04-18 / 1 Visits
0

【源码】基于Arduino框架的继电器控制系统

项目简介

本项目名为Relayduino,是基于Arduino框架开发的继电器控制系统。其主要功能是控制继电器输出,能够通过发送UDP数据包来控制继电器板的开关状态。此外,该系统具备网络状态检测功能,若长时间接收不到ping信号,会判定网络断开并执行网络恢复操作,以此保证系统稳定运行。

项目的主要特性和功能

  • 网络通信:支持通过UDP数据包控制继电器板的开关状态。
  • 网络状态检测:当长时间没有接收到ping信号时,判定网络断开并执行恢复操作。
  • 继电器控制:可通过网络接收指令来控制各继电器板的开关。
  • 网络恢复:在网络状态丢失时,关闭所有继电器并尝试重置设备。

安装使用步骤

准备工作

  1. 需将optiboot引导加载程序刷入Arduino Nano,代码/bootloader目录中有使用usbtiny上传optiboot的脚本。要求连接usbtinyisp板到Arduino Nano并安装Arduino IDE,刷机约需3秒。
  2. 完成后,用USB线将Arduino Nano连接到PC,使用XLoader工具刷入所需固件,选择input或outputmaster_firmware_nano328.hex文件,并进行如下设置:
    • 十六进制文件:指定固件文件。
    • 设备:Uno (atmega 328)。
    • 串口:Arduino Nano所在串口。
    • 波特率:115200。
  3. 刷机时LED会闪烁。刷机完成后,关闭XLoader,打开Arduino IDE,选择“Adruino/Genuino UNO”板,指定端口,以9600波特率启动串口监视器,若看到如“Master board id: im0”等消息,则刷机成功。

硬件连接

使用XH电缆将输入从板连接到输入主板,输出板同理。

固件刷机

  • Windows系统使用XLoader(http://xloader.russemotto.com/ )。
  • Linux系统使用avrdude。根据要刷机的板下载并刷入正确的固件。

Loxone配置

  1. 创建新的虚拟输出,命名为“Relayduino output BUS”,地址为/dev/udp/255.255.255.255/6666,分隔符为“;”。创建名为“ping”的输出命令,ON命令为“ping”,并使用脉冲发生器配置为1秒开启、4秒关闭。此命令用于检测网络故障,为必需配置。
  2. 若要驱动主板=0、从板=2、继电器=3的单个继电器,创建新的输出命令,配置如下:
    • 命令ON:om0 b2 r3 1
    • 命令OFF:om0 b2 r3 0
    • 首次重复:30
    • 重复间隔:30
    • 用作数字输出
  3. 若要接收输入板的信号,创建名为“Relayduino input BUS”的新UDP虚拟输入,UDP接收端口为5555。可使用UDP监视器从输入数据包创建命令,手动操作时,命令结构为“im0 b3 i6 1”,表示“输入主板0的从板3上的输入6为ON”。若要处理按钮“长按”,需将其配置为“im0 b3 i6 \v”并取消勾选“用作数字输入”。

测试

通过发送UDP数据包来测试继电器板的开关状态。

注意:上传代码前,需正确配置硬件并安装必要的库,具体硬件连接和库安装方法请参考项目文档或相关教程。使用本项目前,需具备Arduino编程和硬件连接基本知识,了解网络设置和使用方法。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】