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

【源码】基于Python和AWS的环境数据收集分析系统

项目简介

本项目借助Python及其相关库,从各类传感器收集如温度、湿度、PH值等环境数据,对数据进行清洗、预处理、统计计算等操作。同时,利用AWS的RDS、Lambda、API Gateway等服务实现数据存储、函数计算和接口调用。此外,还支持以图表、地图等形式对数据进行可视化展示。

项目的主要特性和功能

  1. 数据收集:通过多种传感器(如土壤湿度传感器、温度传感器等)收集环境数据。
  2. 数据存储:使用AWS RDS(MySQL数据库)存储收集到的数据。
  3. 数据处理与计算:借助Python脚本对数据进行清洗、预处理和统计计算。
  4. 数据可视化:以图表和地图的形式展示环境数据,支持实时和历史数据的可视化。
  5. 函数计算与接口调用:利用AWS Lambda实现函数计算,并通过API Gateway提供REST API接口。
  6. 硬件集成:与ESP32等硬件设备集成,实现数据的实时采集。

安装使用步骤

环境搭建

  1. 创建Anaconda环境:conda create --name <environment_name>
  2. 激活环境:conda activate <environment_name>
  3. 安装pip:conda install pip
  4. 安装依赖:while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt

AWS配置

  1. 选择实例类型和区域:选择 ap-notheast-1(东京)作为区域。
  2. 创建RDS实例:选择数据库引擎为 MySQL,配置VPC和子网组,添加数据库名、用户名和密码,并使用MySQL Workbench连接创建数据库。
  3. 设置VPC和安全组:设置安全组(VPC)以允许从您的IP访问。
  4. 创建Lambda函数:安装依赖并打包为zip文件,上传到Lambda函数。
  5. 创建API Gateway:选择HTTP API并添加集成,配置名称后创建。

运行项目

展示GPS数据

  1. 激活环境:conda activate <environment_name>
  2. 运行主程序:python3 src/main.py

展示传感器数据

  1. 激活环境:conda activate <environment_name>
  2. (可选)若使用数据库,修改 load_data()load_data(False , connection) 并取消注释 connection = db_connection()
  3. 运行展示程序:python3 src/show_data.py
  4. 结果图像将保存在 img 文件夹中。

实时展示数据

  1. 激活环境:conda activate <environment_name>
  2. 运行实时绘图程序:python3 src/Realtime_plot.py

数据库操作

  1. 删除或创建表:取消注释 src/sql_io.py 中的 delete_table(connection)create_table(connection),激活环境后运行 python3 src/sql_io.py
  2. 插入随机数据:取消注释 src/sql.py 中的插入代码,激活环境后运行 python3 src/sql_io.py
  3. 导出数据到CSV:取消注释 src/sql_io.py 中的 save_data_to_csv(connection , name = {name to save}),激活环境后运行 python3 src/sql_io.py
  4. 查询最新数据:取消注释 src/sql_io.py 中的 query_last_data(connection),激活环境后运行 python3 src/sql_io.py

MCU配置

  1. 打开VScode的PlatformIO插件,打开 mcu 项目文件夹。
  2. 打开 src/main.cpp,替换 ssidpassword 为您的WiFi信息。
  3. 上传代码到ESP32,若更新失败,可尝试修改 platformio.ini 中的 upload_port;若连接时间过长,可按 boot 按钮后重新上传。
  4. 打开串口监视器查看结果,若不需要可注释 src/main.cpp 中的 Serial.begin(115200)Serial.println()

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】