Schlagwort-Archive: Raspberry Pi

Digitaler Fotorahmen

Mittlerweile gibt es auf dem Markt diverse Displays, die sich gut für Projekte mit dem Raspberry Pi eignen.

In diesem Artikel geht es um die Erstellung eines digitalen Bilderrahmens, die Bilder werden hierfür aus einem Dropbox Ordner heruntergeladen.

Leider gibt es für den Raspberry Pi keinen Dropbox Client, jedoch gibt es ein Script welches für den Download bzw. Upload von Dateien genutzt werden kann.
Zunächst muss das Script heruntergeladen und ausführbar gemacht werden.
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
chmod 755 dropbox_uploader.sh

Nach dem ausführen des Scripts erhält man eine gute Anleitung, damit das Script zum synchronisieren genutzt werden kann.

Zum herunterladen der neuen Bilder und darstellen auf dem Display verwende ich die folgenden Zeilen:
#!/bin/bash

for i in `/home/pi/dropbox/dropbox_uploader.sh list | grep -i jpg | tr -s ' ' | cut -d ' ' -f 4`
do
/home/pi/dropbox/dropbox_uploader.sh -s download $i /home/pi/Pictures
done
pqiv -f /home/pi/Pictures/ -s -i -t -d 30

Die Darstellung der Bilder erfolgt über das Programm pqiv.

[openhab] Onewire Sensoren einbinden

In dem ein oder anderen Zimmer befindet sich ein Onewire Sensor um die Temperatur zu messen, die gemessene Temperatur soll nun im openhab dargestellt werden.

Für das auslesen habe ich das Shellscript onewiretemp.sh erstellt:

#!/bin/bash
wert=`cat /sys/bus/w1/devices/$1/w1_slave | tail -n1 | cut -d '=' -f2`
wert2=`echo "scale=3; $wert/1000" | bc`
echo $wert2

Das Script liegt unter /home/openhab/bin und beim Aufruf muss die Sensor ID mit angegeben werden.

./onewiretemp.sh Sensor Id
Die gemessene Temperatur wird dann wie folgt ausgegeben 20,745.

Die Abfragen der einzelnen Sensoren habe ich in einer items Datei zusammengefasst.

Group temperatur

Number Temperature_Flur "Temperatur Flur [%.1f °C]" (flur,temperatur) { exec="<[/home/openhab/bin/onewiretemp.sh 28-000004b92eb4:60000:REGEX((.*?))]" } Number Temperature_Pia "Temperatur Pia [%.1f °C]" (temperatur) { exec="<[/home/openhab/bin/onewiretemp.sh 28-000004b91510:60000:REGEX((.*?))]" }

Damit die Ausgabe an mehreren Stellen in der Sitemap erfolgt, können bei der jeweiligen Abfrage mehrere Gruppen angegeben werden.

Hier noch ein Auszug aus der sitemap:

Frame label="Temperatur"{
Group label="Temperatur" icon="house" item=temperatur
}

ob-onewire1

ob-onewire2

Wie die Onewire Sensoren mit dem Raspberry Pi verbunden werden, habe ich in dem Artikel beschrieben.

[openhab] 433 MHz Steckdosen über eine Gruppe schalten

Manchmal ist es hilfreich wenn man alle Steckdosen auf einmal an oder ausschalten kann, zum Beispiel für die Anwesenheitserkennung.

Für das schalten habe ich in der /home/openhab/configurations/items/flur.items einen neuen Schalter angelegt.

Switch FlurAlle "Alle" (flur) {OFF,ON}

Da über den 433MHz Sender die verschiedenen Schaltcodes nicht gleichzeitig gesendet werden können, habe ich eine Regel erstellt um die einzelnen Steckdosen mit einer kleinen Verzögerung zu schalten.

