Rainer-Rebhan

Ein Rauchmelder mit Alarmierung als Email und Push-Nachricht

ESP8266 -12 mit Deep Sleep und Programmierung über OTA

Rauchmelder - Funktion

Rauchmelder sind inzwischen Pflicht und sollten in keinem Haushalt fehlen. Der Alarm erfolgt über einen intensiven, sehr lauten Ton, bei den Funk-Rauchmeldern an allen Geräten gleichzeitig. Was bei praktisch allen Rauchmelder fehlt, ist eine Benachrichtigung über die Alarmauslösung per Email und/oder einer direkte Pusch-Nachricht auf das Mobiltelefon. Diese Funktion kann - relativ einfach - bei den meisten Rauchmeldern nachgerüstet werden, da die erforderliche Elektronik sehr klein gebaut werden kann. Um es möglichst einfach zu realisieren sind 3 Punkte zu erst zu betrachten. 1. Im Rauchmelder seiner Wahl muß etwas Platz für die Zusatzelektronik zur Verfügung stehen 2. der Rauchmelder muß über eine Stromversorgung mittels 2x AA Batterien verfügen 3. mehrere Rauchmelder sollten sich über Funk vernetzen lassen Rauchmelder die eine 9V Block-Batterie verwenden sind eher ungeeignet. Ein weiterer wichtiger Punkt ist aus meiner Sicht, dass die interne Elektronik des Melders nicht angefasst oder für die eigenen Elektronik nicht angezapft werden sollte. Ich habe für meinen Umbau den Funk-Rauchmelder Model CC-80 verwendet. Das Gerät detektiert Rauch und Temperatur. Diese Geräte sind vernetzbar d.h. der Alarm eines Rauchmelders wird auf alle vorhandenen Gerät des selben Typs übertragen und diese lösen dann selbst den Alarmton aus. Für den hier beschriebenen Umbau bedeutet das, es muß nur ein Gerät mit der eigenen Elektronik umgerüstet werden.

Die Elekronik und der ESP8266-12

Die Elektronik besteht eine 2 Teilen - ein Mikrofonverstärker und dem ESP8266-12 als Wlan-Verbindung. Der Mikrofonverstärker detektiert den Alarmton des eingebauten Tongebers. Dieser Ton ist sehr laut: > 80 dB(A). Es wird deshalb nur ein einfacher Mic.-Verstärker benötigt. Die Wlan-Verbindung wird über den ESP8266 aufgebaut. Die Email bzw. die Pushnachricht erzeugt ein kleines PHP-Programm auf einem ext. Server. (Diese Programme kann ich gerne z.V. stellen - bitte Email-Anfrage am mich). Der Stromverbrauch des ESP-12 und der Zusatz-Elektronik muß so niedrig wie nur möglich sein. Um das zu erreichen wird der ESP8266 in den Tielfschlaf (Deep Sleep) versetzt. Auch der Mic-Verstärker ist deshalb sehr hochohmig aufgebaut. Das Aufwachen aus dem Deep-Sleep wird durch einen Reset des 8266 erzwungen. Sobald das Mikrofon den Alarm-Ton aufnimmt erfolgt dieser Reset über den Mic.-Verstärker. Fehlalarme über das Mikrofon wird es nicht geben - es ist zu unempfindlich für normale Geräusche. Das Schaltbild des Mic.-Verstärker mit dem ESP-12

Besonderheiten des ESP8266-12

Für Software-Änderungen im ESP-12 ergeben sich nun einige besondere Probleme, die sich mit einem kleinen Entwicklungsboard (z.B. WeMos D1 & Mini) für den ESP so nicht stellen würde. Auf Grund der geringst möglichen Stromaufnahme (im Deep Sleep < 40uA) muß der ESP ohne äußere Beschaltung funktionieren. Das ist mit 2 x 10k Ohm Widerständen (CH_PD + GPIO15) am ESP-12 möglich. Wegen des geringen Platzangebotes im Gehäuse des Rauchmelders muß der ESP12 möglichst flach sein und direkt angeschlossen werden. Der Anschluß von RX und TX und die gesamte Programmierumschaltung mit dem USB-Chip ist also nicht vorhanden, eine Programmierung auf diese Weise nicht möglich. Aber es gibt eine elegante Methode, den ESP über OTA also - over the air - zu programmieren. Dies ist einfacher realisierbar wie zunächst vermutet.

