项目简介
本项目是基于Node.js和Arduino的智能百叶窗控制系统,借助网页应用程序达成对百叶窗的远程控制。系统涵盖网页端、Node.js服务器和Arduino机器人三部分。网页端负责用户交互,用户可通过点击按钮选择控制模式、设置阈值和上下限;Node.js服务器作为中间桥梁,在网页端和Arduino机器人间传递信息;Arduino机器人依据接收到的信息控制百叶窗开合,并将状态反馈给网页端。
项目的主要特性和功能
- 多种控制模式:支持电位器模式、光电晶体管模式、温度模式、温度或光电晶体管模式、温度和光电晶体管模式,还能直接控制百叶窗开合。
- 阈值和上下限设置:用户可在网页端设置电位器阈值、温度阈值、上限和下限,满足不同使用需求。
- 实时状态反馈:网页端能实时显示百叶窗状态(打开或关闭)及当前选择的模式。
- 数据交互:通过Socket.io实现网页端与Node.js服务器的数据传输,通过Serialport实现Node.js服务器与Arduino机器人的数据传输。
安装使用步骤
前提条件
确保已安装以下软件和工具: - Arduino Starter Kit 或 Arduino 组件 - Visual Studio Code 或其他代码编辑器 - Arduino软件IDE - SerialPort NPM - Socket.io - Node.js
构建电路
- 准备所需组件,参考
ComponentsList.png
。 - 按
Circuit.png
中的电路图连接电路。
上传 Arduino 代码
- 打开 Arduino IDE,复制
sketch_oct09b.ino
中的代码到 IDE。 - 用 USB 电缆将 Arduino 板连接到计算机。
- 查找 Arduino 连接的串口名称。Mac 上,在终端输入
ls /dev/{tty,cu}.*
;PC 上,在命令行输入chgport
。 - 在 Arduino IDE 中,选择
Tools > Board
,并选择 Arduino 连接的串口。 - 点击 IDE 左上角的
UPLOAD
按钮上传代码。
配置网页代码
- 打开 VSCode 或其他代码编辑器,创建
index.html
文件,复制index.html
中的代码到该文件。
配置 Node.js 服务器
- 创建
index.js
文件,复制index.js
中的代码到该文件。 - 将代码中的
'/dev/tty.usbmodem14101'
替换为之前找到的 Arduino 串口地址。
安装依赖包
- 打开控制台窗口,导航到项目所在文件夹。
- 在控制台输入
npm init
,按提示设置项目信息,保持默认入口文件为index.js
。 - 打开项目文件夹,确保有
package.json
文件。 - 在控制台输入
npm install socket.io@1.7.3 -save
安装socket.io
。 - Mac 用户在控制台输入
npm install serialport@9.0.1 --save
安装serialport
;PC 用户在命令行输入npm install serialport@9.0.1 --build-from-source
安装serialport
。
启动应用程序
- 打开 Arduino IDE,点击左上角右箭头将代码上传到 Arduino。
- 在终端使用
node index.js
启动 Node.js 服务器。 - 打开浏览器,输入
http://localhost:3000/
。 - 此时,机器人和网页已建立通信,项目开始运行。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】