Skip to content

chl33/og3

Repository files navigation

og3 library

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.

Projects which use og3

  • 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.

Special-purpose libraries designed to work with og3

  • 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

About

A basic C++ library for esp development in Arduino environment

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages