项目简介
本项目借助NodeMCU ESP8266(类似Arduino)上的传感器捕获温湿度数据,利用MQTT协议将数据传输到AWS IoT Core,再通过Python编写的Lambda函数把数据存储到NoSQL数据库DynamoDB中,实现温湿度数据的采集、传输与存储。
项目的主要特性和功能
- 数据采集:通过温湿度传感器收集环境的温度和湿度数据。
- AWS集成:将传感器与AWS IoT Core集成,实现数据的安全传输。
- 数据存储:使用DynamoDB数据库持久化存储采集到的温湿度数据。
- 自动化处理:借助Python Lambda函数自动处理从AWS IoT Core接收的数据。
安装使用步骤
1. 前提条件
- 拥有一个活跃的AWS账户。
- 准备带有WiFi且集成温湿度传感器的NodeMCU ESP8266开发板,若没有传感器可模拟发送数据。
2. 安装Arduino IDE
- 下载并安装Arduino IDE:访问官网下载并完成安装。
- 配置Arduino以支持NodeMCU ESP8266:在菜单中选择“Arquivo / Preferências”,在“URLs Adicionais para Gerenciadores de Placas”添加
http://arduino.esp8266.com/stable/package_esp8266com_index.json
。 - 安装ESP8266包:在菜单中选择“Ferramentas / Placa / Gerenciador de Placas”,搜索“ESP8266”并安装。
- 选择开发板型号:在“Ferramentas / Placa / ESP8266 Boards (v 3.0.2)”中选择“NodeMCU 1.0 (ESP - 12E Module)”。
- 安装必要库文件:下载并通过“Sketch / Incluir Biblioteca / Adicionar Biblioteca.zip”安装
Arduino MQTT
、PubSubClient
等库。
3. 配置AWS IoT Core
- 登录AWS控制台,选择合适的区域。
- 搜索并选择“IoT Core”服务。
- 创建IoT Things,设置名称并下载生成的证书。
- 创建Shadow,复制Thing的Endpoint用于后续配置。
- 创建Policy并将其附加到证书上,以允许使用IoT服务。
4. 修改代码
- 下载项目中的
IoTCore - AWS - ESP8266.ino
和secret.h
文件。 - 在
IoTCore - AWS - ESP8266.ino
中修改Shadows Publish和Subscribe信息,若不使用传感器可注释相关代码。 - 在
secret.h
中配置WiFi信息、Thing名称、MQTT主机地址和证书信息。
5. 编译和上传代码
保存并编译IoTCore - AWS - ESP8266.ino
文件,使用Arduino IDE将代码上传到NodeMCU ESP8266。
6. 配置DynamoDB和Lambda
- 创建DynamoDB表,设置主键存储数据记录的时间。
- 创建Policy和Role,授予Lambda函数访问DynamoDB的权限。
- 创建Lambda函数,复制
RegistroTemperatura.py
内容并替换默认函数,设置表名后部署。 - 创建IoT Core规则,配置规则触发Lambda函数处理接收到的数据。
7. 测试系统
通过AWS IoT Core控制台进行Publish和Subscribe测试,验证数据是否存储到DynamoDB中,也可在Arduino IDE的串行监视器查看ESP8266日志。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】