项目简介
本项目是基于Arduino平台开发的嵌入式系统,为箱包提供安全保障和追踪功能。系统集成各类传感器、GPS定位模块与无线通信技术,实时收集箱包环境数据和位置信息,通过MQTT协议与服务器通信,实现远程监控与控制,同时具备安全警报功能,可检测箱包非法打开情况。
项目的主要特性和功能
- 数据采集与处理:利用温湿度传感器实时采集并处理箱包内部环境数据。
- GPS定位:通过GPS技术精准定位箱包,并实时上传位置信息。
- 无线通信:借助WiFi技术与服务器通信,便于数据传输和远程控制。
- 远程监控与控制:用户可通过服务器或手机客户端远程监控箱包位置和状态,还能调整相关设置。
- 安全警报:检测箱包非法打开情况,异常时触发警报。
- LCD显示:LCD显示屏实时显示箱包连接状态、温度和湿度等信息,可通过按键调节亮度。
安装使用步骤
硬件准备
准备以下材料: | 数量 | 物品 | 备注 | | ---- | ---- | ---- | | 1 | NodeMcu | 使用ESP8266 | | 1 | DHT11 | | | 1 | 模块GPS Neo 6m | | | 1 | Arduino UNO | | | 1 | LCD shield keypad | | | 1 | Buzzer | | | 1 | Led | | | 1 | push-button | | | 1 | N-mosfet | 使用2N7000 | | 1 | 电阻10kΩ | | | 1 | 实验板 | 可选 | | 1 | 实验板电源 | 可选 |
按照电路图 Circuito 进行电路搭建。
代码部署
- NodeMcu
- 在
include
文件夹内创建Secrets.h
文件,参照Secrets.example.h
文件格式填写,需填写端点URL、设备名称、根密钥、私钥和设备证书。 - 将设备连接到电脑,在项目文件夹内执行命令:
bash platformio run --target upload --environment nodemcuv2
- 在
- Arduino
将设备连接到电脑,在项目文件夹内执行命令:
bash platformio run --target upload --environment arduino
- Website
- 进入对应文件夹。
- 打开
index.js
文件,编辑端点、授权者名称、谷歌地图密钥和主题等字段。 - 安装依赖:
bash npm install
- 构建项目:
bash npm run bundle
基础设施配置
本项目的基础设施基于AWS搭建,主要使用了IoT core和Shadow Device服务:
1. IoT core
- 在IoT core页面的“所有设备”标签下创建新“事物”,下载私钥、根密钥和设备证书文件,并添加到NodeMcu代码中。
- 在设置标签中获取端点信息,添加到NodeMcu代码和网站代码中。
2. 授权器部署
- 在 lambda
文件夹内执行以下命令打包:
bash
zip function.zip authorizer.py
- 部署到AWS Lambda:
bash
aws lambda create-function --function-name autorizador \
--zip-file fileb://function.zip --handler lambda_function.lambda_handler --runtime python3.8 \
--role {arn da role}
3. Device Shadows
- 在设备页面的“Device Shadows”标签下创建名为“location”和“weather”的两个设备,其结构如下:
json
{
"state":{
"reported":{
"lat": 00.00,
"lon": 00.00
}
}
}
json
{
"state":{
"reported":{
"temp": 00.00,
"hum": 00.00
}
}
}
- 在“Device Shadows”标签下获取主题信息,添加到源代码中。
4. SNS配置
- 创建SNS主题并注册接收邮件的邮箱。
- 通过IoT Core规则将IoT Core与SNS主题关联,并添加查询语句:
SQL
SELECT state.reported.lat, state.reported.lon FROM '$aws/things/mochila/shadow/name/location/update'
5. S3配置
使用S3服务托管静态网站。
设备使用
- 首次连接设备时,连接到WiFi网络
ESP-igor
,密码为esp123456
。 - 在浏览器地址栏输入 192.168.4.1。
- 在访问的网站上点击“Configure Wifi”按钮。
- 在弹出菜单中选择你的WiFi网络并输入密码。后续连接同一网络时将自动连接。
- LCD显示屏会实时显示连接信息、温度和湿度。
- 可使用显示屏的上下按钮调节亮度。
- 相关数据也可在 mochila.igoraugst.dev 网站查看。
- 若箱包在系统开启时被打开,警报将响起,可通过按钮关闭系统以避免触发警报。
- 箱包设计可查看 docs 文件夹中的文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】