# 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](https://github.com/jomjol/AI-on-the-edge-device/wiki/Hardware-Compatibility) 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](https://github.com/jomjol/AI-on-the-edge-device/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](https://www.heise.de/select/make/2021/2/2103513300897420296) For further background information, head to [Neural Networks](https://www.heise.de/select/make/2021/6/2126410443385102621), [Training Neural Networks](https://www.heise.de/select/make/2022/1/2134114065999161585) and [Programming on the ESP32](https://www.heise.de/select/make/2022/2/2204010051597422030) ## Download The latest available version is available on the [Releases page](https://github.com/jomjol/AI-on-the-edge-device/releases). 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](code/README.md). ## Donate If you would like to support the developer with a cup of coffee you can do that via [Paypal](https://www.paypal.com/donate?hosted_button_id=8TRSVYNYKDSWL).
If you have any technical topics, you can create an [Issue](https://github.com/jomjol/AI-on-the-edge-device/issues). In other cases you can contact the developer via email: ## Changes and History See [Changelog](Changelog.md) ## Tools * Logfile downloader and combiner (Thx to [reserve85](https://github.com/reserve85)) * Files see ['/tools/logfile-tool'](tbd), How-to see [wiki](https://github.com/jomjol/AI-on-the-edge-device/wiki/Gasmeter-Log-Downloader) ## 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](FeatureRequest.md) ------