Inhoudsopgave:
Video: Tiny Brandalarm Detector Esp8266 MQTT IFTTT Domotica - Ajarnpa
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Ik wilde detecteren of mijn rookmeldersysteem in alarm is. Ik heb acht rookmelders in mijn huis en ze zijn met elkaar verbonden. Als de ene rookmelder in alarm is, krijgt de andere een signaal via de doorverbindingssignaaldraad. Mijn sensor leest de verbindingsdraad en stuurt de informatie naar mijn domotica (Openhab2) via MQTT en alarmeert mij ook via IFTTT.
Deze instructable is geïnspireerd door dit project
Stap 1: Ontwerp
Allereerst moet je weten hoe de rookmelders communiceren. Ik heb Ei146-detectoren.
De rookmelders zijn onderling verbonden via een "IC" lijn. Als één rookmelder wordt geactiveerd, genereert deze een 6V - 8V-signaal op de IC-lijn, zie de afbeelding van het oscillope-scherm.
Ik lees de spanning van de IC-lijn via een optocoupler (4N35), om de rookmelders voor de veiligheid te isoleren van mijn domotica.
De rookmelder wordt gevoed door netspanning (220V AC), die ik heb gebruikt om de ESP-01-module van stroom te voorzien
In het schema kun je zien hoe de onderdelen met elkaar verbonden zijn. Ik gebruik een ESP-01 omdat deze klein en goedkoop is.
Stap 2: De printplaat bouwen
Op de foto's en de opmerkingen bij de foto's kun je zien hoe de print in elkaar zit.
Ik heb de lay-out geoptimaliseerd om op componenten op een kleine PCB te passen, de ESP-01 ligt over andere componenten. Ik bevestig de ESP-01 via vrouwelijke headers om gemakkelijke programmering via een USB-programmeur te garanderen. Nadat de module is gemonteerd, kun je nieuwe firmware Over The Air (OTA) flashen via de Arduino IDE of HTTPupdate (zie schets)
Stap 3: Programmeren van de ESP8266
Zie mijn Github voor de code. Ik gebruik alle bruikbare pinnen van de ESP-01 als GPIO-pinnen, inclusief GPIO1 (TX) en GPIO3 (RX). Seriële communicatie is dus niet mogelijk en mag niet worden geïnitialiseerd, anders wordt de verklaring van GPIO1 en GPIO3 ongeldig.
Opmerking: trek GPIO0, GPIO1 of GPIO2 niet naar beneden bij het opstarten, omdat je programma niet start. Ik ontdekte dat GPIO03 kan worden afgebroken bij het opstarten
Ik programmeer mijn EPS-01's via deze aangepaste adapter.
Het programma loopt als volgt:
- Als de flash-knop wordt ingedrukt bij het opstarten, start de module de OTA-modus.
- HTTPupdate is geïnitialiseerd.
- Verbinding maken met wifi en MQTT (groen lampje aan)
- Leest de waarde van de sensorpin (bevestigd aan de IC-pin van de rookmelder)
- Als er brand wordt gedetecteerd, wacht dan op debounce en sla dan alarm (ook rood licht aan) via
- MQTT - het MQTT-bericht wordt gelezen via Openhab en een regel genereert een melding via mijn app
- IFTTT - 1 - via een IFTTT Webhook wordt een trigger gestart die een melding stuurt.
- IFTTT - 2 - via een IFTTT-webhook wordt een trigger gestart die een sms naar mijn vrouw stuurt
- Als de MQTT-verbinding wegvalt (groen lampje uit), wordt het LWT-bericht (ERROR) naar het onderwerp gestuurd en gelezen door Openhab.
Stap 4: De module monteren
Ik ontwierp en 3D-geprint een doos die mooi past in de ongebruikte kabelopening van de basisplaat van de rookmelder, geen schroeven nodig.
Edit: stl-bestanden zijn toegevoegd.
Ik heb de LED's en de OTA-schakelaar op hun plaats gelijmd met hete lijm. De doos wordt gesloten door middel van 4 schroeven.
Aanzetten en klaar!