update pages
@@ -1,23 +1,21 @@
|
||||
This page shows some best practices.
|
||||
# Camera Placement
|
||||
# Best Practice
|
||||
|
||||
This page shows some best practices:
|
||||
|
||||
## Camera Placement
|
||||
* Move the Camera as close as possible(~4cm), this will help get rid of reflections.
|
||||
-> focus can be adjusted by turning the outer black ring of the camera.
|
||||
* If the LED reflections are too strong, put tape over the LED to defuse the light
|
||||
* Change the ImageSize to QVGA under "Expert mode" configuration when close enough, this will be faster and is often good enough for digital recognition.
|
||||
|
||||
# Reflections
|
||||
## Reflections
|
||||
|
||||
* Try to get ride of the reflections by rotating the camera, so that the reflections are at positions, where no number is.
|
||||
* By using the external LED option, you can place WS2812 LEDs freely away from the main axis.
|
||||
* Users report, that a handy cover foil could also help
|
||||
|
||||
# Post-processing
|
||||
## Post-processing
|
||||
* Filter out the Number "9", as "3" will often be misread for a "9" and void every number between 3 and 9 due to it being negative flow.
|
||||
* Split the readings into two, while the decimal numbers might move to fast to be recognized, at least the slower moving part will produce a correct reading.
|
||||
-> keep in mind that the offset needs to be adjusted, a.e if you have a comma reading of "3", it needs to become "0.3". This can be done wherever the data ends up being sent, like home assistant using sensor templates.
|
||||
* If you are using a low resolution and only digital mode, processing can often be done in <1 minute. Check the logs to confirm how fast it is and then set the interval accordingly under "Expert mode" in configuration, as the normal mode will lock you to 3+ minutes.
|
||||
|
||||
***
|
||||
|
||||
* [ ] Todo condense from various discussions, eg. ~~https://github.com/jomjol/AI-on-the-edge-device/issues/765~~ and https://github.com/jomjol/AI-on-the-edge-device/discussions/984
|
||||
* [ ] Todo add images and more in-depth explanation
|
||||
|
||||
@@ -1,30 +1,2 @@
|
||||
# New
|
||||
# Build the project yourself
|
||||
See [README.md](https://github.com/jomjol/AI-on-the-edge-device/blob/master/code/README.md)
|
||||
|
||||
# Old
|
||||
|
||||
## Build the project yourself
|
||||
|
||||
- Download and install VS Code
|
||||
- https://code.visualstudio.com/Download
|
||||
- Install the VS Code platform io plugin
|
||||
- <img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/platformio_plugin.jpg" width="200" align="middle">
|
||||
- Check for error messages, maybe you need to manually add some python libraries
|
||||
- e.g. in my Ubuntu a python3-env was missing: `sudo apt-get install python3-venv`
|
||||
- git clone this project
|
||||
- in Linux: `git clone https://github.com/jomjol/AI-on-the-edge-device.git`
|
||||
- in VS code, open the `AI-on-the-edge-device/code`
|
||||
- from terminal: `cd AI-on-the-edge-device/code && code .`
|
||||
- open a pio terminal (click on the terminal sign in the bottom menu bar)
|
||||
- make sure you are in the `code` directory
|
||||
- To build, type `platformio run --environment esp32cam`
|
||||
- or use the graphical interface:
|
||||
<img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/platformio_build.jpg" width="200" align="middle">
|
||||
- the build artifacts are stored in `code/.pio/build/esp32cam/`
|
||||
- Connect the device and type `pio device monitor`. There you will see your device and can copy the name to the next instruction
|
||||
- Add `upload_port = you_device_port` to the `platformio.ini` file
|
||||
- make sure an sd card with the contents of the `sd_card` folder is inserted and you have changed the wifi details
|
||||
- `pio run --target erase` to erase the flash
|
||||
- `pio run --target upload` this will upload the `bootloader.bin, partitions.bin,firmware.bin` from the `code/.pio/build/esp32cam/` folder.
|
||||
- `pio device monitor` to observe the logs via uart
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Which model should I use?
|
||||
# Model Selection
|
||||
|
||||
In the [Graphical Configuration Page](Graphical-configuration), you can choose different models depending on your needs.
|
||||
|
||||
@@ -13,7 +13,7 @@ For digits on water meters, gas-meters or power meters you can select between tw
|
||||
|
||||
This model can recognize full digits. All intermediate states shown a "N" for not a number. But in post process it uses older values to fill up the "N" values if possible.
|
||||
|
||||
<img width="333" alt="image" src="https://user-images.githubusercontent.com/412645/190924459-e4023630-c6d0-4a8c-ab56-59e6c0e3ffd8.png">
|
||||
{: style="width:300px"}
|
||||
|
||||
#### Main features
|
||||
|
||||
@@ -25,7 +25,8 @@ This model can recognize full digits. All intermediate states shown a "N" for no
|
||||
|
||||
These models are used to get a continuous reading with intermediate states. To see what the models are doing, you can go to the Recognition page.
|
||||
|
||||
<img width="323" alt="image" src="https://user-images.githubusercontent.com/412645/190924335-b8b75883-7b39-4fd6-a949-49c69834fee4.png">
|
||||
{: style="width:300px"}
|
||||
|
||||
|
||||
#### Main features
|
||||
|
||||
@@ -44,7 +45,7 @@ The difference is in the internal processing. Take the one that gives you the be
|
||||
|
||||
For pointers on water meters use the analog models. You can only choose between ana-class100 and ana-cont. Both do mainly the same.
|
||||
|
||||
<img width="231" alt="image" src="https://user-images.githubusercontent.com/412645/190924487-18ed16e1-1c89-45f1-823e-305b7e78ac46.png">
|
||||
{: style="width:250px"}
|
||||
|
||||
#### Main features
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# Hardware Compatibility
|
||||
|
||||
See also https://github.com/jomjol/AI-on-the-edge-device/discussions/1732
|
||||
|
||||
General Remark: similar "looking" Board can have major differences:
|
||||
### General Remark
|
||||
Altrough a board looks similair, it can have major differences, eg.:
|
||||
|
||||
- Processor
|
||||
- Ram (Size! & Type) -> this Project needs at least 4MB RAM!
|
||||
@@ -72,14 +71,22 @@ It is observed, that smaller cards (up to 4 GB) tend to be more stable and large
|
||||
|
||||
# Devices known to work
|
||||
|
||||
Please add links to stores of which you know they work:
|
||||
- https://arduino-projekte.info/produkt/esp32-cam-v2-integriertem-ch340-mit-ov2640-kamera-modul/ ? See https://github.com/jomjol/AI-on-the-edge-device/discussions/1041
|
||||
- https://www.amazon.de/-/en/gp/product/B0B51CQ13R
|
||||
- https://www.reichelt.de/entwicklerboards-esp32-kamera-2mp-25--debo-cam-esp32-p266036.html?PROVID=2788&gclid=CjwKCAiAqaWdBhAvEiwAGAQlttJnV4azXWDYeaFUuNioMICh-jvxKp6Cifmcep9vvtoT2JRCDqBczRoC7Q0QAvD_BwE (27.12.2022)
|
||||
- ...
|
||||
Sandisk 2GB Micro SD Class 2 [Sandisk 2GB](https://www.amazon.co.uk/gp/product/B000N3LL02/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1)
|
||||
|
||||
### Modules (Old list, not up-to-date anymore):
|
||||
|
||||
See [https://github.com/jomjol/AI-on-the-edge-device/discussions/1732](https://github.com/jomjol/AI-on-the-edge-device/discussions/1732) for a more recent list.
|
||||
|
||||
- [https://arduino-projekte.info/produkt/esp32-cam-v2-integriertem-ch340-mit-ov2640-kamera-modul/](https://arduino-projekte.info/produkt/esp32-cam-v2-integriertem-ch340-mit-ov2640-kamera-modul/) (see [https://github.com/jomjol/AI-on-the-edge-device/discussions/1041](https://github.com/jomjol/AI-on-the-edge-device/discussions/1041))
|
||||
|
||||
- [https://www.amazon.de/-/en/gp/product/B0B51CQ13R](https://www.amazon.de/-/en/gp/product/B0B51CQ13R)
|
||||
|
||||
- [https://www.reichelt.de/entwicklerboards-esp32-kamera-2mp-25--debo-cam-esp32-p266036.html?PROVID=2788&gclid=CjwKCAiAqaWdBhAvEiwAGAQlttJnV4azXWDYeaFUuNioMICh-jvxKp6Cifmcep9vvtoT2JRCDqBczRoC7Q0QAvD_BwE](https://www.reichelt.de/entwicklerboards-esp32-kamera-2mp-25--debo-cam-esp32-p266036.html?PROVID=2788&gclid=CjwKCAiAqaWdBhAvEiwAGAQlttJnV4azXWDYeaFUuNioMICh-jvxKp6Cifmcep9vvtoT2JRCDqBczRoC7Q0QAvD_BwE) (27.12.2022)
|
||||
|
||||
### SD-Card
|
||||
|
||||
- Sandisk 2GB Micro SD Class 2 [Sandisk 2GB](https://www.amazon.co.uk/gp/product/B000N3LL02/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1)
|
||||
AITRIP ESP32 and CAM [ESP-32/CAM](https://www.amazon.co.uk/gp/product/B08X49P8P3/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1)
|
||||
- [Amazon US - Aideepen ESP32-CAM W BT Board ESP32-CAM-MB Micro USB to Serial Port CH-340G with OV2640 2MP Camera Module Dual Mode](https://www.amazon.com/gp/product/B0948ZFTQZ) with [Amazon US - Cloudisk 5Pack 4GB Micro SD Card 4 GB MicroSD Memory Card Class6](https://www.amazon.com/gp/product/B07QYTP4VN)
|
||||
|
||||
# Weak Wifi
|
||||
The ESP32-CAM supports an external antenna. It requires some soldering skills but can improve the connection quality. See https://randomnerdtutorials.com/esp32-cam-connect-external-antenna/
|
||||
The ESP32-CAM supports an external antenna. It requires some soldering skills but can improve the connection quality. See [https://randomnerdtutorials.com/esp32-cam-connect-external-antenna/](https://randomnerdtutorials.com/esp32-cam-connect-external-antenna/)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Installation
|
||||
|
||||
The installation requires multiple steps:
|
||||
|
||||
1. Get the right hardware and wire it up
|
||||
1. Flash the firmware onto the ESP32
|
||||
1. Write the data to the SD-Card
|
||||
@@ -11,10 +12,11 @@ The installation requires multiple steps:
|
||||
#### ESP32-CAM
|
||||
|
||||
* OV2640 camera module
|
||||
* SD-Card slot
|
||||
* 4 MB PSRAM.
|
||||
* Micro SD-Card slot
|
||||
* 4 or 8 MB PSRAM.
|
||||
|
||||
It can be easily found on the typical internet stores, searching for ESP32-CAM for less than 10 EUR.
|
||||
How ever since the hardware is cheap and coming from China, you unluckily could pick a malfunction device. See [Hardware Compatibility](../Hardware-Compatibility) for further advice!
|
||||
|
||||
#### USB->UART interface
|
||||
|
||||
@@ -24,18 +26,19 @@ For first time flashing the firmware a USB -> UART connector is needed. Later fi
|
||||
|
||||
For power supply a 5V source is needed. Most easily this can be done via an USB power supply. The power supply should support minimum 500mA. For buffering current peaks some users reported to use a large elco condensator like a 2200uF between ground and VCC.
|
||||
|
||||
**Attention:** in several internet forums there are problems reported, in case the ESP32-CAM is only supplied with 3.3V.
|
||||
**:bangbang: Attention:** in several internet forums there are problems reported, in case the ESP32-CAM is only supplied with 3.3V.
|
||||
|
||||
#### Housing
|
||||
|
||||
A small 3D-printable example for a very small case can be found in Thingiverse here: https://www.thingiverse.com/thing:4571627
|
||||
A small 3D-printable example for a very small case can be found in Thingiverse here: [https://www.thingiverse.com/thing:4571627](https://www.thingiverse.com/thing:4571627)
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/main.jpg" width="300"><img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/size.png" width="300">
|
||||
{: style="width:200px"}
|
||||
{: style="width:200px"}
|
||||
|
||||
|
||||
**:bangbang: Attention**: the focus of the OV2640 needs to be adjusted, as it is normally set from ~40cm to infinity. In order to get an image that is big enough, it needs to be changed to about 10cm. Therefore the sealing glue on the objective ring needs to be removed with a scalpel or sharp knife. Afterwards the objective can be rotated clockwise until the image is sharp again.
|
||||
|
||||
**Attention**: the focus of the OV2640 needs to be adjusted, as it is normally set from ~40cm to infinity. In order to get an image that is big enough, it needs to be changed to about 10cm. Therefore the sealing glue on the objective ring needs to be removed with a scalpel or sharp knife. Afterwards the objective can be rotated clockwise until the image is sharp again.
|
||||
<img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/focus_adjustment.jpg" width="200">
|
||||
{: style="width:200px"}
|
||||
|
||||
|
||||
|
||||
@@ -45,7 +48,8 @@ Beside the 5V power supply, only for the first flashing a connection to the USB-
|
||||
|
||||
A example for wiring can be found here:
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/wiring.png" width="600">
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
@@ -57,14 +61,15 @@ It is also possible to use external LEDs for the illumination instead of the int
|
||||
## Firmware flashing
|
||||
### Files
|
||||
Grab the firmware from the
|
||||
|
||||
- [Releases page](https://github.com/jomjol/AI-on-the-edge-device/releases) (Stable, tested versions), or the
|
||||
- [Automatically build development branch](https://github.com/jomjol/AI-on-the-edge-device/actions?query=branch%3Arolling) (experimental, untested versions). Please have a look on https://github.com/jomjol/AI-on-the-edge-device/wiki/Install-a-rolling-%28unstable%29-release first!
|
||||
|
||||
You need:
|
||||
|
||||
* partitions.bin
|
||||
* bootloader.bin
|
||||
* firmware.bin
|
||||
* html.zip
|
||||
|
||||
|
||||
### Flashing
|
||||
@@ -76,8 +81,7 @@ You can access it with the following link: https://jomjol.github.io/AI-on-the-ed
|
||||
|
||||
This is the preferred way for beginners as it also allows access to the USB Log:
|
||||
|
||||
[<img src=https://user-images.githubusercontent.com/1783586/200926652-293e9a1c-86ec-4b79-9cef-3e6f3c47ea4b.png height=200px>](https://user-images.githubusercontent.com/1783586/200926652-293e9a1c-86ec-4b79-9cef-3e6f3c47ea4b.png)
|
||||
|
||||
[](img/web-console.png)
|
||||
|
||||
#### 2. Using the Flash Tool from Espressif
|
||||
|
||||
@@ -85,7 +89,7 @@ The flashing of the firmware can be done with the "Flash Download Tool" from es
|
||||
|
||||
Download and extract the Flash tool, after starting choose "Developer Mode", then "ESP32-DownloadTool" and you are in the setup of the flashing tool. Connect the ESP32-CAM with the USB-UART connection and identify the COM-Port.
|
||||
|
||||
:bangbang: **Attention** :bangbang: if you reflashing the code again, it is strongly recommended to erase the flash memory before flashing the firmware. Especially if you used OTA in between, which might cause remaining information on the flash, to still boot from an old image in the OTA-area, which is not erased by a normal flash.
|
||||
:bangbang: **Attention**: if you reflashing the code again, it is strongly recommended to erase the flash memory before flashing the firmware. Especially if you used OTA in between, which might cause remaining information on the flash, to still boot from an old image in the OTA-area, which is not erased by a normal flash.
|
||||
|
||||
But your ESP32 in bootloader mode and push start, then it will identify the board and you can configure the bin-configuration according to the following table:
|
||||
|
||||
@@ -95,7 +99,7 @@ But your ESP32 in bootloader mode and push start, then it will identify the boar
|
||||
| partitions.bin | 0x8000 |
|
||||
| firmware.bin | 0x10000 |
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jomjol/ai-on-the-edge-device/master/images/Flash_Settings.png" width="400">
|
||||

|
||||
|
||||
Alternatively it can be directly flashed from the development environment - here PlatformIO. But this is rather for experienced users, as the whole development chain needs to be installed for compilation.
|
||||
|
||||
@@ -127,7 +131,7 @@ For the first setup take the `initial_esp32_setup_*.zip` from the [Release](http
|
||||
|
||||
This must only be done once as further updates of the SD-Card are possible with the OTA Update.
|
||||
|
||||
### :bangbang: Attention :bangbang:
|
||||
### Notes
|
||||
|
||||
- Due to the limited availability of GPIOs (OV2640, Flash-Light, PSRAM & SD-Card) the communication mode to the SD card is limited to 1-line SD-Mode. It showed up, that this results in problems with very large SD-Cards (64GB, sometimes 32 GB) and some no name low cost SD-cards.
|
||||
- There must be no partition table on the SD-card (no GPT, but only MBR for the single partition)
|
||||
|
||||
BIN
docs/img/Flash_Settings.png
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
docs/img/ana-class100.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
docs/img/dig-class100.png
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
docs/img/dig-class11.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
docs/img/edit_reference.jpg
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
docs/img/focus_adjustment.jpg
Normal file
|
After Width: | Height: | Size: 682 KiB |
BIN
docs/img/idea.jpg
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
docs/img/main.jpg
Normal file
|
After Width: | Height: | Size: 716 KiB |
BIN
docs/img/size.png
Normal file
|
After Width: | Height: | Size: 557 KiB |
BIN
docs/img/watermeter.jpg
Normal file
|
After Width: | Height: | Size: 219 KiB |
BIN
docs/img/watermeter_all.jpg
Normal file
|
After Width: | Height: | Size: 111 KiB |
BIN
docs/img/web-console.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
docs/img/wiring.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
@@ -1,6 +1,8 @@
|
||||
# Welcome
|
||||
Welcome to the AI-on-the-edge-device!
|
||||
This is the project documentation. For the source code, please head to [github.com/jomjol/AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device).
|
||||
|
||||
Welcome to the AI-on-the-edge-device project!
|
||||
|
||||
This is the documentation. For the source code, please head to [github.com/jomjol/AI-on-the-edge-device](https://github.com/jomjol/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**.
|
||||
@@ -16,23 +18,24 @@ Here this edge computing is brought into a practical oriented example, where a A
|
||||
|
||||
## Idea
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/idea.jpg" width="600">
|
||||
{: style="width:600px"}
|
||||
|
||||
|
||||
### Hardware
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/watermeter_all.jpg" width="200"><img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/main.jpg" width="200"><img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/size.png" width="200">
|
||||
{: style="width:200px"}
|
||||
{: style="width:200px"}
|
||||
{: style="width:200px"}
|
||||
|
||||
|
||||
|
||||
### Web interface
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/watermeter.jpg" width="600">
|
||||
{: style="width:600px"}
|
||||
|
||||
### Configuration Interface
|
||||
|
||||
<img src="https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/master/images/edit_reference.jpg" width="600">
|
||||
|
||||
{: style="width:600px"}
|
||||
|
||||
|
||||
**Have fun in studying the new possibilities and ideas**
|
||||
@@ -51,12 +54,11 @@ This project is a evolution of the [water-meter-system-complete](https://github.
|
||||
## Functionality
|
||||
This systems implements several functions:
|
||||
|
||||
* water meter readout
|
||||
* picture provider
|
||||
* file server
|
||||
* OTA functionality
|
||||
* graphical configuration manager
|
||||
* web server
|
||||
|
||||
The details can be found here: [[Integrated Functions]]
|
||||
* Water/gas/electrity/... meter readout
|
||||
* Picture provider
|
||||
* File server
|
||||
* OTA Update functionality
|
||||
* Graphical configuration manager
|
||||
* Web server
|
||||
|
||||
The details can be found here: [Integrated Functions](Integrated Functions)
|
||||
|
||||
11
docs/nav.yml
@@ -6,20 +6,31 @@ nav:
|
||||
- Getting Started:
|
||||
- index.md
|
||||
- Installation.md
|
||||
- Hardware-Compatibility.md
|
||||
- Best-Practice.md
|
||||
- FAQs.md
|
||||
|
||||
- Configuration:
|
||||
- Choosing-the-Model.md
|
||||
|
||||
- Advanced:
|
||||
- Build-Instructions.md
|
||||
|
||||
- API's:
|
||||
- REST-API.md
|
||||
- MQTT-API.md
|
||||
# - Influx DB
|
||||
# - ...
|
||||
|
||||
|
||||
- Links:
|
||||
- Releases: https://github.com/jomjol/AI-on-the-edge-device/releases
|
||||
- Web Installer/Console: https://jomjol.github.io/AI-on-the-edge-device/index.html
|
||||
- Place an Issues: https://github.com/jomjol/AI-on-the-edge-device/issues
|
||||
- Join a Discussions: https://github.com/jomjol/AI-on-the-edge-device/discussions
|
||||
|
||||
#- Old Documentation:
|
||||
|
||||
- Asorted Pages:
|
||||
# List all pages which are not covered by above list
|
||||
# Step by step we should migrate those page to the above list
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
# (old) Welcome to the AI-on-the-edge-device wiki!
|
||||
|
||||
Artifical inteligence based systems have been established in our every days live. Just think of speech or image recognition. Most of the systems relay on either powerfull 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 usally called **edge compution**.
|
||||
Here this edge computing is brough into a practical example, where a AI network is implemented on a ESP32 device so: **AI on the edge**.
|
||||
|
||||
**Have fun in studying the new posibilities and ideas**
|
||||
|
||||
This is about image recognition and digitalization, done totally on a cheap ESP32 board using artifical intelligence in form of convolutional neural networks (CNN). Everything, from image capture (OV2640), image preprocessing (auto alignment, ROI idenficiation) all the way down to the image recognition (CNN structure) and result plausiblisation is done on a cheap 10 EUR device.
|
||||
|
||||
This all is integrated in an easy to do setup and use environment, taking care for all the background processing and handling, including regular job scheduler. The user interface is an integrated web server, that can be easily adjusted an offers the data as an API in different options.
|
||||
|
||||
The task to be demonstrated here is an automated readout of an analog water meter. The water consumption is to be recorded within a house automatization and the water meter is totally analog without any electronic interface. Therefore the task is solved by taking regularly an image of the water meter and digitize the reading.
|
||||
|
||||
There are two types of CNN implemented, a classification network for reading the digital numbers and a single output network for digitize the analog pointers for the sub digit readings.
|
||||
|
||||
This project is a evolution of the [water-meter-system-complete](https://github.com/jomjol/water-meter-system-complete), which uses ESP32-CAM just for taking the image and a 1GB-Docker image to run the neural networks backbone. Here everything is integrated in an ESP32-CAM module with 4MB of SDRAM and a SD-Card as data storage.
|
||||
|
||||
|
||||
|
||||
This systems implements several functions:
|
||||
|
||||
* (water) meter readout - it can handle also dual meters with two or even more readings
|
||||
* picture provider
|
||||
* fileserver
|
||||
* OTA functionality
|
||||
* web server
|
||||
|
||||
The details can be found here: [[Integrated Functions]]
|
||||
|
||||
@@ -15,7 +15,8 @@ plugins:
|
||||
|
||||
# The navigation is configured in the nav.yml file!
|
||||
|
||||
# Emoji support
|
||||
|
||||
markdown_extensions:
|
||||
- pymdownx.emoji:
|
||||
- attr_list # Needed to scale images
|
||||
- pymdownx.emoji: # Emoji support
|
||||
emoji_generator: !!python/name:pymdownx.emoji.to_alt
|
||||