项目简介
本项目是一个实时设备控制系统,借助安全、快速且用户友好的界面,让用户能够远程控制各类电子和电气设备,像灯光、音响、空调、锅炉、灌溉系统等。系统利用Arduino Opta PLC和Node.js服务器,达成了高效的设备管理与控制。
项目的主要特性和功能
- 实时控制:可通过仪表板或物理开关控制设备的开关状态。
- 状态同步:实时更新设备状态,保证用户界面与设备状态一致。
- 设备锁定:支持锁定设备,阻止通过物理开关控制,仅允许系统界面操作。
- 设备状态监控:显示每个Arduino Opta PLC的连接状态(可达/不可达)。
- 用户管理:支持用户注册、登录以及权限管理(用户和管理员角色)。
- 安全性:采用AES - 256 - CBC加密和HMAC - SHA256验证,保障通信安全,防范重放攻击、SQL注入等常见安全威胁。
- 管理员功能:管理员能配置设备名称、分类,并审批用户注册请求。
安装使用步骤
环境准备
- 安装Arduino IDE,用于上传代码到Arduino Opta PLC。
- 安装Node.js,作为服务器的运行时环境。
- 安装MariaDB数据库。
复制项目
bash
cd lights-on-cnu/
数据库配置
- 创建一个新的MariaDB数据库(例如
lights_on_cnu
)。 - 导入数据库结构:
bash mariadb -u your_username -p lights_on_cnu < db_structure.sql
配置静态IP
为服务器和所有Arduino Opta PLC配置静态IP地址,确保它们处于同一局域网(LAN)中。
生成加密密钥
生成AES和HMAC密钥,分别用于加密和验证通信消息。
配置Arduino Opta PLC
- 打开
arduino_opta
文件夹中的Arduino项目。 - 将生成的AES和HMAC密钥分别复制到
aes_key.h
和hmac_key.h
文件中。 - 设置每个PLC的
ARDUINO_ID
和静态IP地址。 - 上传代码到每个PLC。
配置服务器
- 进入
server
文件夹:bash cd server/
- 配置
.env
文件,设置HTTP/HTTPS端口、数据库连接信息、AES和HMAC密钥等。 - 如果使用HTTPS,将私钥和证书文件放入
server/express/cert/
文件夹。
安装依赖
bash
npm install
启动系统
- 启动服务器:
bash npm start
- 确保所有PLC已通电并连接到网络。
完成
系统启动后,用户可通过浏览器访问控制界面,进行设备管理和控制。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】