Per unitSensors
F1 (ground): platform scale, XRF, RFID portal, accelerometer, door seal.
F2: drum scale, assay feed, RH, O₂, gamma dosimeter.
F3: load cells, moisture probe, temperature cable, RH, NDIR CO₂.
EdgeUnit node
An ESP32 controller in every unit, each with its own secure identity. Sends encrypted readings to Azure every 5 minutes.
AzureIoT Hub
24 device identities, SAS auth, device-to-cloud messages with a floor property. F1 tier covers the pilot.
AzureRouting + Blob
Message route writes every reading to Blob Storage as JSON. This archive is what a receipt hash is checked against.
Next stepReceipt service
Azure Function applies the quality rules shown above, issues the receipt, stores it in Cosmos DB and serves PDF + verification.
How a receipt is verified
When a receipt is issued, the readings, quantity, lot and timestamp are written as one canonical JSON record and hashed with SHA-256. The QR code carries the receipt number and that hash. A buyer, lender or inspector scans it, the receipt service fetches the matching telemetry from the archive, recomputes the hash, and confirms the quality and quantity have not been altered since issue.