Schlagwort-Archive: Raspberry Pi

Erstes Foto mit der Camera des Raspberry Pi

Die Kamera für den Raspbery ist schon seit längerem auf dem Markt, jedoch habe ich mir erst kürzlich eine zugelegt. Die Installation ist recht einfach, Kamera anschließen, mit Hilfe von raspi-config aktivieren und Neustarten.

Nach dem das System wieder verfügbar war erhielt ich nach ausführen des Befehls raspistill -o image.jpg die folgende Fehlermeldung:
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

Die Lösung stand bereits in der Fehlermeldung, zum aktualisieren der Firmware muss lediglich rpi-update auf der Kommandozeile ausgeführt werden.

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.