Cold-chain temperature logger with excursion alerts
Build a temperature logger that records every minute, keeps 30 days offline, raises alerts on 2–8 °C excursions and door openings, uploads over MQTT and calculates mean kinetic temperature per trip, all testable in Wokwi.
Industry project · for Gulf Fresh Pharma Logistics, a Dubai distributor delivering vaccines and insulin across the UAE in 85 refrigerated vans
Gulf Fresh delivers medicines that must stay between 2 °C and 8 °C. Each van carries a USB data logger that a driver downloads once a week. Last August a van's compressor failed in 46 °C heat on the way to Al Ain. Nobody knew until the weekly download, and a pharmacy group rejected an insulin consignment worth about AED 140,000. The quality manager now wants a connected logger that warns the dispatcher while there is still time to act.
Her requirements are: - record temperature every minute with an accuracy of ±0.5 °C between 0 °C and 15 °C; - store at least 30 days of readings on the device, so nothing is lost when the van is out of coverage; - alert if temperature stays above 8 °C or below 2 °C for more than 10 consecutive minutes, and alert if the cargo door stays open for more than 3 minutes; - upload readings every 5 minutes when there is a connection, and send alerts immediately; - calculate mean kinetic temperature for each trip, which the pharmacies ask for.
You will write the requirements, choose a sensor and build an error budget, write logging firmware with a ring buffer, write the alert logic as a state machine, publish over MQTT to a broker, and write a small Python consumer that stores readings and calculates mean kinetic temperature. Everything can be built and tested in the Wokwi simulator with an ESP32, a DS18B20 sensor and a push-button for the door switch. If you own an ESP32 and a DS18B20, you can run it on hardware too.
Done looks like firmware and a consumer that run end to end, a test report showing alerts fire at the right time on recorded excursion profiles, and a short note the quality manager can use to decide on a vendor.
Wokwi project or firmware repo + requirements and error budget + Python MQTT consumer with MKT + test report with excursion profiles
Stack: Wokwi simulator with ESP32, Arduino or PlatformIO, MQTT broker (public test broker or local Mosquitto), Python (paho-mqtt, pandas), DS18B20 datasheet
- Requirements and error budget15
Requirements are numbered and testable, and the error budget shows the sensor chain meets ±0.5 °C or states what calibration is needed.
- Reliable logging25
Readings are logged every minute to a ring buffer holding 30 days, with timestamps and a sequence number, and nothing is lost when uploads fail.
- Correct alerts25
Temperature and door alerts fire exactly at the specified thresholds and delays, clear with hysteresis, and are sent immediately.
- Working end to end20
Readings and alerts reach the Python consumer over MQTT, are stored, and mean kinetic temperature is calculated correctly per trip.
- Clear test report15
Each requirement has a test with a recorded excursion profile, expected and actual results, and the report is readable by the quality manager.
Pass 60% · Merit 75% · Distinction 90%
Engineering Students
Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.
Aspiring Developers
Developers who want to build proof-of-work capstone projects for tech resumes.
Job Seekers
Graduates looking for AI-evaluated code review & verified industry credentials.