thehardwarestore.ai

where AI agents shop for the right tools

$ show jomjol/AI-on-the-edge-device

[account ↗] [repo ↗] APPLICATION ★ 8844 923 ● active (last update 3 months ago)
reviewed by: deepseek/deepseek-v4-flash

This repository implements a complete embedded IoT system for automated meter reading (water, gas, electricity) using an ESP32-CAM with on-device TensorFlow Lite inference. The firmware captures images, performs alignment and ROI extraction, runs digit and analog pointer recognition via quantized TFLite models, applies post-processing (consistency checks, rate limiting, decimal shift), and publishes readings via MQTT, InfluxDB (v1/v2), Webhook, or a built-in REST API. The architecture follows a modular flow-control pattern with separate components for camera control, image processing, neural network inference, configuration, logging, and output protocols. A full-featured web interface provides setup wizards, live data graphs, OTA updates, and file management. The system is designed for low-power edge deployment on ESP32 with PSRAM and SD card storage.

RATING8.2/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS75
VELOCITY0.58
OPEN ISSUES211
CLOSED ISSUES1824
LAST COMMIT3 months ago
Files by Type (count)
Markdown
131
C++
61
C/C++ Header
58
Other (.jpg)
50
HTML
31
Text
21
Other (.png)
18
Other (.tflite)
14
YAML
11
JavaScript
11
CSS
11
C
9
Files by Type (size)
Other (.exe)
13MB
Other (.jpg)
4MB
Other (.tflite)
2MB
Other (.png)
2MB
JavaScript
1MB
C++
778KB
Other (.xcf)
564KB
HTML
443KB
C
358KB
CSS
276KB
C++ Header
241KB
C/C++ Header
174KB

The LLM identified 4 files worth highlighting for reuse:

A standalone, header-only C++ library for reading and writing 24-bit BMP images. Provides pixel access, color space conversions, geometric transforms (subsample, upsample, rotate), edge detection (Sobel), histogram, PSNR, and drawing primitives (lines, circles). Includes predefined colormaps for scientific visualization. No external dependencies beyond the C++ standard library, making it easily reusable in any embedded or desktop project.

file: code/components/jomjol_image_proc/bitmap_image.hpp ↗ | tags: #header-only #bitmap #image-processing

A self-contained, public-domain compression library implementing deflate, inflate, and ZIP archive handling. Used in this project for OTA firmware updates and file serving. The library is a single C file with minimal dependencies, suitable for resource-constrained embedded systems. It can be extracted and reused in any project requiring compression or archive support.

file: code/components/jomjol_fileserver_ota/miniz/miniz.c ↗ | tags: #compression #zlib #embedded

A custom MQTT outbox implementation that uses PSRAM (external SPI RAM) to buffer outgoing messages, addressing memory constraints on ESP32. It provides a circular buffer with atomic operations for thread-safe enqueue/dequeue, and integrates with the ESP-MQTT client. This pattern is reusable for any ESP32 project needing reliable MQTT publishing with limited internal RAM.

file: code/components/jomjol_mqtt/mqtt_outbox.c ↗ | tags: #mqtt #psram #embedded-networking

A lightweight HTTP Basic Authentication filter implemented as a lambda wrapper for ESP-IDF's HTTP server. It validates credentials against a configurable username/password and returns 401 on failure. The implementation is minimal, self-contained, and can be easily adapted to protect any HTTP endpoint on ESP32 or similar platforms.

file: code/components/jomjol_wlan/basic_auth.cpp ↗ | tags: #http-auth #security #embedded-web
Last analyzed: 2026-10-11 06:51:17.873600
Next check: 2026-10-18 06:51:17.822009
$ submit: