This reverts commit cb84074981339d44266a1a999a7567a722af11f4. Cleanup REST API (#1255) * Replaced URIs: - value.html => value - statusflow.html => statusflow - cputemp.html => cputemp - rssi.html => rssi - statusflow.html => statusflow Removed URLs: - wasserzaehler.html * keep legacy API * . * . * . * . * . * . * updated links Remove ErrorMessage Fix various warnings which become fatal with later gcc versons in esp-idf 5.x (#1268) - we cannot use partial initialisation of structs in C++ files (copied from example C files initially it seems) - IRAM_ATTR uses a COUNTER, do not use the attribute on the implementation - provide missing copy implementations for Rgb and Hsv - one no longer can |= on volatile variables; use = | instead - fix project and header includes - avoid redefining BLINK_GPIO - Remove defined but unused variables - Fix printf formats - Add missing case statement (HTTP_EVENT_REDIRECT) - RMT needs to be updated to new interface (CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is on currently; see https://docs.espressif.com/projects/esp-idf/en/release-v5.0/esp32/api-reference/peripherals/rmt.html) - Adjust tcpip_adpater_* to esp_netif_* - Use buffered versions of *ntoa* functions for IPv4 addresses and not a static on the stack (also fixes warnings) - Whatever I missed Correct spelling of "Hostname" (#1270) Correct sdkonfig Increase max handler due to new handlers Revert "Cleanup REST API (#1255)" This reverts commitf3e73ec64a. Revert "Increase max handler due to new handlers" This reverts commitcbd63ad4bd. System instable Revert "Revert "Cleanup REST API (#1255)"" This reverts commit 2793c761413ffb987ab6a75da372e00e9f2f2cbd. Co-Authored-By: Bjoern A. Zeeb <patch@zabbadoz.net>
Welcome to the AI-on-the-edge-device
Artificial intelligence based systems have been established in our every days live. Just think of speech or image recognition. Most of the systems relay on either powerful processors or a direct connection to the cloud for doing the calculations up there. With the increasing power of modern processors the AI systems are coming closer to the end user - which is usually called edge computing. Here this edge computing is brought into a practical oriented example, where a AI network is implemented on a ESP32 device so: AI on the edge.
This projects allows you to digitalize your analoge water, gas, power and other meters using cheap and easily available hardware.
All you need is an ESP32 board with a supported camera and a bit of a practical hand.
Key features
- Small and cheap device (3x4.5x2 cm³, < 10 EUR)
- camera and illumination integrated
- Web surface for administration and control
- OTA-Interface to update directly through the web interface
- API for easy integration
- Inline Image processing (feature detection, alignment, ROI extraction)
- Tensorflow Lite (TFlite) integration - including easy to use wrapper
Workflow
The device takes a photo of your meter at a defined interval. It then extracts the Regions of Interest (ROI's) out of it and runs them through an artificial inteligence. As a result, you get the digitalized value of your meter.
There are several options what to do with that value. Either send it to a MQTT broker, write it to an InfluxDb or simply provide it throug a REST API.
Impressions
AI-on-the-edge-device on a Water Meter
Web Interface (Water Meter)
AI-on-the-edge-device on a Electrical Power Meter
Setup
There is a growing wiki which provides you with a lot of information. Head there to get a start, set it up and configure it.
There are also a articles in the German Heise magazine "make:" about the setup and the technical background (behind a paywall) : DIY - Setup
For further background information, head to Neural Networks, Training Neural Networks and Programming on the ESP32
Download
The latest available version is available on the Releases page.
Initially you will have to flash it through an USB connection. Later an update is possible directly over the Air (OTA).
Web Installer
There is a Web Installer available, that will work right out of the web browser Edge and Chrome You can access it with the following link: https://jomjol.github.io/AI-on-the-edge-device/index.html
Casing
A 3d-printable housing can be found here:
- https://www.thingiverse.com/thing:4573481 (Water Meter)
- https://www.thingiverse.com/thing:5028229 (Power Meter)
- https://www.thingiverse.com/thing:4571627 (ESP32-Cam housing only)
Build it yourself
See Build Instructions.
Donate
If you would like to support the developer with a cup of coffee you can do that via Paypal.
In other cases you can contact the developer via email: ![]()
Changes and History
See Changelog
Tools
- Logfile downloader and combiner (Thx to reserve85)
- Files see '/tools/logfile-tool', How-to see wiki
Additional Ideas
There are some ideas and feature requests which are not followed currently - mainly due to capacity reasons on side of the developer. They are collected here: FeatureRequest.md


