System Architecture
The system consists of a shelf node, an MQTT broker, and a React dashboard. The ESP32 shelf node collects weight data, calculates stock quantity, updates the e-Paper display, and publishes relevant updates through MQTT. The dashboard subscribes to shelf data and provides a central interface for monitoring stock and updating product information.
Hardware
The prototype uses an ESP32-C3 as the intended shelf controller, with an ESP32-WROOM-32 used during preliminary testing. A 20 kg micro load cell and HX711 ADC measure product weight. A 2.9-inch SPI e-Paper display acts as the Electronic Shelf Label because it retains information while consuming very little power.
Firmware
The edge firmware is written in C++ using the Arduino IDE. It reads the load cell through the HX711, estimates stock quantity based on the known weight of one product, updates the e-Paper display, and publishes stock data through MQTT. Deep-sleep modes are used to support battery-powered operation.
MQTT Data Flow
The shelf node sends lightweight stock updates through Wi-Fi using the MQTT publish-subscribe protocol. HiveMQ is used as the broker during the prototype phase. The React dashboard subscribes to relevant topics to display shelf status and publish product or pricing updates.
Dashboard
A React 19, TypeScript, and Tailwind CSS dashboard provides a central interface for monitoring stock and managing product information. Local storage is used during the prototype phase instead of a full cloud database.
Prototype Scope
The prototype assumes one product type per load cell and a consistent product weight. Weight measurement is limited to a maximum of 20 kg. The scope focuses on shelf-level stock monitoring, remote electronic labeling, MQTT communication, and low-power operation.
Testing and Results
Evaluate the completed prototype based on functionality, stock measurement accuracy, real-time update performance, and power consumption. Add verified readings, test conditions, and screenshots here after testing is complete.