How lungmen-hkm/esp32-gas-leak-sensor works
This is an ESP-based gas-monitoring system with a Next.js dashboard. Sensor nodes sample gas levels, trigger local alarms above a threshold, and send readings to an API; the dashboard polls that API and displays node readings and online/danger status. The API keeps an in-memory node map and marks nodes offline after a timeout. Firmware and API behavior are supported by sampled source; the dashboard’s polling and rendering are also sampled.
Main entry points: route.tsx Gas sensor API · src/main.cpp ESP32-C3 node · src/main.cpp ESP8266 node · page.tsx Monitoring dashboard
Components 8
Sensor firmware
- ESP32-C3 node
device-firmware/src/main.cpp - ESP8266 node
device-firmware-esp8266/src/main.cpp
Monitoring API
- Gas sensor API
app/api/gas-sensor/route.tsx - In-memory device map
app/api/gas-sensor/route.tsx
Web dashboard
- Monitoring dashboard
app/page.tsx
Other components
- MQ2 sensor
- Buzzer and LED
- Dashboard user
Connections 11
- MQ2 sensor → ESP32-C3 node: provides readings
- MQ2 sensor → ESP8266 node: provides readings
- ESP32-C3 node → Buzzer and LED: drives alarm
- ESP8266 node → Buzzer and LED: drives alarm
- ESP32-C3 node → Gas sensor API: POST readings
- ESP8266 node → Gas sensor API: POST readings
- Gas sensor API → In-memory device map: writes device state
- In-memory device map → Gas sensor API: reads device state
- Monitoring dashboard → Gas sensor API: polls nodes
- Gas sensor API → Monitoring dashboard: returns node status
- Monitoring dashboard → Dashboard user: displays status