The og3 library is a C++ application framework for ESP microprocessors. It was written especially to support MQTT applications and interface with Home Assistant. This library is designed to be used with the Platformio development environment.
I wrote-up a description of using this application framework in Garden133 Firmware.
... "og" stands for original gangsta because it is an old-school C++ library and application framework, not one of those trendy YAML-based frameworks like ESPHome that the kids these days are using. This is partly because I want the control that writing firmware directly in C++ provides, and partly because I'm a programmer so my hobby projects involve real programming, dammit!
Note that this code is a work in progress and should be considered beta quality. It is suitable for DIY projects at this point. The APIs of thinis code are still slowly evolving over time.
- Modules and the ModuleSystem. This system helps to break an application into a set of reusable modules which can work together.
- Tasks. This is a utility for running scheduled tasks.
- Logging. This is a very simple text-logging system for monitoring and debugging.
- Variables. A
Variable
is a named container for a value, used with web forms, MQTT, and flash storage. - Application framework. An
App
is a package of modules, a system for running scheduled jobs, logging, and other utilities to help writing a firmware application.
Example programs:
- Blink is a simple application with a module that can blink an LED on and off.
- Wifi-app is like Blink, but adds a configurable Wifi connection and flash storage.
- Web-app adds to Wifi-app a web interface for configuring the Wifi options.
- HA-app is a simple application using MQTT, for talking to Home Assistant. It builds on Web-app.
- Plant133 is a device that can monitor and water up to 4 plants at a time.
- Dough133 is a temperature-controlled container for proofing and fermenting soughdough.
- Garage133 is a DIY device for garage door automation.
- Room133 is a device for room monitoring, for use with Home Assistant
- Boiler is specialized software for the Room133 board for monitor the water level of a boiler.
- Garden133 is a device that monitors soil moisture in your yard and garden, to help with watering automation.
- LoRa133 is a LoRa base-station for Garden133.
- og3x-shtc3. Support for SHTC3 temperature/humidity sensors
- og3x-bme280. Support for BME280 temperature/humidity/pressure sensors
- og3x-lora. Support for LoRa radio modules
- og3x-oled. Support for small .91" OLED displays
- og3x-satellite. Support for base-station / satellite systems. Initially developed for LoRa-based system. Uses a protobuf-based protocol.
chl33