Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke

Projekt: Den Briefkasten überwachen und eine betätigung mittels Email melden

Wenn man in der dritten Etage wohnt möchte man gerne wissen ob es sich lohnt runter zum Briefkasten zu laufen um nach der guten altmodischen Post zu sehen. Ach wie schön wäre es wenn man eine Email bekommen könnte wenn die Post da ist...

Gedacht und schon gebaut...

Zuerste hatte ich es mit einer Funk Klingel ausprobiert, die entfernung war Unterirdisch,knappe 2m konnte ich an Funkstrecke im Keller überbrücken (Zuviel Beton). Dann organisierte ich mir von "HOMEeasy" einen Tür Funkkontakt und ein 3fach Steckdosen Set mit Fernbedienung. Eine dieser Steckdosen koppelte ich mit dem Funkkontakt und zerlegte dann die Funksteckdose, ich brauche nur das Schaltmodul und Empfänger Platine.

Den Funk Türkontakt befestigte ich im Briefkasten und koppelte es passend mit der Briefkastenklappe. Immer wenn die Briefkastenklappe betätigt wird, wird ein Signal an den Empfänger gesendet. Perfekt.

Das Funksignal war mit knapp 6m reichweite im Keller besser als das Signal der Funkklingel - es reichte ganz knapp bis in den Keller. Dort verbaute ich das Funk Empfängermodul gut Isoliert in ein PVC Gehäuse und ließ ein 230V Relais damit anziehen. Sowie die Briefkastenklappe betätigt wurde zog das Relais für 2 Sekunden an - IDEAL! - Bloß nicht mehr anfassen ! 8-)

Weiter baute ich eine normale Tasterschaltung vom Raspberry Pi auf und verdrahtete die Schaltkontakte des Relais da drauf. Fertig. Nach etwas Software sendete mit der Briefkasten bei betätigung der Klappe eine Email. Mittlerweile ist der Raspberry Pi mit noch mehr Aufgaben betreut worden - so etwas wächst und wächst...

Die Hardware:

Die 230 V Seite ist recht simpel gehalten, die 230V versorgen das Funkmodul mit Strom, der Ausgang geht auf die Relaisspule.
Von der anderen Seite der Relaisspule geht es wieder zum Null.
ACHTUNG bei Arbeiten am 230V Netz - es besteht Lebensgefahr ! Wer keine Ahnung hat - Finger weg !
Vom Raspberry PI Pin 1 (3,3V) geht es an den 10 KOhm Widerstand
Vom 10 KOhm Widerstand geht es an den GPIO 27 (Pin13) und an den einen geschalteten Kontakt des Relais
Vom anderen geschalteten Kontakt des Relais geht es an den Raspberry Pi an Pin 6 (GND).

Das ist schon alles an Hardware. (im Bild ist ein Banana Pi, die Pin Belegung ist aber die gleiche)

Die Software:

Die Softwareseite besteht hier aus 3 Dateien, 2 PHP Dateien und einem Bash Script. Der einfachheit halber liegen alle Dateien grundsätzlich bei "/var/www/" und die Rechte sind immer auf 777.

Datei: /var/www/Briefkasten.sh

Die IP das Raspberrys muss noch angepasst werden, hier als beispiel 192.168.0.2:

#!/bin/sh

echo "27" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio27/direction

#Variablen anlegen

result="$( cat /sys/class/gpio/gpio27/value )"
if [ "$result" = "0" ]; then
brief="ZU"
fi
if [ "$result" = "1" ]; then
brief="AUF"
fi

while true
do

#Briefkasten abfragen
result="$( cat /sys/class/gpio/gpio27/value )"
if [ "$result" = "1" ] && [ "$brief" = "ZU" ]; then
curl "http://192.168.0.2/BriefkastenAUF.php"
brief="AUF"
fi
if [ "$result" = "0" ] && [ "$brief" = "AUF" ]; then
curl "http://192.168.0.2/BriefkastenZU.php"
brief="ZU"
fi

sleep 0.5
done

Dann gibt es da noch diese 2 PHP Dateien... (Statt mit GPIO mode 2 in und GPIO read 2 wurde es hier damals noch mit echo und cat gelöst.)

/var/www/BriefkastenAUF.php

<?php
//Briefkasten geöffnet, dann lege Datei an
date_default_timezone_set('Europe/Berlin'); setlocale(LC_TIME, "de_DE");
//Aktuelles Datum und Uhrzeit
if (!file_exists('Briefkasten_ist_auf.txt')) {
$handle=fopen("Briefkasten_ist_auf.txt","w");
fwrite($handle,"Briefkasten wurde betätigt");
fclose($handle);

#Mail senden
$empfaenger = "A.Teichmann@NOSPAMgmx.net";
$aktion="Briefkasten wurde betaetigt";
$from="Briefkasten <A.Teichmann@NOSPAMgmx.net>";
$betreffzeile="Trari trara...Die Post ist da" ;
$Datum=date("d.m.Y");
$Uhrzeit=date("H:i:s");

$betreff = $betreffzeile;
$nachricht = $aktion ;

$optheader[] = "From: ".$from;
$optheader[] = "Reply-To:Briefkasten <A.Teichmann@NOSPAMgmx.net>";
$header = implode("\n", $optheader);
$extheader = "-fA.Teichmann@NOSPAMgmx.net";

mail($empfaenger, $betreff, $nachricht, $header, $extheader);
}

?>

dann noch die Datei /var/www/BriefkastenZU.php

<?php
//Briefkasten wird geschlossen, lösche Datei
date_default_timezone_set('Europe/Berlin'); setlocale(LC_TIME, "de_DE");$senden=0;
if (file_exists('Briefkasten_ist_auf.txt')) {
unlink('Briefkasten_ist_auf.txt');

}

?>

Jetzt muss das ganze noch richtig aufgerufen werden, also legen wir einen Cronjob an:

sudo crontab -e

iDort tragen wir ein das nach einem Reboot das Script im Hintergrund die Briefkastenklappe abfragt und bei betätigung eine Email verschickt.

@reboot bash /var/www/Briefkasten.sh &

Nach einem Reboot sollte der Briefkasten Emails verschicken...8-)

Das war die alte Version, die hier immer noch super läuft. Für die Türüberwachungen habe ich es mittlerweile alles auf reines BASH umgerüstet. Sollte der Keller Raspberry Pi irgendwann mal Neu installiert werden werde ich den auch auf reines BASH umstricken, aber wie sagt man so schön: Never change a running system...

 

 

NACHTRAG: Da es Anfragen gab wie das ganze mit WiringPi aussehen müsste, habe ich das Bash Script mal "frei" nach Wiring Pi übersetzt: (ungetestet)...

Datei: /var/www/Briefkasten.sh

#!/bin/sh

gpio mode 2 in

#Variablen anlegen

result="$( gpio read 2 )"
if [ "$result" = "0" ]; then
brief="ZU"
fi
if [ "$result" = "1" ]; then
brief="AUF"
fi

while true
do

#Briefkasten abfragen
result="$( gpio read 2 )"
if [ "$result" = "1" ] && [ "$brief" = "ZU" ]; then
curl "http://192.168.0.2/BriefkastenAUF.php"
brief="AUF"
fi
if [ "$result" = "0" ] && [ "$brief" = "AUF" ]; then
curl "http://192.168.0.2/BriefkastenZU.php"
brief="ZU"
fi

sleep 0.5
done

Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke