Artificial intelligence is everywhere, from speech to image recognition. While most AI systems rely on powerful processors or cloud computing, edge computing brings AI closer to the end user by utilizing the capabilities of modern processors.
This project demonstrates edge computing using a low-cost, AI-capable Espressif SOC device (e.g. ESP32), to digitize your analog meters — whether water, gas or electricity. With affordable hardware and simple instructions, you can turn any standard meter into a smart device.
Let's explore how to make AI on the Edge a reality!
- Tensorflow Lite (TFLite) integration – including easy-to-use wrapper
- Inline image processing (Image taking, Image alignment, ROI extraction, Post processing)
- Usage of small and low-cost AI-capable devices (Supported Hardware)
- Integrated camera and illumination (depending on hardware capabilities)
- Web interface for visualization, control and administration
- Over the air (OTA) firmware update via web interface
- Home Assistant Integration (Home Assistant Discovery)
- REST API
- MQTT v3
- InfluxDB v1
- InfluxDB v2
- Webhook Publishing
- Prometheus/OpenMetrics Exporter
The device takes an image of your meter at a defined interval. It extracts the Regions of Interest (ROIs) from the image and runs them through artificial intelligence. As a result, you get the digitized value of your meter. There are several options for what to do with that value. Either send it to a MQTT broker, write it to InfluxDB or simply provide access to it via a REST API (JSON / HTML).
Board Type | SOC | Firmware Release | Remarks |
---|---|---|---|
ESP32-CAM | ESP32 | All | |
XIAO ESP32 Sense | ESP32S3 |
|
ℹ️ No onboard illumination: Separate illumination (PWM controlable LED / Intelligent LED) required |
Camera Type | Sensor Resolution | Digital Zoom | Firmware Release | Remarks |
---|---|---|---|---|
OV2640 | 2MP | 1.0x - 2.5x | All | ℹ️ Officially EOL since 2009, but still very popular ℹ️ Pin and function compatible Chinese clones are supported |
OV5640 | 5MP | 1.0x - 4.0x |
|
ℹ️ Officially EOL since 2019, but still very popular ℹ️ Autofocus is not supported ℹ️ Power consumption higher than OV2640 |
There is growing documentation which provides you with a lot of information. Head there to get a start, how to set it up and configure it.
ℹ️ Not every description is 100% suitable for this fork. Therefore please check docs
folder of this repository for any fork specific documentation.
Small selection of youtube videos which might give you an idea how to getting started:
Video 1, Video 2, Video 3, Video 4, Video 5, Video 6, Video 7
There are multiple options to install the firmware and the SD card content.
Officially released firmware packages can be downloaded from releases page.
A possibly already available development version (upcoming release version) can be previewed here.
After the device is initially installed using one of the following installation options, it is strongly recommended to perform any further firmware update using the web interface built-in OTA functionality.
Follow the instructions listed at Web Installer page.
Further details can be found in Web Installer Provisioning Documentation.
Further details can be found in Manual Provisioning Documentation.
See REST API Documentation in github repository or via device web interface (System > Documentation > REST API
).
ℹ️ Read API documenation carefully. REST API is not fully compatible with jomjol's original firmware.
See MQTT API Documentation in github repository or via device web interface (System > Documentation > MQTT API
).
ℹ️ Read API documenation carefully. Webhook API is not fully compatible with jomjol's original firmware.
See Prometheus API Documentation in github repository or via device web interface (System > Documentation > Prometheus API
).
ℹ️ Read API documenation carefully. Prometheus API is not fully compatible with jomjol's original firmware.
See Webhook API Documentation in github repository or via device web interface (System > Documentation > Webhook API
).
ℹ️ Read API documenation carefully. Webhook API is not fully compatible with jomjol's original firmware.
See Build / Debug Instructions
ℹ️ This is a forked version of jomjol´s great software which is intented to use for my personal purposes only.