Inhalt der /home/openhab/configurations/rules/flur.rules:
rule FlurAlleOn
when
Item FlurAlle received command ON
then
sendCommand(Treppe, ON)
timer = createTimer(now.plusSeconds(2)) [
sendCommand(Telefon, ON)
]
end

rule FlurAlleOff
when
Item FlurAlle received command OFF
then
sendCommand(Treppe, OFF)
timer = createTimer(now.plusSeconds(2)) [
sendCommand(Telefon, OFF)
]
end

[openhab] Items mit Hilfe von Gruppen sortieren

Wenn man in openhab mehrere Items anlegt zum Beispiel mehrere Lichtschalter fürs Wohnzimmer oder für die Weihnachtsbeleuchtung, empfiehlt es sich wegen der Übersichtlichkeit auf Gruppen zurückzugreifen.

Bevor die Gruppe genutzt werden kann, muss Sie über Group Gruppenname definiert werden. In der Item Konfiguration wird die Gruppe in runden Klammern angegeben.

Item Konfiguration:
Group flur
Switch Treppe "Im Fenster" (flur) {exec="OFF:/home/openhab/bin/flur.py 2 0,ON:/home/openhab/bin/flur.py 2 1"}
Switch Telefon "Telefon" (flur) {exec="OFF:/home/openhab/bin/flur.py 1 0,ON:/home/openhab/bin/flur.py 1 1"}

default.sitemap:
sitemap default label="Main Menu"
{
Frame label="Weihnachten"{
Group label="Weihnachten" icon="house" item=weihnachten
}
Frame label="Flur"{
Group label="Flur" icon="house" item=flur
}
Frame label="Wohnzimmer"{
Group label="Wohnzimmer" icon="house" item=wohnzimmer
}
}

Es ist auch möglich mehrere Gruppen Komma separiert anzugeben, somit kann ein Item in verschiedenen Frames aufgeführt werden.

NFC Modul für den Raspberry Pi

Zu dem NFC Modul welches ich bei Farnell element14 bestellt habe gehört das Modul selbst, ein kleiner Zettel mit Mini Anleitung und eine RFID Karte. Das Modul ist ungefähr so groß wie der Rasbperry Pi und wird direkt auf die GPIO Ports gesetzt. Durch das aufsetzen des Moduls sind leider die anderen GPIO Ports nicht mehr nutzbar.

Damit das Modul genutzt werden kann muss SPI aktiviert werden.
Hierfür auf der Kommandozeile sudo raspi-config ausführen und unter den Advancded Options SPI aktivieren, im Anschluss den Rasbperry Pi neustarten.

Über einem Windows oder Linux Rechner (nicht über den Rasbperry Pi) die benötigte Software hier herunterladen und entpacken. In den entpackten Verzeichnissen befindet sich die card_polling.zip, diese muss auf den Rasbperry Pi kopiert und werden.

Für das kompilieren der polling Software muss zunächst cmake installiert werden.

Als root auf der Kommandozeile:
apt-get update
apt-get install cmake

Nun als Pi user in das Verzeichniss wechseln in der die zip Datei liegt und mit unzip card_polling.zip entpacken.
Nach dem entpacken müssen folgende Befehle ausgeführt werden:

cd ~/card_polling/build
cmake ../source
make

Nun über ./card_polling die kompilierte Software starten und das polling beginnt.

/home/pi/card_polling/build# ./card_polling
/****** Begin Polling ******/
No card or Tag detected
No card or Tag detected
MIFARE Ultralight detected
UID: 04 F1 DE 81 A0 22 80

MIFARE Ultralight detected
UID: 04 F1 DE 81 A0 22 80

No card or Tag detected
No card or Tag detected

Sobald eine RFID Karte auf das Modul gelegt wird, gibt die Software den Typ und die UID der Karte aus.

NFC Paket

NFC montiert

UPDATE:Leider hatte ich vergessen die verwendete Distribution mit anzugeben, ich nutze hier Raspian. Danke für den Hinweis Marco