Dez 10


Seit geraumer Zeit sind Rauchmelder in Neubauten ja Pflicht. Macht ja auch durchaus Sinn. Gerade wenn man an solche USV-Aktionen denkt 🙂 Also muss ein Rauchmelder her. Der Otto-Normal-Nerd möchte aber mindestens irgendwas haben, was sich auch in die Standardhaustechnik integrieren lĂ€sst – am besten noch ein Set von mehreren Rauchmeldern. Da gibts es zig Varianten:

  1. Die Billigrauchmelder (um die 5-10 Euro)
  2. Die Billgrauchmelder die per 433MhZ miteinander sprechen (ab 60 Euro im Set mit 4 StĂŒck)
  3. Die teueren Systemrauchmelder die nichts anderes als (2) machen, nur das G*ra oder sonstwas draufsteht.
  4. Die sĂŒndhaft teueren Rauchmelder mit eingebauten GSM-Modul (ab ca. 150 Euro aufwĂ€rts…)

Gelinde gesagt: Alles doof – da es entweder meinen AnsprĂŒchen nicht genĂŒgt, oder massivst zu teuer ist.

Nun denn erstmal Dinge sichten – also ab zum Baumarkt und mal einen Rauchmelder der Kategorie “1” gekauft. Schimpft sich RM120 und hat schlappe 8,- gekostet. Laut ist das Ding ja, wenn man Zigarettenrauch reinblĂ€st, oder mal den Testknopf drĂŒckt – bringt nur nix, wenn niemand zu hause ist 🙁 Nach dem öffnen des GerĂ€ts, schaut einen ein wenig SMD-Technik (Oha) an, darunter ein IC mit der Aufschrift “CS2105go“. Wie sollte es anders sein, dazu gibts leider kein Datenblatt. Aber Moment, vielleicht ist der CS2105GO-M12 ja Pinkompatibel mit dem MC145010 – Bingo, ist er ! Der MC145010 (manchmal auch MC145012) wird in fast allen Rauchmeldern der Kategorie 1 und 2 (teilweise auch 3) verkauft.

Der aufmerksame Leser merkt was: Bei 2 ist doch eine Vernetzung möglich ! Korrekt, so ist es. Mit anderen Worten: In den Rauchmeldern der Kat.1 ist derselbe IC verbaut, wie in 2, nur das in 1 halt das 433MhZ Modul fehlt. Brauch ich (zumindest jetzt zum Testen) eh erstmal nicht –  doch dazu spĂ€ter. Der MC145010 verfĂŒgt ĂŒber einen sog. I/O Pin, der bei 2er Rauchmeldern dann das 433MhZ-Modul per TTL-High triggert, sobald es qualmt. Beim 1er liegt PIN7 (I/O) tot herum. Perfekt. Also fix den Ground (-) und PIN7 per Kabel rausgefĂŒhrt und an den Arduino geklemmt:

 

Links (Schwarz) die Masse – Also GND direkt mit dem GND des Arduino’s verbinden,

Recht (Rot), etwas fuckeliger, den PIN7 (I/O) des CS2105GO-M12 auf einen Analogen Input-PIN des Mikrocontrollers legen.

Auf dem Arduino selbst habe ich derzeit die gute Wohnzimmerinfo-Anzeige am laufen, da ist also schon ein “Ethernet-Shield” drauf. Da dort noch diverse Analoge Ports frei sind, und der Rauchmelder auch direkt deben dem Display wohnen soll, also optimal. Vom Code her gestaltet sich das ganze relativ simpel (siehe unten). Das allerfeinste ist jedoch, dass man nichtmal gegen irgendwelche Vorschriften verstösst, wenn man sich anstelle von Variante 1 fĂŒr einen Rauchmelder der Variante “2” entscheidet. Denn alle Rauchmelder bleiben so wie sie sind (sprich: Die piepen trotzdem). Nur einen, in dem 433MhZ-“Netz”, muss man dann an den Arduino anklemmen. Der verbaute Standalone-RM120 piept ĂŒbrigens auch noch – denn genau dafĂŒr ist PIN7 gedacht: I/O !


#include
#include

#define SmokePIN 0

int Smoke=0;
boolean mailsent=false;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,0, 100 };

void setup () {
Ethernet.begin(mac,ip);
}

void loop() {
// Read Smokedetector
Smoke=analogRead(SmokePIN);

// GGf. RESET der Variable mailsent

if (Smoke > 900) {
if (mailsent==false) {
firemail();
mailsent=true;
}
}
}

void firemail() {
// IP des Mailservers
byte mserver[] = {192,168,0,101};
Client Mail(mserver,25);
if (Mail.connect()) {
Mail.println(“HELO arduino.domain.tld”); /* say hello (statement after helo is needed but irrelevant)*/
Mail.println(“MAIL From: et_brennt@domain.tld”); /* identify sender, this should be the same as the smtp server you are using */
Mail.println(“RCPT To: et_brennt@domain.tld”); /* identify recipient */
Mail.println(“DATA”);
Mail.println(“To: et_brennt@domain.tld”); /* identify recipient */
Mail.println(“Subject: Burning down the House”); /* insert subject */
Mail.println(“WARNING – Smoke detected !”); /* insert body */
Mail.println(“.”); /* end email */
Mail.println(“QUIT”); /* terminate connection */
Mail.println();
Mail.stop();
}
}

13 Responses to “Wegen der Brandgefahr”

  1. redxine sagt:

    Danke schön!
    Ich habe dafĂŒr gesucht, und habe kauft diese Rauchmelde (Conrad DĂŒsseldorf). Ich fand diese Seite nach ein „CS2105G0” Datenblatt gesucht.
    (Entschuldigen Sie, dass meine schade)

  2. Experten sagt:

    Super Beitrag. Danke fĂŒr deine Hilfe. Der Artikel hilft mir sehr weiter.

  3. Hallo, sehr informativ. Guter Beitrag. Danke fĂŒr die Tipps!

  4. Henry sagt:

    Super! Ich bin gerade selbst dabei mir ein Projekt fĂŒr meine ElektronikergĂŒsse zu suchen und habe einen alten Brandmelder zerlegt und habe lĂ€nger nach dem dummen Chip gesucht… und dann deine Idee dazu ist einfach klasse!
    Freue mich auf weitere interessante Themen.

  5. […] so zu belassen, wie er ist und das fĂŒr den 85dB Piezo Alarm bestimmte Signal abzugreifen. Doch dieser Bastler hatte den richtigen Einfall, DatenblĂ€tter zu lesen. Denn: Neben ganz billigen Rauchmeldern gibt es […]

  6. Chris sagt:

    Super Webseite bzw. Beschreibung!!! Ich wollte deinen Brandmelder sofort nachbauen und habe natĂŒrlich gleich meinen Feuermelder auseinandergebaut! Ich wollte gleich mal den Lötkolben anschalten….aber puh…ich habe leider keinen IC MC145010 oder CS2105GO in meinem Rauchmelder drin, sondern einen EM78P156ELMJ-G (Data sheet habe ich hier gefunden http://www.alldatasheet.com/view.jsp?Searchword=EM78P156ELM). Jetzt weiß ich natĂŒrlich nicht wohin ich was löten soll 😉 Vielleicht kann mir einer einen Tipp geben!!! Danke schon mal vorab.

  7. Joerg sagt:

    Hallo Chris,
    was Du da als IC auf dem Rauchmelder hast, ist ein Microcontroller. Also genau so etwas wie der ATMEL auf dem Arduino. Der ist vom Hersteller des Rauchmelders programmiert worden. Ohne den Quellcode (der auf dem EM78P156 liegt) gibt es kaum eine Chance spontan zu sagen, was wo angelötet werden muss. Stell Dir zum Vergleich einfach einen Arduino vor, den Du fertig in der Schaltung (ohne Quellcode !) bekommst und den Du erweitern sollst – klappt auch nicht (zumindest nicht mit einer Standard-Anleitung). Die drei Möglichkeiten die Dir ĂŒberbleiben wĂ€ren:
    1.) Durch Messen herausbekommen, ob der Entwickler des EM78… so etwas Ă€hnliches wie den I/O-PIN auf den beiden Standards-ICs vorgesehen hat (Nicht belegte PINs könnten(!) ein Indiz sein.
    2.) Sich in den Microcontroller einlesen, und schauen ob man dem den Code entlocken kann. (Dazu sind aber weitreichende mC-Kenntnisse, ein ProgrammiergerĂ€t und natĂŒrlich der IC in ausgelöteter Form notwendig)
    3.) In den Baumarkt gehen, und einen Rauchmelder mit den Custom-ICs MC145010 oder CS2105GO kaufen, und diesen so belassen.

    Ich vermute mal, dass Nummer 3 das zielfĂŒhrendste ist. 1. und 2. kann man nur angehen, wenn man echt tief in der Materie steckt, oder sich (sehr!) tief einarbeiten möchte.

  8. Chris sagt:

    Vielen Dank Jörg fĂŒr deine schnelle Antwort. Die Variante 3 war jetzt fĂŒr mich nicht akzeptierbar, da ich bereits 5 Rauchmelder von meiner Sorte gekauft hatte. Also mĂŒsste ich die erste Variante wĂ€hlen und hab meine “Grundkenntnisse” in Elektrotechnik ausgepackt! Hiermit möchte ich noch meine Erkenntnisse mit euch teilen wenn jmd. auf das gleiche Problemchen stösst. NatĂŒrlich alles ohne GewĂ€hr und GarantieansprĂŒche 😉
    Habe meinen Rauchmelder nochmal zerlegt und konnte feststellen, dass der I/O Pin #8 von meinem EM78P156ELMJ-G Mikrocontroller immer 4 Volt liefert sobald ich die “Test”-Taste eines der 5 Rauchmelders drĂŒcke. Sollte mein “Ethernet-Shield” die nĂ€chsten paar Tage kommen, kann ich endgĂŒltig die Anwendung testen. Danke auf jeden Fall fĂŒr deine Hilfe und Ansporn mich tiefer in die Materie einzuarbeiten 😉

  9. Matze sagt:

    Hallo,

    vielen Dank fĂŒr deine Informationen und die E-Mails. Ich habe den Pin 7 auch zur Vernetzung der Rauchmelder verwendet, allerdings mit einem Raspberry PI. Die Rauchmelder werden zentral mit Strom versorgt und können auch alle getestet werden und auch ausgelöst werden.

    GrĂŒĂŸe
    Matze

  10. Martin sagt:

    Hallo!

    Kurze Frage: Warum benutzt du beim Arduino einen analogen Eingang? Man könnte doch auch einen digitalen Eingang nutzen, oder?
    Gruß
    Martin

  11. Joerg sagt:

    Hallo Martin,
    natĂŒrlich – nen Digitaler-IO sollte es genau so gut tun. War halt “schnell” aufgebaut seinerzeit. Ggf. vorher noch mal kurz die Pegel messen, dann sollte auch nichts gegen den digitalen sprechen.

  12. Go sagt:

    Hallo,

    ich bin momentan mit einem Ă€hnlichen Projekt beschĂ€ftigt und habe auch schon den I/O Pin mit meinem Arduino verbunden(GND natĂŒrlich auch).

    Jetzt habe ich aber folgendes Problem, ich habe die Digitalen Pins genommen und bekomme nun nicht nur bei einem Alarm ein HIGH Signal. Alle paar Minuten liefert der IO Pin fĂŒr ca. 2-3 Sekunden HIGH, hast du eine Idee woran das liegen könnte?

    Ist einer meiner ersten Projekte in dem Bereich, bin also nicht so erfahren. Muss hier vllt ein Widerstand vorgeschaltet werden ?

  13. Lars B. sagt:

    Moin,
    auch wenn dieser Thread schon Jahre alt ist, so bin ich doch erst seit heute dabei und habe bereits zwei Anmerkungen:
    Bei mir ist ein kd-5810 verbaut. Dieser soll kompatibel zum MC145010 sein. An Pin 7 messe ich auch das entsprechende Signal, allerdings sind es bei mir fast 9 V. Wenn ich das Datenblatt des MC145010 richtig verstehe, ist das normal), Diese Spannung mag ich dem Arduino aber nicht zumuten… Wie ist das bei Dir?
    Die Frage von Joerg hattest Du ja schon richtig beantwortet, hier aber noch ein Hinweis: Dieser Prozessor ist auch auf meinen RMs drauf. Ich musste, um an den KD-5810 zu kommen, erst ein Blech abloeten. Joerg hatte also das falsche Bauteil erwischt. Wobei er ja vielleicht auf eine in meinen Augen bessere Loesung gekommen ist. Mir gefallen seine 4 Volt an Pin 8 viel besser, als meine 9 Volt an Pin 7…

Leave a Reply

You must be logged in to post a comment.

preload preload preload