项目简介
本项目开发的人员计数系统基于AWS云服务和Arduino,目的是助力公共场所维持法律规定的最大容纳人数。与现有使用传感器、摄像机且安装成本高的系统不同,该系统提供即插即用的解决方案,通过分析场所内蓝牙设备实现人员计数,还能通过网页应用轻松部署和接收通知。
项目的主要特性和功能
1. 设备端功能
- 借助M5Stack Core2 ESP32开发板检测蓝牙设备,运用过滤器避免重复检测结果。
- 配置MQTTS客户端与AWS IoT建立连接,把检测到的蓝牙设备数据发送到云端。
2. 云端功能
- AWS IoT:创建设备访问凭证和事物,支持设备数据的接收和处理。
- AWS DynamoDB:存储蓝牙设备检测数据,方便后续客户访问分析。
- AWS IoT Rule:无需代码即可将IoT数据发送到DynamoDB。
- AWS IoT Web Socket Secure:通过WebApp实时远程监控检测结果。
- AWS S3:用于托管静态网页。
- AWS CloudFront:提供CDN服务,降低用户与应用之间的延迟。
3. 网页应用功能
设计了兼容桌面和移动设备的网页应用,便于用户查看实时数据。
安装使用步骤
1. 环境准备
- 硬件:准备M5Stack Core2 ESP32 IoT开发套件。
- 软件:安装Arduino IDE和Arduino M5Core2库。
- 云服务:拥有AWS账户,并在AWS控制台配置以下服务:IoT Core、DynamoDb、Cognito、S3、CloudFront。
2. 设备端配置
- 打开Arduino IDE,安装Arduino ESP32支持和M5Core2库。
- 参考测试代码熟悉M5Core2在Arduino IDE中的编程。
- 编辑
certs.h
文件,填入WiFi信息、AWS IoT端点和设备证书等信息。
3. AWS服务配置
- AWS IoT:创建事物和访问凭证,下载设备证书和私钥文件,获取AWS IoT端点。
- AWS DynamoDB:创建数据库,设置分区键和排序键。
- AWS IoT Rule:创建规则,将IoT数据发送到DynamoDB。
- AWS IoT Web Socket Secure:在
aws-configuration.js
文件中填入IoT和Cognito凭证。
4. 网页部署
- 使用S3的静态网站托管功能托管网页。
- 配置CloudFront以获取最终的HTTPS链接。
5. 运行测试
- 上传主代码到M5Core2设备,启动设备。
- 打开MQTT Explorer,订阅代码主题,检查设备是否正常工作。
- 访问网页应用,查看实时数据。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】