利用 Arduino R3 和 ESP8266 构建了一个环境监测系统。Arduino R3 负责采集传感器数据,并通过串口与 ESP8266 进行数据交换。ESP8266 将数据推送到 MQTT Broker,并分发给订阅用户。
-
多传感器支持:
- 采集光照、土壤湿度、温度、湿度数据。
-
数据传输:
- Arduino R3 通过串口响应 ESP8266 的轮询命令。
- 串口协议统一为
DATA:SENSOR:VALUE,例如DATA:LIGHT:512。 - ESP8266 使用 MQTT 协议将数据推送到
home/sensor/{sensor}。
-
实时更新:
- 订阅用户可以实时接收到环境数据更新。
-
硬件连接:
- 将光敏、土壤湿度、DHT11 连接到 Arduino R3。
- 通过串口连接 Arduino R3 和 ESP8266。
-
软件配置:
- 配置 secrets.h 中的 WiFi 和 MQTT 信息。
- 首次编译前安装依赖库:
arduino-cli lib install "DHT sensor library"arduino-cli lib install "Adafruit Unified Sensor"
-
构建与烧录:
- 构建 Arduino R3:
arduino-cli compile --fqbn arduino:avr:uno --build-path output/r3 Arduino_Uno_R3 - 烧录 Arduino R3:
arduino-cli upload --fqbn arduino:avr:uno --input-dir output/r3 -p COM11 Arduino_Uno_R3 - 一步完成构建并烧录 Arduino R3:
arduino-cli compile --fqbn arduino:avr:uno --build-path output/r3 --upload -p COM11 Arduino_Uno_R3 - 构建 ESP8266:
arduino-cli compile --fqbn esp8266:esp8266:nodemcuv2 --build-path output/esp8266 ESP8266 - 烧录 ESP8266:
arduino-cli upload --fqbn esp8266:esp8266:nodemcuv2 --input-dir output/esp8266 -p COM12 ESP8266 - 一步完成构建并烧录 ESP8266:
arduino-cli compile --fqbn esp8266:esp8266:nodemcuv2 --build-path output/esp8266 --upload -p COM12 ESP8266 - 将
COM11、COM12替换成你机器上的实际串口。
- 构建 Arduino R3:
-
运行系统:
- 启动系统,开始采集和推送数据。
- MQTT 主题为:
home/sensor/lighthome/sensor/soilhome/sensor/temperaturehome/sensor/humidity
- 智能家居环境监测
- 农业土壤和气候监控
- 科研实验数据采集