Die OTA Programmierung

Bekannt sind 3 Möglichkeiten den ESP8266 über seinen Wlan-Anschluß neu zu programmieren. Arduino OTA - neben der Arduino IDE muß noch eine Python Installation mit der V 2.7 erfolgen WEB-Interface - ein HTTP-Server läd einen fertig kompilierten *.bin File HTTP-Server - Im Code wird der Pfad zum *.bin File hinterlegt, der ESP kann sich selber Flashen - für autom. Firmwareupdates interessant. In jedem Fall muß der ESP zuerst mit einem OTA-Programm geflasht werden. Ich habe mich bei der Rauchmelder-Zusatzelektronik für die HTTP-Web-Interface-Methode entschieden. Der Vorteil ist, es muß keinerlei Zusatzprogramm installiert werden. Wie bringe ich nun das OTA-Proramm auf den ESP? Für diesen ersten OTA-Flash verwende ich einen ESP-07 bis -12 Universal-Programmer der den ESP-Chip direkt mit Kontakt-Nadel aufnehmen kann. Das OTA-Programm verwendet, ergänzt um die eigenen Rauchmelder-Programmzeilen, das OTA-Basic-Prog: WebUpdater.ino. Das OTA-Programm stellt nach dem Start und der erfolgreichen Wlan-Anmeldung eine kleine Webseite im Browser dar. Mit dieser Seite (bzw. den 2 Buttons auf dieser Seite) wird einmal das neu kompilierte Prog. (als xxx.bin - Datei) ausgewählt und anschliessend die Übertragung und Neuprogrammierung des ESP angestoßen. Hier nochmals die Schritte zur OTA-Programmierung des ESP8266 mit dem HTTP-WebUpdater:

Der Rauchmelder mit ESP-Zusatzhardware

Den mit dem OTA-Programm + dem eigenen Prog. geflashten ESP kann man z.B. auf diesen Adapter auflöten. Hier sind die beiden Widerstände (für GPIO15 und CH_PD) bereits vorhanden. Den Mikrofonverstärker habe ich auf einer kleinen Lochrasterplatte aufgebaut und dann über dünne Litzen mit dem ESP-Adapter verbunden. Es werden nur 4 Leitungen benötigt. Zusätzlich habe ich noch 2 GPIO verwendet. Diese haben folgende Funktion: 1. GPIO 14 (Output) = Reset-Sperre des ESP8266 --> sperret nach dem Aufwachen des ESP die Reset-Funktion bis zur Absenden der EMail bzw. Push-Nachricht. 2. GPIO 5 (Input) = Jumper zum Ausschalten des Deep Sleep Mode --> der Jumper setzt den Eingang GPIO 5 auf 0V und verhindert im Programm den Depp Sleep - nur so ist eine wiederholte Programmierung über OTA möglich. Ist der ESP im Tiefschlaf muß zur Neuprogrammierung der Jumper gesetzt werden. Nach einem Reset geht der ESP nicht in den Tiefschlaf und kann so neu programmiert werden. Hier das Rauchmelder-OTA-Programm zum Download als Zip
Die Funktionsweise des Programms: Testen sie nun die gesamte Elekronik mit und ohne Deep-Sleep-Jumper ausgiebig und passen die Software über OTA an ihren Rauchmelder an. Die Zusatzhardware kann in den Rauchmelder eingebaut werden. Der Mikrofonverstärker sollte in den Nähe des Tongebers angeordnet werden. Beim CC80 gibt es einen kleinen Raum direkt neben dem Tongeber. Der ESP-12 mit Adapter (Rückseite bitte isolieren) wird einfach oben darauf gelegt. Mit dem Test-Knopf des Rauchmelders kann die Funktion der Wlan-Alarmierung abschließend gestestet werden.
nach oben zurueck weiter