littlebot
Published on 2025-04-08 / 7 Visits
0

【源码】基于Arduino Opta PLC和Node.js的实时设备控制系统

项目简介

本项目是一个实时设备控制系统,借助安全、快速且用户友好的界面,让用户能够远程控制各类电子和电气设备,像灯光、音响、空调、锅炉、灌溉系统等。系统利用Arduino Opta PLC和Node.js服务器,达成了高效的设备管理与控制。

项目的主要特性和功能

  1. 实时控制:可通过仪表板或物理开关控制设备的开关状态。
  2. 状态同步:实时更新设备状态,保证用户界面与设备状态一致。
  3. 设备锁定:支持锁定设备,阻止通过物理开关控制,仅允许系统界面操作。
  4. 设备状态监控:显示每个Arduino Opta PLC的连接状态(可达/不可达)。
  5. 用户管理:支持用户注册、登录以及权限管理(用户和管理员角色)。
  6. 安全性:采用AES - 256 - CBC加密和HMAC - SHA256验证,保障通信安全,防范重放攻击、SQL注入等常见安全威胁。
  7. 管理员功能:管理员能配置设备名称、分类,并审批用户注册请求。

安装使用步骤

环境准备

  1. 安装Arduino IDE,用于上传代码到Arduino Opta PLC。
  2. 安装Node.js,作为服务器的运行时环境。
  3. 安装MariaDB数据库。

复制项目

bash cd lights-on-cnu/

数据库配置

  1. 创建一个新的MariaDB数据库(例如lights_on_cnu)。
  2. 导入数据库结构: bash mariadb -u your_username -p lights_on_cnu < db_structure.sql

配置静态IP

为服务器和所有Arduino Opta PLC配置静态IP地址,确保它们处于同一局域网(LAN)中。

生成加密密钥

生成AES和HMAC密钥,分别用于加密和验证通信消息。

配置Arduino Opta PLC

  1. 打开arduino_opta文件夹中的Arduino项目。
  2. 将生成的AES和HMAC密钥分别复制到aes_key.hhmac_key.h文件中。
  3. 设置每个PLC的ARDUINO_ID和静态IP地址。
  4. 上传代码到每个PLC。

配置服务器

  1. 进入server文件夹: bash cd server/
  2. 配置.env文件,设置HTTP/HTTPS端口、数据库连接信息、AES和HMAC密钥等。
  3. 如果使用HTTPS,将私钥和证书文件放入server/express/cert/文件夹。

安装依赖

bash npm install

启动系统

  1. 启动服务器: bash npm start
  2. 确保所有PLC已通电并连接到网络。

完成

系统启动后,用户可通过浏览器访问控制界面,进行设备管理和控制。

下载地址

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