There are a lot of ideas for further improvements, but only limited capacity on side of the developer. Therefore I have created this page as a collection of ideas.
-
Whoever has a new idea can put it here, so that it is not forgotten.
-
Whoever has the time, capacity and passion to support the project can take any of the ideas and implement them. I will provide support and help wherever I can!
- Deep sleep between recognition
- jomjol#2486
- Fully implement the SD card handling (including formatting) into the firmware
- https://github.com/jomjol/AI-on-the-edge-device/issues/2488Demo
Demo mode requires a working camera (if not, one receives a 'Cam bad' error). Would be nice to demo or play around on other ESP32 boards (or on ESP32-CAM boards when you broke the camera cable...).
as reading the Electricity or Water meter every few minutues only delivers apparent accuracy (DE: "Scheingenauigkeit") you could just as well take a picture with your Smartphone evey so often (e.g. once a week when you are in the Basement anyway), then with some "semi clever" tricks pass this image to the model developed here, and the values then on to who ever needs them e.g. via MQTT. IMO: It is not needed to have that many readings (datapoints) as our behaviour (Use of electricity or water) doesn't vary that much, say, over a weeks time. The interpolation between weekly readings will give sufficient information on the power and/or water usage.
for example see Roi on the next picture.. in case of position change between the measurments set this state to true, if there is no change set it back to false. In a defined time window this movement can lead into an alarm state / water leak.. haveing this state in the mqtt broker can trigger functions like closing the ater pipe walve and so on...
- see #1404
- If a value is misinterpreted, the user can manually correct the value.
- The misinterpreted ROIs would be saved in a "training data" -folder on the SD-card
- Stretch goal: make sending of saved training data as easy as pushing a button =)
- Currently only InfluxDB v1.x is supportet, extend to v2.x
- Remark: interface has changed
- see #1160
- In case of meter clocking over, that is, reaching its max. value and starting over from 0, accept the new value and calculate correctly the difference. (see line 739 onwards in ClassFlowPostProcessing.cpp)
- In case a ROI is out of the image, there is no error message, but a non sense image is used
- Implement a error message for wrong configuratioin of ROI
- Use the standardized Home Protocol for the Mqtt binding
- https://homieiot.github.io/
- in case the higher digits has already increased by minium 1 - don't set the "N" to the last value, but to "0"
- jomjol#792
- Show MQTT log in Web page. E.g. connection established or failed to connect...
- Show the CPU Temp directly in Webpage. Also add the value to MQTT sending
#22 Direct hint to the different neural network files in the other repositories- implemented >v11.3.1
-
Let the device be normally in deep sleep state, and wake it up periodically to collect data and push it via MQTT or HTTP post.
-
Support ESP-NOW to reduce the overhead of connecting to wifi and mqtt
-
the above should enable battery powered applications
-
An other way to set deep sleep would be to enable it in a specific period (at night).
Done in v10.6.0
- jomjol#512
- Send the readout value via RX/TX interface with a dedicated TAG
- Make dedicated communication FlowModule
- Modification of RX/TX communication
- Configuration interfache
- The development of such a correction algorithm with the libraries, that are available for the ESP32 environment.
- New module for integration of the flow into the image processing flow.
- Extension of the configuration (config.ini) and html-pages
- Parameter adjustment and testing for every different fish-eye module
- Maintenance for further updates / modules, ...
-
Implement a zip file compression for store and restore -
Update the html to handle it
-
Implement a look up table for non linear analog meters
Issue: #414 & #425 #430
-
Implementation of an authentication mechanism.
Make the readout intervall configurable via MQTT.
- Change the mqtt part to receive and process input and not only sending
Check different types of error (e.g. tflite not availabe) and generate an error on the html page.
To do:
- Make a list of "important" errors
- Implement a checking algo
- Extend the firmware and html page for the error handling
Check during configuration, that ROI names are unique.
To do:
Implementation of ROI name checking in html code before saving analog or digital ROIs
Decimal separator configurable for different systems
To do:
- Implementation of decimal point into postprocessing module
- Extension of configuration
- Adaption of the html configuration to implement shifting
Implementation of a shifting additional to the initial rotation of the raw camera input
To do:
Implementation of shiftingExtension of configurationAdaption of the html configuration to implement shifting
Implementation of two different independent readouts in one setup
To do:
Extend the configuration, setting and processing flow for two independend readouts
Extend the MQTT client to also enable callbacks for configuration setting
To do:
-
implement callback for receiving information and override
config.ini
settings -
change configuration management to handle online updates (currently changes need a restart)
-
think about the startup, as there the default config is loaded
Implementation of an an extrnal flash / lightning through GPIOs.
available GPIOs: 12 & 13 (currently in use for html switching)
To do:
Implementation of a software module for external light source (e.g. WS8132 LED controller, ...)Update of the camera module to use the external light instead of the internal flash lightAdopt the configuration algorithm with a configurable light source