Status Notification System

Aus Flipdot

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Struktur

Der Zustand des Space - Schlosses wird im Blog angezeigt, auf Twitter gemeldet, per Email versandt (ToDo), und bewirkt im Space die Funkfernsteuerung von Steckdosen. Der logische Aufbau ist ähnlich zum alten A.W.E.S.O.M.E Projekt, das mit einem Arduino mit Ethernet - Shield lief.

Cronjob

Jede Minute läuft ein Cronjob, der den Status der Tür an den Endschalter - Optokopplern mit WiringPi abfragt. Entsprechend dem Status wird mit WGET ein PHP Script für offen | zu auf unserem shared Server aufgerufen, auf dem auch das Blog läuft. Dort wird überprüft, ob der letzte Aufruf anders lautete, und ggf. der Space-Status geändert.

Funksteckdosen - Steuerung

Lotsa lotsa Funksteckdosen
Mit der Bibliothek rcswitch-pi lassen sich die billigen Funksteckdosen aus dem Baumarkt steuern, wenn man dem Raspberry Pi noch einen 433 MHz - Sender spendiert. Als Antenne reicht ein lambda/4 langer Draht, 164 mm incl. Zuleitung auf der Platine. Für größere Reichweite gibts eine Anleitung im flipdot Blog.

Die Steckdosensteuerung ist bislang ebenfalls Bestandteil des Cronjobs - das Datentelegramm für Ein- oder Ausschalten wird also jede Minute wiederholt.

Optional wäre eine Weboberfläche, mit der man weitere Funktionen im Space steuern kann. Das könnte zum einen einfach mit Aufrufen der SEND Routine der Steckdosensteuerung mit anderen Device Codes passieren, oder wie in Raspberry_telefoniert_nach_draussen beschrieben, über die serielle Schnittstelle des RasPi mit einem angeschlossenen uC. Der 10-polige Wannenstecker-Anschluß dafür ist schon vorbereitet.

Verdrahtung

Belegung der Flachbandleitung

... aus dem 9-Pol Sub-D Stecker am Schlosscontroller zu den Optokopplern, wo mit einer aufgequetschten Wannenbuche das Signal für den RasPi abgenommen wird:

1 braun Controllertaste ESC (Pullup nach +5 V, kann auf GND gezogen werden)
2 rot N.C.
3 orange Controllertaste DOWN (Pullup nach +5 V, kann auf GND gezogen werden)
4 gelb  Controllertaste ENTER (Pullup nach +5 V, kann auf GND gezogen werden)
5 grün Ausgang Optokoppler für OFFEN (1 = offen)
6 blau Ausgang Optokoppler für GESCHLOSSEN (1 = geschlossen)
7 violett Eingang Optokoppler für RELAIS 0
8 grau Eingang Optokoppler für RELAIS 1
9 weiss GND
10 schwarz + 5 V

Schaltung der Adapterplatine Schlosscontroller - RasPi

Setup Raspberry

WiringPi installieren

To obtain WiringPi using GIT:

git clone git://git.drogon.net/wiringPi

To build/install there is a new simplified script:

cd wiringPi
./build

testen:

gpio readall

script testdoor.sh

in /home/pi/spacecontrol/testdoor.sh

#!/bin/sh

doorstatus=` /usr/local/bin/gpio -g read 4 `

if [ $doorstatus -eq 0 ] ; then
        echo "port = 0, space ist offen"
        wget http://security-by-obscurity.org/auf.php -q -O /dev/null
else
        echo "port = 1, space ist zu"
        wget http://security-by-obscurity.org/zu.php -q -O /dev/null
fi

script setports.sh

#!/bin/sh

/usr/local/bin/gpio -g mode 4 in

crontab

* * * * * /home/pi/spacecontrol/testdoor.sh

Ports beim Startup setzen

sudo nano /etc/rc.local
#setting fuer die im space benutzten io pins des pi
/home/pi/spacecontrol/setports.sh

Bibliothek für Funkfernbedienung der steckdosen installieren

git clone http://github.com/r10r/rcswitch-pi rcswitch-pi
cd rcswitch-pi
 make send

Standard - Belegung fuer DATA Pin:

+----------+------+--------+--------+
| wiringPi | GPIO | Name   | Header | 
+----------+------+--------+--------+
|      0   |  17  | GPIO 0 | 11     |
+----------+------+--------+--------+ 

der sende-Pin kann ggf. in send.cpp geändert werden:

int PIN = 0;

Steckdosensteuerung in testdoor.sh script eingebaut

#!/bin/sh

doorstatus=` /usr/local/bin/gpio -g read 4 `

if [ $doorstatus -eq 0 ] ; then
        echo "port = 0, space ist offen"
        wget http://security-by-obscurity.org/auf.php -q -O /dev/null


        sudo /home/pi/rcswitch-pi/send 10011 5 1
else
        echo "port = 1, space ist zu"
        wget http://security-by-obscurity.org/zu.php -q -O /dev/null

        sudo /home/pi/rcswitch-pi/send 10011 5 0
fi