explaingit

jomjol/ai-on-the-edge-device

8,357C++Audience · developerComplexity · 4/5Setup · hard

TLDR

Firmware for a cheap ESP32-CAM board that photographs your home utility meters, uses on-device AI to read the digits, and sends the readings to Home Assistant, MQTT, or InfluxDB over Wi-Fi, no cloud required.

Mindmap

mindmap
  root((AI Edge Meter))
    What it does
      Reads utility meters
      On-device AI
      No cloud needed
    Hardware
      ESP32-CAM board
      Under ten euros
      Micro SD card
    Data outputs
      MQTT messages
      InfluxDB logging
      REST API
      Home Assistant
    Setup
      Flash firmware
      SD card config
      Mount near meter
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Automatically log water, gas, or electricity meter readings to a database without any manual reading.

USE CASE 2

Connect physical utility meters to Home Assistant to build automations based on real consumption data.

USE CASE 3

Build a local, cloud-free IoT meter reader for under ten euros using an ESP32-CAM board and a micro SD card.

Tech stack

C++TensorFlow LiteESP32MQTTInfluxDB

Getting it running

Difficulty · hard Time to first run · 1day+

Requires an ESP32-CAM board, a micro SD card, a USB-to-serial adapter for initial flashing, and physical mounting near the meter.

In plain English

This project lets you read your home's physical utility meters, such as water, gas, and electricity meters, automatically using a cheap camera-equipped microcontroller. The idea is to attach a small device near the meter's display, take photos of it at regular intervals, and use image recognition software running directly on the device to extract the numeric reading. That reading is then sent over your home network to other software so you can track consumption over time. The hardware involved is an ESP32-CAM, a small circuit board roughly the size of a postage stamp that costs under ten euros and includes a Wi-Fi chip, a microcontroller, and a camera. The software running on it uses TensorFlow Lite, a version of Google's machine learning library designed for low-power devices, to recognize the digits on the meter face. The device handles all image processing locally without sending photos to any cloud service. Once the device reads a meter value, it can deliver that number in several ways: via MQTT (a standard messaging protocol used in home automation), to an InfluxDB time-series database for logging, or through a REST API that other software can query. There is also built-in integration with Home Assistant, a popular open-source home automation platform. Setup involves flashing firmware to the ESP32 board (using a browser-based installer or a command-line tool), preparing a micro SD card with configuration files, and mounting the device near the meter. A web interface running on the device lets you configure which part of the meter image to read and monitor what the AI is recognizing. Firmware updates can be done wirelessly after initial setup. The README includes links to 3D-printable housings for water, power, and gas meters, along with YouTube tutorials from community members who have installed it. Full documentation is hosted separately on a dedicated documentation site.

Copy-paste prompts

Prompt 1
I want to set up ai-on-the-edge-device on an ESP32-CAM to read my water meter. Walk me through flashing the firmware using the browser installer, preparing the SD card, and configuring the digit-recognition region of interest.
Prompt 2
Help me configure ai-on-the-edge-device to publish meter readings to my Home Assistant instance via MQTT. Show the YAML sensor config I need to add in Home Assistant to display the value.
Prompt 3
I want to store ai-on-the-edge-device readings in InfluxDB and graph daily consumption in Grafana. Show me the configuration file settings for InfluxDB output and the Grafana query to plot usage over time.
Prompt 4
My ESP32-CAM is misreading one digit on my electricity meter. How do I use the built-in web interface to adjust the region of interest and improve recognition accuracy?
Open on GitHub → Explain another repo

← jomjol on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.