No Description

CaCO3 ebc9be4a28 added label action 2 years ago
.github ebc9be4a28 added label action 2 years ago
code 40a1aa0430 Update submodules, include only needed layers of tflite (#2586) 2 years ago
docs d7a733512f 📚 Fix minor typos, grammar and formatting issues. (#2575) 2 years ago
firmware bf090f3762 Update README.md 3 years ago
images 3ace5aeff1 . 2 years ago
releases 245302c6ca Release Preparations (#1925) 3 years ago
sd-card dc9f1aad27 new images on dig-class100, older ana-class100 removed (#2545) 2 years ago
tools b5e0d6ee66 Implement InfluxDBv1 and minor changes (#2211) 2 years ago
.gitignore a8f8189543 Keep the html folder on a flast structure (no subfolders). Else the OTA fails until >15.0.x because it does not create the needed subfolders (#2080) 2 years ago
.gitmodules c2a55e7c86 v15.2.0 (#2345) 2 years ago
Changelog.md 40a1aa0430 Update submodules, include only needed layers of tflite (#2586) 2 years ago
FeatureRequest.md 5d0fc73c13 Updated feature request 2 years ago
README.md d7a733512f 📚 Fix minor typos, grammar and formatting issues. (#2575) 2 years ago

README.md

Welcome to the AI-on-the-edge-device

Artificial intelligence based systems have become established in our everyday lives. Just think of speech or image recognition. Most of the systems rely on either powerful processors or a direct connection to the cloud for doing the calculations 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 put into a practically oriented example, where an AI network is implemented on an ESP32 device so: AI on the edge.

This project allows you to digitize your analog water, gas, power and other meters using cheap and easily available hardware.

All you need is an ESP32 board with a supported camera and something of a practical hand.

Key features

  • Tensorflow Lite (TFlite) integration – including easy-to-use wrapper
  • Inline image processing (feature detection, alignment, ROI extraction)
  • Small and cheap device (3 x 4.5 x 2 cm³, < 10 EUR)
  • Integrated camera and illumination
  • Web interface for administration and control
  • OTA interface for updating directly via the web interface
  • Full integration into Homeassistant
  • Support for Influx DB 1
  • MQTT
  • REST API

Workflow

The device takes a photo of your meter at a defined interval. It then 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 an MQTT broker, write it to an InfluxDb or simply provide access to it via 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 growing documentation which provides you with a lot of information. Head there to get a start, set it up and configure it.

There are also articles in the German Heise magazine "make:" about the setup and 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 can be found on the Releases page.

Flashing the ESP32

Initially you will have to flash the ESP32 via a USB connection. Later updates are possible directly over the air (OTA).

There are different ways to flash your ESP32:

  • Web Installer and Console (Browser-based tool to flash the ESP32 and extract the log over USB)
  • Flash Tool from Espressif
  • ESPtool (command-line tool)

See the documentation for more information.

Flashing the SD Card

The SD card must be flashed separately, see the documentation for details.

Casing

A 3D-printable housing can be found here:

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.

If you have any technical problems, you can create an Issue.

In other cases you can contact the developer via email:

Changes and History

See Changelog.

Tools

Additional Ideas

There are some ideas and feature requests which are not currently being pursued – mainly due to capacity reasons on the part of the developer. They are collected here: FeatureRequest.md.