littlebot
Published on 2025-04-17 / 1 Visits
0

【源码】基于C语言和Python的AWS IoT温湿度数据采集存储系统

项目简介

本项目借助NodeMCU ESP8266(类似Arduino)上的传感器捕获温湿度数据,利用MQTT协议将数据传输到AWS IoT Core,再通过Python编写的Lambda函数把数据存储到NoSQL数据库DynamoDB中,实现温湿度数据的采集、传输与存储。

项目的主要特性和功能

  1. 数据采集:通过温湿度传感器收集环境的温度和湿度数据。
  2. AWS集成:将传感器与AWS IoT Core集成,实现数据的安全传输。
  3. 数据存储:使用DynamoDB数据库持久化存储采集到的温湿度数据。
  4. 自动化处理:借助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 MQTTPubSubClient等库。

3. 配置AWS IoT Core

  • 登录AWS控制台,选择合适的区域。
  • 搜索并选择“IoT Core”服务。
  • 创建IoT Things,设置名称并下载生成的证书。
  • 创建Shadow,复制Thing的Endpoint用于后续配置。
  • 创建Policy并将其附加到证书上,以允许使用IoT服务。

4. 修改代码

  • 下载项目中的IoTCore - AWS - ESP8266.inosecret.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】