The first version began as an ESP32, a temperature/humidity sensor, and an OLED. That proved the basic sensing path, but it did not yet address the harder system questions: How are multiple nodes identified? Where does configuration live? What happens when inputs are invalid? How is data preserved? How is firmware updated without touching every device?

System-level changes

  • Added a FastAPI backend for telemetry and configuration.
  • Added SQLite persistence and browser dashboarding.
  • Separated secrets from source code.
  • Added API-key authentication, device allowlisting, and input validation.
  • Moved thresholds and reporting intervals under backend control.
  • Added OTA firmware updates and repeatable test evidence.

What broke

Integration exposed configuration mismatches, overly fast charts, OTA authentication errors, device-specific behavior, and the need to separate temperature and humidity controls. Each failure produced a clearer requirement and a more repeatable test.

The next engineering problem

V2 will move from monitoring toward control. That requires actuator safety, separate setpoints, enclosure design, environmental modeling, fault handling, reliability measurement, and a clear distinction between local control and cloud visibility.

The important lesson: a project becomes engineering evidence when the requirements, failures, tests, tradeoffs, and limitations are documented—not merely when the demo works.