项目简介
本项目借助Python及其相关库,从各类传感器收集如温度、湿度、PH值等环境数据,对数据进行清洗、预处理、统计计算等操作。同时,利用AWS的RDS、Lambda、API Gateway等服务实现数据存储、函数计算和接口调用。此外,还支持以图表、地图等形式对数据进行可视化展示。
项目的主要特性和功能
- 数据收集:通过多种传感器(如土壤湿度传感器、温度传感器等)收集环境数据。
- 数据存储:使用AWS RDS(MySQL数据库)存储收集到的数据。
- 数据处理与计算:借助Python脚本对数据进行清洗、预处理和统计计算。
- 数据可视化:以图表和地图的形式展示环境数据,支持实时和历史数据的可视化。
- 函数计算与接口调用:利用AWS Lambda实现函数计算,并通过API Gateway提供REST API接口。
- 硬件集成:与ESP32等硬件设备集成,实现数据的实时采集。
安装使用步骤
环境搭建
- 创建Anaconda环境:
conda create --name <environment_name>
- 激活环境:
conda activate <environment_name>
- 安装pip:
conda install pip
- 安装依赖:
while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt
AWS配置
- 选择实例类型和区域:选择
ap-notheast-1
(东京)作为区域。 - 创建RDS实例:选择数据库引擎为
MySQL
,配置VPC和子网组,添加数据库名、用户名和密码,并使用MySQL Workbench连接创建数据库。 - 设置VPC和安全组:设置安全组(VPC)以允许从您的IP访问。
- 创建Lambda函数:安装依赖并打包为zip文件,上传到Lambda函数。
- 创建API Gateway:选择HTTP API并添加集成,配置名称后创建。
运行项目
展示GPS数据
- 激活环境:
conda activate <environment_name>
- 运行主程序:
python3 src/main.py
展示传感器数据
- 激活环境:
conda activate <environment_name>
- (可选)若使用数据库,修改
load_data()
为load_data(False , connection)
并取消注释connection = db_connection()
- 运行展示程序:
python3 src/show_data.py
- 结果图像将保存在
img
文件夹中。
实时展示数据
- 激活环境:
conda activate <environment_name>
- 运行实时绘图程序:
python3 src/Realtime_plot.py
数据库操作
- 删除或创建表:取消注释
src/sql_io.py
中的delete_table(connection)
或create_table(connection)
,激活环境后运行python3 src/sql_io.py
。 - 插入随机数据:取消注释
src/sql.py
中的插入代码,激活环境后运行python3 src/sql_io.py
。 - 导出数据到CSV:取消注释
src/sql_io.py
中的save_data_to_csv(connection , name = {name to save})
,激活环境后运行python3 src/sql_io.py
。 - 查询最新数据:取消注释
src/sql_io.py
中的query_last_data(connection)
,激活环境后运行python3 src/sql_io.py
。
MCU配置
- 打开VScode的PlatformIO插件,打开
mcu
项目文件夹。 - 打开
src/main.cpp
,替换ssid
和password
为您的WiFi信息。 - 上传代码到ESP32,若更新失败,可尝试修改
platformio.ini
中的upload_port
;若连接时间过长,可按boot
按钮后重新上传。 - 打开串口监视器查看结果,若不需要可注释
src/main.cpp
中的Serial.begin(115200)
和Serial.println()
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】