Simple embedded application for environmental sensing and reporting implemented in modern C++17 for small microcontroller boards. The project collects temperature, humidity, pressure, light, soil moisture, and ultraviolet intensity then formats measurements as JSON for downstream consumption.
No dynamic memory is used: everything lives on the stack ensuring forever uptime!
platformio.iniConfiguration for build targets and board definitionsincludePublic header files used across moduleslibLibraries organized per featureJsonStreamerLightweight JSON output helperMeasurementBufferRing buffer for sample storageSensorsSensor abstractions and device specific codeTaskManagerCooperative task scheduler utilitiesUtilsSmall helper templates and logging utilities
srcApplication entry pointmain.cpp
Use the PlatformIO integration in the editor to build and to upload firmware. The project defines an environment named uno intended for AVR UNO class boards. Build from the editor tasks or from the PlatformIO user interface.
Edit platformio.ini to change board settings or to add new environments. Sensor wiring and hardware specific constants are declared in include/constants.h and in the sensor headers under lib/Sensors.