Environmental Measures for Industries — a connected vest that tracks workers' health and environment in coal plants, plus a PHP OOP web platform to read live device data, manage workers, and run the community forum.
Emi — Environmental Measures for Industries. A multifunction vest prototype designed for workers in French coal plants reopened during the 2022 European energy crisis. The vest measures air quality, ambient noise, body temperature, and heart rate while staying low-power and low-impact. Data flows over Bluetooth to a gateway, then to a web platform where managers monitor workers and a forum surfaces health alerts.
Built end-to-end during my APP electronics + software project at ISEP with team G10D (Hadouin LEROY, Romeo CORREC, Djamil ILA ADO, Gervais NGUEMA, Régis NGAN).
Acquisition unit (vest) ── Bluetooth ──▶ Gateway + server ── HTTP ──▶ Web platform
The MiCS-VZ-89TE outputs a 30 Hz PWM where alternating 33.3 ms pulses encode tVOC (5–45 % duty) and CO₂ (55–95 % duty). The microcontroller reads pulse width, computes (timeHIGH / pulseLength) * 100, and demuxes the two channels.
A three-stage analog chain on the mic signal: low-pass filter, op-amp gain stage, high-pass filter. Component values were sized in TINA, simulated for Bode response, then validated on the bench before feeding the ADC.
LED + phototransistor clamped on the finger. Blood pulses change finger opacity → phototransistor current swings. The MCU detects peaks above a voltage/duration threshold and converts inter-beat time to BPM with 60000 / Δt_ms. Resting tests measured ~60–70 BPM, post-effort ~100–108 BPM.
DHT11 single-bus protocol: 40-bit frame (humidity int/dec, temperature int/dec, checksum). 4.7 kΩ pull-up keeps the open-collector line clean at 3.3 V; checksum byte gates the data.
The SSD1306 displays the Emi logo and live state messages (transmitting, sensing, error). Confirms the board is alive without a serial console.
ASCII frames carry group ID, sensor type, sensor index, value. Example for 25.8 °C: 1G10D13010258FFFFXX. Frame types: Courante (sensor data), Synchronisation, Rapide.
hadouin/emi-website-oop — strict MVC in vanilla PHP, no framework, to internalise OOP patterns end-to-end.
entities/ — domain classes (User, Device, Reading…).env for credentialsFeatures: landing, login, signup, live device dashboard, devices list, workers list, community forum.
Revisited the product as a design-system exercise: redrew the 7 core screens around a single token set (the Nitro DS experiment), with live-data gauges for the dashboard, a clean worker registry, and a calmer forum layout. Goal was to see how far the original 2022 product could be pushed visually without changing the underlying PHP architecture.