How brandenbeaman/plantmonitor works
This ESP32 plant monitor samples environmental and soil sensors, classifies soil moisture, and controls a humidity-triggered mister. It timestamps and serializes the readings, posts telemetry over Wi-Fi, then enters deep sleep for a scheduled wake. The main firmware owns this workflow; separate modules implement soil classification, mister control, time/network setup, JSON construction, and HTTP delivery. The README is empty; the architecture is based on the supplied tree and sampled source, so unsampled peripheral behavior is omitted.
Main entry points: main.cpp Firmware workflow · network.cpp Wi-Fi and time · sendData.cpp HTTP sender · updateMister.cpp Mister control
Components 14
Firmware orchestration
- Firmware workflow
src/main.cpp
Sensing and control
- Soil classifier
src/waterStatus/waterStatus.cpp - Mister control
src/updateMister/updateMister.cpp
Telemetry and connectivity
- Wi-Fi and time
src/network/network.cpp - JSON builder
src/buildJson/buildJson.cpp - HTTP sender
src/sendData/sendData.cpp
Other components
- DHT11 sensor
- BH1750 sensor
- Soil sensor
- Mister relay
- Wi-Fi network
- NTP server
- Telemetry server
- ESP32 deep sleep
Connections 16
- Firmware workflow → DHT11 sensor: reads humidity and temperature
- Firmware workflow → BH1750 sensor: reads light level
- Firmware workflow → Soil sensor: reads ADC value
- Firmware workflow → Soil classifier: classifies reading
- Firmware workflow → Mister control: updates from humidity
- Mister control → Mister relay: switches relay
- Firmware workflow → Wi-Fi and time: connects Wi-Fi
- Wi-Fi and time → Wi-Fi network: connects
- Wi-Fi and time → NTP server: syncs clock
- Firmware workflow → Wi-Fi and time: gets timestamp
- Firmware workflow → JSON builder: builds payload
- JSON builder → Firmware workflow: returns JSON
- Firmware workflow → HTTP sender: sends payload
- HTTP sender → Wi-Fi network: checks connection
- HTTP sender → Telemetry server: posts JSON
- Firmware workflow → ESP32 deep sleep: enters timed sleep