diff --git a/README.md b/README.md index 2b3b805d9..6a8397d74 100644 --- a/README.md +++ b/README.md @@ -1,115 +1,156 @@ -# Welcome to the AI-on-the-edge-device - +# AI on the Edge Device: Digitizing Your non-digital meters with an ESP32-CAM +
+ +
-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, a concept known as **edge computing**. -In this project, edge computing is demonstrated through a practical example, where an AI network is implemented on an ESP32 device, hence: **AI on the edge**. +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 the **ESP32**, a low-cost, AI-capable device, 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. -This project allows you to digitize your **analog** water, gas, power and other meters using cheap and readily available hardware. +Let's explore how to make **AI on the Edge** a reality! π -All you need is an [ESP32 board with a supported camera](https://jomjol.github.io/AI-on-the-edge-device-docs/Hardware-Compatibility/) and some practical skills. +All you need is an [ESP32 board with a supported camera](https://jomjol.github.io/AI-on-the-edge-device-docs/Hardware-Compatibility/) and some practical skills. π οΈ - +--- -## 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 with Home Assistant -- Support for Influx DB 1 and 2 -- MQTT -- REST API +## Key Features π +- π **Tensorflow Lite (TFLite) integration** β including an easy-to-use wrapper. +- πΈ **Inline image processing** (feature detection, alignment, ROI extraction). +- π‘ **Small** and **affordable** device (3 x 4.5 x 2 cmΒ³, less than 10 EUR). +- π· Integrated camera and illumination. +- π Web interface for administration and control. +- π OTA interface for updating directly via the web interface. +- π Full integration with Home Assistant. +- π Support for **Influx DB 1** and **2**. +- π‘ **MQTT protocol** support. +- π₯ **REST API** available for data access. -## Workflow +## Workflow π§ The device captures a photo of your meter at set intervals. 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. +There are several options for what to do with that value: +- π€ Send it to a **MQTT broker**. +- π Write it to an **InfluxDb**. +- π Provide access via a **REST API**. - ++ +
-## Impressions -### AI-on-the-edge-device on a Water Meter - +--- -### Web Interface (Water Meter) - +## Impressions π· -### AI-on-the-edge-device on a Electrical Power Meter - +### AI-on-the-edge-device on a Water Meter π§ ++ +
+### Web Interface (Water Meter) π» ++ +
-## Setup -There is growing [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/) which provides you with a lot of information. Head there to get a start, set it up and configure it. +### AI-on-the-edge-device on an Electrical Power Meter β‘ ++ +
-There are also articles in the German Heise magazine "make:" about the setup and technical background (behind a paywall): [DIY - Setup](https://www.heise.de/select/make/2021/2/2103513300897420296) +--- -A lot of people created useful YouTube videos which might help you getting started. -Here a small selection: +## Setup π οΈ +There is growing [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/) which provides you with a lot of information. Head there to get started, set it up, and configure it. -- [youtube.com/watch?v=HKBofb1cnNc](https://www.youtube.com/watch?v=HKBofb1cnNc) -- [youtube.com/watch?v=yyf0ORNLCk4](https://www.youtube.com/watch?v=yyf0ORNLCk4) -- [youtube.com/watch?v=XxmTubGek6M](https://www.youtube.com/watch?v=XxmTubGek6M) -- [youtube.com/watch?v=mDIJEyElkAU](https://www.youtube.com/watch?v=mDIJEyElkAU) -- [youtube.com/watch?v=SssiPkyKVVs](https://www.youtube.com/watch?v=SssiPkyKVVs) -- [youtube.com/watch?v=MAHE_QyHZFQ](https://www.youtube.com/watch?v=MAHE_QyHZFQ) -- [youtube.com/watch?v=Uap_6bwtILQ](https://www.youtube.com/watch?v=Uap_6bwtILQ) +There are also articles in the German Heise magazine "make:" about the setup and 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). +A lot of people have created useful YouTube videos that might help you get started: +- π₯ [youtube.com/watch?v=HKBofb1cnNc](https://www.youtube.com/watch?v=HKBofb1cnNc) +- π₯ [youtube.com/watch?v=yyf0ORNLCk4](https://www.youtube.com/watch?v=yyf0ORNLCk4) +- π₯ [youtube.com/watch?v=XxmTubGek6M](https://www.youtube.com/watch?v=XxmTubGek6M) +- π₯ [youtube.com/watch?v=mDIJEyElkAU](https://www.youtube.com/watch?v=mDIJEyElkAU) +- π₯ [youtube.com/watch?v=SssiPkyKVVs](https://www.youtube.com/watch?v=SssiPkyKVVs) +- π₯ [youtube.com/watch?v=MAHE_QyHZFQ](https://www.youtube.com/watch?v=MAHE_QyHZFQ) +- π₯ [youtube.com/watch?v=Uap_6bwtILQ](https://www.youtube.com/watch?v=Uap_6bwtILQ) -### Download +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) +- [Programming on the ESP32](https://www.heise.de/select/make/2022/2/2204010051597422030) + +--- + +## Download π½ The latest available version can be found on the [Releases page](https://github.com/jomjol/AI-on-the-edge-device/releases). -### Flashing the ESP32 -Initially you will have to flash the ESP32 via a USB connection. Later updates are possible directly over the air (OTA using Wi-Fi). +--- + +## Flashing the ESP32 πΎ +Initially, you will have to flash the ESP32 via a USB connection. Later updates are possible directly over the air (OTA using Wi-Fi). There are different ways to flash your ESP32: -- The preferred way is the [Web Installer and Console](https://jomjol.github.io/AI-on-the-edge-device/index.html) which is a browser-based tool to flash the ESP32 and extract the log over USB: -![](images/web-installer.png) +- The preferred way is the [Web Installer and Console](https://jomjol.github.io/AI-on-the-edge-device/index.html), a browser-based tool to flash the ESP32 and extract the log over USB: + ![](images/web-installer.png) - Flash Tool from Espressif - ESPtool (command-line tool) See the [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/Installation/) for more information. -### Flashing the SD Card -The SD card can be setup automatically after the firmware got installed. See the [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/Installation/#remote-setup-using-the-built-in-access-point) for details. For this to work, the SD card must be FAT formated (which is the default on a new SD card). -Alternatively, the SD card still can be set up manually, see the [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/Installation/#3-sd-card) for details! +--- + +## Flashing the SD Card πΎ +The SD card can be set up automatically after the firmware is installed. See the [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/Installation/#remote-setup-using-the-built-in-access-point) for details. For this to work, the SD card must be FAT formatted (which is the default on a new SD card). + +Alternatively, the SD card can still be set up manually. See the [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/Installation/#3-sd-card) for details. + +--- + +## Casing π οΈ +Various 3D-printable housings can be found here: +- π§ [Water Meter](https://www.thingiverse.com/thing:4573481) +- β‘ [Power Meter](https://www.thingiverse.com/thing:5028229) +- π₯ [Gas Meter](https://www.thingiverse.com/thing:5224101) +- π· [ESP32-cam housing only](https://www.thingiverse.com/thing:4571627) + +--- + +## Donate β +If you'd like to support the developer with a cup of coffee, you can do so via [PayPal](https://www.paypal.com/donate?hosted_button_id=8TRSVYNYKDSWL). + + + +--- + +## Support π¬ +If you have any technical problems, please search the [discussions](https://github.com/jomjol/AI-on-the-edge-device/discussions). In case you find a bug or have a feature request, please open an [issue](https://github.com/jomjol/AI-on-the-edge-device/issues). + +For any other issues, you can contact the developer via email: ++ +
-## Casing -Various 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:5224101 (Gas Meter) - - https://www.thingiverse.com/thing:4571627 (ESP32-cam housing only) +--- -## 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). +## Changes and History π +See the [Changelog](Changelog.md) for detailed information. - +--- -## Support -If you have any technical problems please search the [discussions](https://github.com/jomjol/AI-on-the-edge-device/discussions). In case you find a bug or have a feature request, please open an [issue](https://github.com/jomjol/AI-on-the-edge-device/issues). +## Build It Yourself π¨ +See the [Build Instructions](code/README.md) for step-by-step guidance. -In other cases you can contact the developer via email: +--- -## Changes and History -See [Changelog](Changelog.md). +## Tools π οΈ +* Logfile downloader and combiner (Thanks to [reserve85](https://github.com/reserve85)) + * Files can be found at ['/tools/logfile-tool'](tbd), and how-to instructions are in the [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/outdated--Gasmeter-Log-Downloader/). -## Build It Yourself -See [Build Instructions](code/README.md). +--- -## Tools -* Logfile downloader and combiner (Thx to [reserve85](https://github.com/reserve85)) - * Files see ['/tools/logfile-tool'](tbd), how-to see [documentation](https://jomjol.github.io/AI-on-the-edge-device-docs/outdated--Gasmeter-Log-Downloader/) +## Additional Ideas π‘ +There are some ideas and feature requests which are not currently being pursuedβmainly due to capacity constraints on the part of the developers. These features are collected in the [issues](https://github.com/jomjol/AI-on-the-edge-device/issues) and in [FeatureRequest.md](FeatureRequest.md). -## 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 developers. -They features are collected in the [issues](https://github.com/jomjol/AI-on-the-edge-device/issues) and in [FeatureRequest.md](FeatureRequest.md). +--- ## Our Contributors β€οΈ - - - +