How crazydw4rf/smart-aquarium works
Smart Aquarium combines ESP32/ESP8266 sensing and relay control with three alternative remote interfaces: Telegram commands, an MQTT/WebSocket dashboard, and a ThingSpeak dashboard. The primary workflow is to sample temperature and water level, publish or expose readings, accept lamp/pump commands, and drive relays. The graph separates the firmware modes and web backends; excerpts are partial, so uncertain internal wiring is omitted.
Main entry points: main_telegram.cpp Telegram firmware · server.js MQTT web server · main_mqtt.cpp MQTT firmware · main_thingspeak.cpp ThingSpeak firmware
Components 17
Aquarium firmware
- Telegram firmware
src/main_telegram.cpp - MQTT firmware
src/main_mqtt.cpp - ThingSpeak firmware
src/main_thingspeak.cpp
Telegram control
- Command router
lib/Telek/CommandRouter.cpp - Telegram client
lib/Telek/Telek.cpp
MQTT dashboard
- MQTT web server
web/mqtt/server.js - MQTT dashboard UI
web/mqtt/public/script.js
ThingSpeak dashboard
- ThingSpeak web server
web/thingspeak/server.js - ThingSpeak dashboard UI
web/thingspeak/public/script.js
Other components
- Aquarium sensors
- Lamp and pump relays
- Telegram user
- Dashboard visitor
- Dashboard visitor
- MQTT broker
- Telegram API
- ThingSpeak cloud
Connections 23
- Aquarium sensors → Telegram firmware: sample readings
- Telegram firmware → Lamp and pump relays: drive relays
- Telegram firmware → Command router: dispatch commands
- Command router → Telegram firmware: invoke handlers
- Telegram firmware → Telegram client: send and poll
- Telegram user → Telegram API: send commands
- Telegram client → Telegram API: HTTPS requests
- Telegram API → Telegram client: updates and replies
- Aquarium sensors → MQTT firmware: sample readings
- MQTT firmware → Lamp and pump relays: drive relays
- MQTT firmware → MQTT broker: publish and subscribe
- MQTT web server → MQTT broker: subscribe and publish
- MQTT broker → MQTT web server: deliver messages
- Dashboard visitor → MQTT dashboard UI: view and control
- MQTT dashboard UI → MQTT web server: WebSocket messages
- MQTT web server → MQTT dashboard UI: sensor updates
- Aquarium sensors → ThingSpeak firmware: sample readings
- ThingSpeak firmware → Lamp and pump relays: drive relays
- ThingSpeak firmware → ThingSpeak cloud: publish and read fields
- ThingSpeak web server → ThingSpeak cloud: fetch status and write control
- Dashboard visitor → ThingSpeak dashboard UI: view and control
- ThingSpeak dashboard UI → ThingSpeak web server: HTTP requests
- ThingSpeak web server → ThingSpeak dashboard UI: status responses