In unserer Wohnung hat der Vermieter „nur“ zwei Rauchmelder installiert. Einer davon ist im Schlafzimmer und einer im Flur. Mehr gibt es nicht.
Wir wollten jedoch in jedem Raum eine Überwachung einrichten. Obendrein sollten die Rauchmelder vernetzt sein. Das war einfach, da es entsprechende Modelle auf dem Markt gibt. Ich habe folglich acht Rauchmelder bestellt. Da wir aber keine acht Stück benötigen, konnte ich einen modifizieren, sodass er im Brandfall einen IO an meinem Raspberry Pi 4 betätigt. Damit lässt sich dann eine Nachricht versenden, falls mal niemand zuhause sein sollte.
Unsere Rauchmelder sind vom Typ FA20RF. Zu Beginn habe ich die Abdeckungen abgenommen.
Hier kann man gut den Piezo-Pipser erkennen und auch den Detektor an sich. Eine Antenne wurde anscheinend nicht verbaut, lediglich auf der Platine sind Traces, die etwas entsprechendes erahnen lassen.
Um ein Signal am Raspberry Pi empfangen zu können, muss dessen Masse (GND) mit der Masse des Melders verbunden werden. Dazu habe ich einfach ein Kabel (orange) angelötet. Das Alarm-Signal lässt sich am Verarbeitungschip (KD-5810) an Pin 7 abnehmen (gelb).
Nun kann man bereits beim Betätigen der Test-Taste ein High-Signal abgreifen. Dessen Pegel ist jedoch nicht kompatibel zum Raspberry Pi weshalb ich einen einfachen NPN-Transistor Typ BC547B wie folgt verbaut habe.
Der NPN-Transistor invertiert das Signal. Aber da das beim Einlesen am Raspberry Pi keine Rolle spielt, konnte ich einfach etwas aus meiner Bastelkiste entnehmen. Über das Verhältnis R5 zu R1 lässt sich der Schaltpunkt des Transistors verschieben, sodass erst ein etwas höherer Pegel als die sonst üblichen 0.6V anliegen müssen, die den Transistor ansonsten schalten würden.
Solange der Alarm nicht aktiv ist, wird dem Raspberry also ein High Pegel signalisiert. Dieser springt bei der Erkennung von Rauch oder beim Testen dann auf Low um.
Auf dem Oszilloskop sieht das dann so aus:
Die Signalflanken sind ausreichend steil und übersteuern nicht. Der Raspberry Pi sollte also keiner Gefahr ausgesetzt sein.
Unten sieht man noch die kleine Platine, die ich aufgebaut habe. Man erkennt die beiden Leitungen zum Rauchmelder (Signal und GND) und die drei Leitungen für den Raspberry Pi (Signal_inv, 3V3 und GND).
Auf dem Raspberry Pi ist nun noch der Zustand des verwendeten IOs auszulesen. Fertig.