littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于AWS和Arduino的公共场所人员计数系统

项目简介

本项目开发的人员计数系统基于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】