项目简介
本项目借助Arduino终端和土壤湿度传感器,实时采集土壤湿度数据,利用MQTT协议将数据传输到InfluxDB数据库进行存储与分析。用户可通过InfluxDB的仪表盘功能查看和管理土壤湿度数据,进而更好地照料植物。
项目的主要特性和功能
- 土壤湿度数据采集:运用Wio Terminal和Grove Moisture传感器实时采集土壤湿度数据。
- 数据传输:通过MQTT协议把数据从Wio Terminal传输到InfluxDB。
- 数据存储与可视化:InfluxDB作为数据存储和应用层,用户能通过其仪表盘功能查看土壤湿度数据。
- 自定义MQTT Broker:支持在Raspberry Pi上自建MQTT Broker,以替换公共MQTT Broker。
安装使用步骤(假设用户已经下载了本项目的源码文件)
1. 创建InfluxDB账户
- 访问InfluxDB Cloud并创建一个账户。
- 选择数据存储位置和免费计划。
- 创建一个Bucket用于存储土壤湿度数据。
- 获取InfluxDB的认证信息(Token、Org、URL、Bucket)。
2. 配置Wio Terminal
- 将
template.h
文件复制为config.h
,并根据实际情况填写WiFi和InfluxDB的配置信息。 - 使用PlatformIO IDE将代码上传到Wio Terminal。
3. 运行Python MQTT Forwarder
- 复制项目代码库。
- 安装所需的Python库。
- 运行Python脚本将MQTT数据转发到InfluxDB。
4. 自建MQTT Broker(可选)
- 在Raspberry Pi上安装Mosquitto MQTT Broker。
- 配置并启动MQTT Broker。
- 测试MQTT Broker的连接。
安装MQTT Broker在Raspberry Pi上
- 更新并安装Mosquitto:
bash sudo apt-get update sudo apt-get install mosquitto mosquitto-clients sudo reboot
- 配置Mosquitto:
bash sudo nano /etc/mosquitto/mosquitto.conf
替换配置文件内容为:allow_anonymous true listener 1883
- 重启Mosquitto服务:
bash sudo systemctl restart mosquitto
参考资料
- Random Nerd Tutorials | esp32 InfluxDB
- PubSub Client API Documentation
- HIVE MQTT Arduino PubsubClient
- HIVE MQTT Python Client
- IoT4 Beginners - Install MQTT Broker on Raspberry Pi
- HacksterIO - Running a MQTT Broker on Raspberry Pi
- Stack Overflow - mosquito server refuses connections
- Stack Overflow - mosquitto client refused connection
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】