26
Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich über keinen grü- nen Daumen verfügt, könnt Ihr mithilfe des Raspberry Pi dafür sorgen, dass zukünftig Eure Blumen weder verdursten noch ertränkt werden. Bei diesem Projekt geht es um die Bewässerung von Tomaten und die Überwachung der Bodenfeuchtigkeit und Photosynthese. Ihr seht: Dem Raspberry Pi sind keine Grenzen gesetzt. Viel Spaß beim Ausprobieren! Michael Kofler, Charly Kühnast, Christoph Scherbeck Raspberry Pi – Das umfassende Handbuch 1.087 Seiten, gebunden, in Farbe, mit CD, 2. Auflage 2015 39,90 Euro, ISBN 978-3-8362-3795-6 www.rheinwerk-verlag.de/3872 »PomodoPi« Inhalt Index Die Autoren Wissen, wie’s geht.

Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

Raspberry–Pi-Projekt für Geeks

Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich über keinen grü-nen Daumen verfügt, könnt Ihr mithilfe des Raspberry Pi dafür sorgen, dass zukünftig Eure Blumen weder verdursten noch ertränkt werden. Bei diesem Projekt geht es um die Bewässerung von Tomaten und die Überwachung der Bodenfeuchtigkeit und Photosynthese. Ihr seht: Dem Raspberry Pi sind keine Grenzen gesetzt. Viel Spaß beim Ausprobieren!

Michael Kofler, Charly Kühnast, Christoph Scherbeck

Raspberry Pi – Das umfassende Handbuch1.087 Seiten, gebunden, in Farbe, mit CD, 2. Auflage 2015 39,90 Euro, ISBN 978-3-8362-3795-6

www.rheinwerk-verlag.de/3872

»PomodoPi«

Inhalt

Index

Die Autoren

Wissen, wie’s geht.

Page 2: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1051 — #1047i

i

i

i

i

i

42

Kapitel 42

PomodoPi

Im gärtnerischen Sinne sind die Autoren dieses Buchs leider völlig kompetenzfrei,

dennoch möchten sie Tomaten aus eigenem Anbau genießen. So sinnierten wir vor

einiger Zeit darüber, ob esmöglich sei, der eigenen gärtnerischen Inkompetenz durch

den Einsatz eines Raspberry Pi abzuhelfen. Die Ergebnisse präsentieren wir hier.

Unser Ziel ist es, in einem Terrassen-Hochbeet ständig die Bodenfeuchtigkeit zumes-

sen und bedarfsweise automatisch für Wassernachschub zu sorgen.

42.1 Der Bodenfeuchtigkeitssensor

Bei den einschlägigen Onlinehändlern können Sie Bodenfeuchtigkeitssensoren

erwerben (siehe Abbildung 42.1). Diese »Gabelzinken« steckt man in die Erde, und

oben wird ein dreiadriges Kabel angeschlossen. Die Kosten liegen zwischen fünf und

fünfzehn Euro, je nachdem, ob Sie den Sensor amnächsten Tag habenwollen oder ein

paar Wochen Zeit haben, bis das Päckchen aus Shenzen da ist.

Abbildung 42.1 Preiswerter Bodenfeuchtigkeitssensor

1051

Page 3: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1052 — #1048i

i

i

i

i

i

42 PomodoPi

Leider hat diese Bauform ein paar Nachteile. Der Anschluss für das Kabel ist nicht

wasserdicht, dass heißt, Sie dürfen diesen Sensor nicht komplett vergraben, und star-

ker Regen dürfte wohl auch schon zu Messfehlern führen. Bei Kontakt mit Wasser ist

Korrosion nur eine Frage der Zeit, gerade beim Einsatz im Beet oder auf der Terrasse.

Die Messfühler sind ebenfalls blankes Metall, das im Erdreich mit Sicherheit korro-

dieren wird. Schlimmer noch, bei manchen dieser Sensoren sind die Leiter in Kupfer

ausgeführt – wenn daswegrottet und in die Pflanze gelangt, nehmen Sie eventuell ein

Schwermetall zu sich. Deshalb fiel nach gebührendem Kopfkratzen die Entscheidung

für einen hochwertigeren Sensor (siehe Abbildung 42.2).

Abbildung 42.2 Bodenfeuchtigkeitssensor Vegetronix VH-400

Der Bodenfeuchtigkeitssensor VH-400der FirmaVegetronix arbeitet kapazitiv, was in

der Praxis primär bedeutet: kein Metall im Erdreich. Außerdem ist der Sensor wasser-

dicht vergossen; Sie können ihn also in der Pflanzerde versenken, umdie Feuchtigkeit

direkt amWurzelballen zumessen. Einziger Nachteil: Nach dem Erwerb ist man etwa

fünfzig Euro ärmer – dafür bekommen Sie mehr Tomaten, als Sie unter Beibehaltung

eines würdevollen Gesichtsausdrucks tragen können.

Der Sensor hat drei Anschlussdrähte: Plus, Minus und Output. Output bedeutet: Die-

ser Draht führt umso mehr Spannung, je höher die Feuchtigkeit ist, die der Sensor

misst. Plus ist derDrahtmit der roten Isolierung,Minus aliasMasse istnicht derDraht

mit der schwarzen Isolierung – das ist die Outputleitung. Masse ist der nicht isolierte

Draht.

AmRaspberry Pi können wir eine Versorungsspannung von 3,3 oder 5 V abgreifen, für

den Feuchtigkeitssensor reichen 3,3 V. Also schnell mal ausprobieren, Plus undMinus

am Raspberry anschließen, Output mit einem Multimeter messen: Der knochentro-

ckene Sensor liefert 0 V, wie erwartet. In Blumenerde liefert er 0,9 V, untergetaucht

1052

i

i

“buch” — 2015/7/22 — 11:07 — page 1053 — #1049i

i

i

i

i

i

42

42.1 Der Bodenfeuchtigkeitssensor

im Arbeitszimmeraquarium sind es 2,8 V. Wir hatten eigentlich erwartet, dass bei völ-

ligem Untertauchen unter Wasser die kompletten 3,3 V am Output-Draht anliegen,

aber das ist nicht tragisch – wir rechnen das später in der Software ohnehin in Pro-

zentwerte um und können das dort anpassen.

Wertewandel

Es wäre schön, wenn wir die drei Drähte einfach an den Raspberry Pi anschließen

und die Spannung auslesen könnten. Eine steigende oder fallende Spannung ist aber

ein analoger Messwert, und damit können digital arbeitende Systeme wie unser

Raspberry Pi nichts anfangen. Wir brauchen einen Analog-/Digitalwandler wie den

MCP3008, den wir in Abschnitt 14.2 schon ausführlich behandelt haben.

Zur Messung der Feuchtigkeit verbinden Sie den Outputdraht des Feuchtigkeitssen-

sors mit Pin 1 (Channel 0) des MCP3008 (siehe Abbildung 42.3). Die Pins 2 bis 8 alias

Channel 1 bis 7 benutzen wir nicht. Um Störungen zu vermeiden, verbinden wir sie

allesamtmit Masse. Verbinden Sie außerdem

MCP3008 Pin 1 (CH0)mit dem Output-Draht des Feuchtigkeitssensors

MCP3008 Pin 2–8 (CH1–CH7), Pin 9 (AGND) und Pin 14 (DGND) und den nicht iso-

lierten Draht des Feuchtigkeitssensors mit Masse (Pin 6 am Raspberry)

Pin 15 (VRef), Pin 16 (VDD) und den rot isolierten Draht des Feuchtigkeitssensors

mit 3,3 V (Pin 1 des Raspberry Pi)

Pin 10 (CS) mit Pin 26 (CE) des Raspberry Pi

Pin 11 (Din) mit Pin 19 (MOSI) des Raspberry Pi

Pin 12 (Dout) mit Pin 21 (MISO) des Raspberry Pi

Pin 13 (CLK) mit Pin 23 (SCLK) des Raspberry Pi

Was die Hardware angeht, sind Sie an dieser Stelle fertig. Jetzt müssen Sie dem Rasp-

berry aber noch beibringen, wie er an die Messwerte kommt, die ihm der Analog-/

Digitalwandler MCP3008 jetzt zur Verfügung stellt.

Öffentlicher Datennahverkehr

An dieser Stelle müssen wir kurz über Bussysteme sprechen. Sie bestehen aus Daten-

straßenmitmehreren Datenverkehrsteilnehmern und einer Steuerzentrale. Die Steu-

erzentrale ist der Computer (Master), die Verkehrsteilnehmer sind angeschlossene

Komponenten (Slaves oder Clients). Der Master kann die Slaves anhand einer eindeu-

tigen Nummer (ID) identifizieren und von ihnen verlangen, dass sie ihre Daten bei

der Zentrale abliefern. Wir benutzen zum Auslesen des Feuchtigkeitssensors das SPI-

Bussystem. Um es zu aktivieren, führen Sie auf dem Raspberry das Kommando

sudo raspi -config

1053

Page 4: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1054 — #1050i

i

i

i

i

i

42 PomodoPi

CH0

CH1

CH2

CH3

CH4

CH5

CH6

CH7

VDD

VRef

AGND

CLK

DOut

DIn

CS/SHDN

DGND Pin 6

Pin 19

Pin 21

Pin 23

Pin 1

Pin 26

MC

P3

00

8

SCLK

MISO

MOSI

CE1

3,3 V

Raspberry-Pi-GPIO

GND

VH-400V

CC

GN

D

Ou

tpu

t

Abbildung 42.3 Beschaltung desMCP3008

aus. Es erscheint ein Textmenü, in dem Sie Advanced Options auswählen, und im fol-

genden Untermenüwählen Sie SPI. Bestätigen Sie die Sicherheitsabfragemit Yes, und

verlassen Sie raspi-config. Jetzt starten Sie den Raspberry Pi einmal neu (mit dem

Kommando sudo reboot). Nach dem Neustart ist das SPI-Bussystem betriebsbereit.

Da wir mit dem SPI-Bus in der Sprache Python kommunizieren möchten, müssen

noch ein paar Kleinigkeiten nachinstalliert werden. Führen Sie dazu die folgenden

Kommandos aus:

cd ~

sudo apt -get -fym install python3 -dev bc

git clone https :// github .com/Gadgetoid/py -spidev

cd py -spidev

sudo python3 setup .py install

sudo shutdown -r now

Jetzt kann es endlich losgehen.Mit einem erfreulich kurzen Programm in Python wei-

sen wir den MCP3008 an, uns über den SPI-Bus die Daten zu geben, die der an CH0

angeschlossene Sensor liefert. Der Code ist in Abschnitt 14.2 genau erläutert, deshalb

lassen wir ihn hier weitestgehend unkommentiert:

1054

i

i

“buch” — 2015/7/22 — 11:07 — page 1055 — #1051i

i

i

i

i

i

42

42.1 Der Bodenfeuchtigkeitssensor

#!/usr/bin/python3

import spidev

import time

spi = spidev .SpiDev ()

spi.open (0,1)

antwort = spi.xfer ([1 ,128 ,0])

if 0 <= antwort [1] <=3:

wert = (( antwort [1] * 256) +antwort [2]) * 0.00322

fprozent = (( wert / 2.82) * 100)

# Substratfeuchte in Prozent ausgeben

print (fprozent)

Der Messwert in Volt steht in der Variablen wert. Da wir empirisch ermittelt haben

(durch Eintauchen ins Aquarium), dass der Sensor bei maximaler Umgebungsfeuch-

tigkeit 2,82 V liefert, rechnen wir die Voltzahl in Prozent um. Dieser Wert steht in der

Variablen fprozent und wird wie folgt ausgegeben:

49.2134751773

Die Anzahl der Nachkommastellen täuscht eine wesentlich höhere Genauigkeit vor,

als der Sensor tatsächlich erreicht, deshalb werden wir sie komplett abschneiden und

nur mit dem ganzzahligen Vorkommawert weitermachen. Danach wird der Wert in

eine simple Textdatei geschrieben. Das erledigt dieses Programm (diesmal nicht in

Python, sondern in bash):

#!/bin/bash

WDIR =/usr/local /shellscripts /moisturesensor

ETCDIR =$WDIR /etc/

OUTDIR =$WDIR /output

MOISTPROZENT =$($WDIR /moist_einmal .py|cut -f1 -d\.);

logger "$MOISTPROZENT Prozent Substratfeuchte "

echo $MOISTPROZENT > $ETCDIR/moisture -vh400 -1. text

Dieses Programm ruft das Sensor-Abfrageprogramm moist_einmal.py auf und merkt

sich von dessen Ausgabe alles, was vor dem Punkt steht (cut -f1 -d\.), in der Varia-

blen MOISTPROZENT. Deren Inhalt wird in die Datei moisture-vh400-1.text geschrieben.

Grafische Darstellung der Feuchtigkeit

Nunwollenwir aus den Sensordaten anschaulicheGrafiken erstellen. Damitman Ver-

laufsgrafiken erstellen kann, mussman die Messwerte über einen längeren Zeitraum

sammeln, am besten in einer kleinen Round-Robin-Datenbank (RRD). Wie derar-

tige Datenbanken funktionieren und mit welchen Kommandos man auf sie zugreift,

haben wir ausführlich in Abschnitt 30.2, »Einführung in RRDtool«, beschrieben.

1055

Page 5: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1056 — #1052i

i

i

i

i

i

42 PomodoPi

DieRRD-Werkzeuge installieren Sie durch die Eingabe von sudo apt-get -fym install

rrdtool. Das folgende Script wird nur einmal benötigt: Es legt die Round-Robin-

Datenbankmit demNamen moisture.rrd an, die dieMesswerte des Feuchtigkeitssen-

sors aufnehmen soll:

#!/bin/bash

WDIR =/usr/local /shellscripts /moisturesensor

ETCDIR =$WDIR /etc/

OUTDIR =$WDIR /output

rrdtool create $ETCDIR/moisture.rrd --step 60 \

DS:data1 :GAUGE :120:0:100 \

DS:data2 :GAUGE :120:0:100 \

RRA:AVERAGE :0.5:1:2160 \

RRA:AVERAGE :0.5:5:2016 \

RRA:AVERAGE :0.5:15:2880 \

RRA:AVERAGE :0.5:60:8760 \

RRA:MAX :0.5:1:2160 \

RRA:MAX :0.5:5:2016 \

RRA:MAX :0.5:15:2880 \

RRA:MAX :0.5:60:8760

Jetzt benötigen wir noch ein kleines Programm, das einmal proMinute denMesswert

aus der Datei moisture-vh400-1.text liest, ihn an die RRD liefert und die Verlaufsgra-

fik erzeugt. Wenn Sie selbst ein derart umfassendes rrdtool-Kommando entwickeln

möchten, gehen Sie am besten schrittweise vor – d. h., nach jeder Änderung testen Sie

das Kommando, bevor Sie es umweitere Optionen ergänzen.

#!/bin/bash

WDIR =/usr/local /shellscripts /moisturesensor

ETCDIR =$WDIR /etc/

OUTDIR =$WDIR /output

MOISTPROZ=$(cat $ETCDIR/moisture -vh400 -1. text);

echo "$MOISTPROZ Prozent Substratfeuchte "

rrdtool update $ETCDIR/moisture.rrd N:$MOISTPROZ :U

for i in -4h -12h -24h -7d -30d -90d -180d -360d; do

rrdtool graph $OUTDIR/moisture$i .gif \

--border =0 -c GRID#ffffff00 -c BACK#ffffff \

--lazy --slope -mode --start $i \

--title "Bodenfeuchtigkeit ($i)" \

--vertical -label "Prozent" -w 400 -h 140 \

1056

i

i

“buch” — 2015/7/22 — 11:07 — page 1057 — #1053i

i

i

i

i

i

42

42.1 Der Bodenfeuchtigkeitssensor

DEF:data1 =$ETCDIR/moisture.rrd:data1 :AVERAGE \

DEF:data2 =$ETCDIR/moisture.rrd:data2 :AVERAGE \

CDEF:shading2=data1 ,0.98 ,* AREA:shading2#0000 F9:\

"Bodenfeuchtigkeit (aktuell $MOISTPROZ Prozent)\n" \

CDEF:shading10=data1 ,0.90 ,* AREA:shading10 #0F0FF9 \

CDEF:shading15=data1 ,0.85 ,* AREA:shading15 #1818 F9 \

CDEF:shading20=data1 ,0.80 ,* AREA:shading20 #2D2DF9 \

CDEF:shading25=data1 ,0.75 ,* AREA:shading25 #3C3CF9 \

CDEF:shading30=data1 ,0.70 ,* AREA:shading30 #4B4BF9 \

CDEF:shading35=data1 ,0.65 ,* AREA:shading35 #5A5AF9 \

CDEF:shading40=data1 ,0.60 ,* AREA:shading40 #6969 F9 \

CDEF:shading45=data1 ,0.55 ,* AREA:shading45 #7878 F9 \

CDEF:shading50=data1 ,0.50 ,* AREA:shading50 #8787 F9 \

CDEF:shading55=data1 ,0.45 ,* AREA:shading55 #9696 F9 \

CDEF:shading60=data1 ,0.40 ,* AREA:shading60 #A5A5F9 \

CDEF:shading65=data1 ,0.35 ,* AREA:shading65 #B4B4F9 \

CDEF:shading70=data1 ,0.30 ,* AREA:shading70 #C3C3F9 \

CDEF:shading75=data1 ,0.25 ,* AREA:shading75 #D2D2F9 \

CDEF:shading80=data1 ,0.20 ,* AREA:shading80 #E1E1F9 \

CDEF:shading85=data1 ,0.15 ,* AREA:shading85 #E1E1F9

done

Das Script generiert Bilder für mehrere Übersichtszeiträume: für 4 Stunden, 24 Stun-

den, 7 Tage (siehe Abbildung 42.4), 30 Tage und so weiter bis zu einer Jahresübersicht.

Abbildung 42.4 Bodenfeuchtigkeit über 7 Tage

1057

Page 6: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1058 — #1054i

i

i

i

i

i

42 PomodoPi

42.2 Die Blumenampel

Egal, ob Sie Ihre Tomaten aus Samen aufziehen oder als Jungpflanzen kaufen:

Zunächst werden die Pflanzen in der warmen Stube herangepäppelt, bis keine Nacht-

fröste mehr zu erwarten sind. Wenn Sie zu viel Respekt vor einer automatischen

Bewässserung in den eigenen vierWänden haben, können Sie sich eine automatische

Gieß-Erinnerung bauen, etwamit einer Blumenampel (siehe Abbildung 42.5).

Abbildung 42.5 USB-Blumenampel

Die Blumenampel zeigt Grün, wenn die Bodenfeuchtigkeit mehr als 65 Prozent

beträgt, Gelb, wenn man gießen sollte, und Rot, wenn es zu spät ist. Die Ampel

(Hersteller: Cleware) wird per USB angeschlossen und ist natürlich frei programmier-

bar, und zwar sehr anfängerfreundlich. Sie funktioniert unter Windows, Linux und

bald wohl auch unter OS X. Die Software für Linux können Sie unter http://www.

vanheusden.com/clewarecontrol herunterladen. Nach dem Dekomprimieren genügt

ein make install, und man ist startklar. Mit diesem Kommando schaltet man die

Ampel auf Grün:

clewarecontrol -d 901846 -as 2 1

Das Kommando sieht kryptisch aus, es ist aber ganz einfach: Der Parameter -d

<Zahl> gibt an, welche Ampel Sie ansprechen möchten – Sie könnten ja mehrere

haben. Jede Ampel hat ab Werk eine eindeutige Erkennungsziffer, die Sie mit dem

Kommando clewarecontrol -l ermitteln. Mit dem Parameter -as 2 1 erfolgt die

eigentliche Ampelschaltung. Dabei gibt die erste Zahl die Farbe an (0 = Rot, 1 = Gelb, 2

= Grün) und danach entweder 0 für »aus« oder 1 für »ein«.

Die Sensordaten für die Bodenfeuchtigkeit hat der Computer ja schon, und so ist es

recht einfach, mit einem kleinen Programmden Gieß-Status anzeigen zu lassen:

1058

i

i

“buch” — 2015/7/22 — 11:07 — page 1059 — #1055i

i

i

i

i

i

42

42.3 Die automatische Bewässerung

#!/bin/bash

WDIR =/usr/local /shellscripts /ampel

MOISTURE=$(cat /usr/local /shellscripts /moisturesensor /etc/

moisture -vh400 -1. text)

# zum Debugging

logger "Feuchtigkeit : $MOISTURE Prozent";

# Ampel schalten

if [ $MOISTURE -ge 65 ]; then

# Ampel auf Gruen schalten

clewarecontrol -d 901846 -as 2 1

# Rot und Gelb ausschalten

clewarecontrol -d 901846 -as 0 0

clewarecontrol -d 901846 -as 1 0

elif [ $MOISTURE -ge 55 ] && [ $MOISTURE -le 64 ]; then

# Ampel auf Gelb schalten

clewarecontrol -d 901846 -as 1 1

# Rot und Gruen ausschalten

clewarecontrol -d 901846 -as 0 0

clewarecontrol -d 901846 -as 2 0

else

# Ampel auf Rot schalten

clewarecontrol -d 901846 -as 0 1

# Gelb und Gruen ausschalten

clewarecontrol -d 901846 -as 1 0

clewarecontrol -d 901846 -as 2 0

fi

Wenn Sie gerade keine Tomaten züchten, können Sie die Ampel natürlich für belie-

bige andere Zwecke verwenden, der Fantasie sind hier keine Grenzen gesetzt.

42.3 Die automatische Bewässerung

Nachdemwir an diesem Punkt angelangt sind, ist der letzte Schritt, die automatische

Bewässerung, nur noch eine Kleinigkeit. Denn wenn Sie anhand der Bodenfeuchtig-

keit eine Ampel schalten können, können Sie genauso leicht eine Pumpe oder ein

Magnetventil schalten. Wenn Sie etwa auf dem Balkon, der Terrasse oder im Garten

einen Wasserhahn haben, können Sie sich schnell und leicht einen Raspberry-Pi-auf-

Gardena-Adapter bauen (siehe Abbildung 42.6).

Das Element ganz links im Bild wird an den Wasserhahn angeschlossen. Es ist ein

Y-Verteiler. An die eine Seite können Sie einen Gartenschlauch anschließen, an der

1059

Page 7: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1060 — #1056i

i

i

i

i

i

42 PomodoPi

anderen Seite hängt das Bewässerungssystem. Durch den gelben Schlauch gelangt

das Wasser zu einemMagnetventil, das ist das weiße Element in der Bildmitte.

Abbildung 42.6 Raspberry-Pi-auf-Gardena-Adapter

Normalerweise ist das Ventil geschlossen und lässt kein Wasser hindurch. Es besitzt

aber zwei Metallklemmen. Wird an diese Klemmen eine Spannung von 12 V ange-

legt, öffnet es sich und lässt das Wasser in einen Perlschlauch (der schwarze Schlauch

rechts im Bild) fließen, aus dem tröpfchenweise Wasser perlt. Falls Sie nicht über

einen Wasserhahn in der Nähe verfügen, verwenden Sie einfach einen größerenWas-

serkübel mit einer 12-V-Tauchpumpe anstelle des Magnetventils. Sie müssen dann

nur in gewissen Intervallen nachschauen, ob noch genugWasser im Kübel ist.

Der Raspberry Pi kann keine 12 V liefern, deshalb benötigen wir einen Zwischen-

schritt. Wir nehmen ein handelsübliches 12-V-Netzteil und ein Relaismodul (siehe

Abbildung 42.7).

Was genau macht so ein Relaismodul? Stellen Sie sich einen Lichtschalter vor. Sie

geben ihmeinen Impuls (Drückendes Schalters), und er stellt einenKontakt zwischen

zwei Leitungen her, worauf das Licht angeht. Auch das Relaismodul stellt einen Kon-

takt zwischen zwei Leitungen her, aber der Impuls wird nicht mechanisch gegeben

(wie beim Betätigen des Schalters mit der Hand), sondern elektronisch, durch Anle-

gen einer Spannung.

Bei unserem Relaismodul handelt es sich um ein Modell von Sainsmart, das speziell

auf den Betrieb amRaspberry Pi oder Arduino ausgelegt ist. Es kommt ohne die sonst

oft üblichen vorgelagerten Transistorschaltungen aus und ist sehr simpel zu nutzen.

Esmuss an Plus (5 V) undMinus angeschlossen werden, damit es überhaupt arbeiten

1060

i

i

“buch” — 2015/7/22 — 11:07 — page 1061 — #1057i

i

i

i

i

i

42

42.3 Die automatische Bewässerung

kann. Unser Modul kann zwei Verbraucher schalten, für jedes gibt es einen weiteren

Pin, IN1 und IN2 (siehe Abbildung 42.8).

Abbildung 42.7 Relaismodul von Sainsmart

Pin 6

Pin 7

Pin 25 V

Raspberry-Pi-GPIO

GND

IN1

IN2

S1 S2

5V

GND

+ 12-V-Netzteil

Raspberry-Pi-auf-Gardena-Adapter

GPIO 4

Abbildung 42.8 Arbeitsweise des Relaismoduls

1061

Page 8: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1062 — #1058i

i

i

i

i

i

42 PomodoPi

Für unser Beispiel verbindenwir IN1mit Pin 7 (GPIO4) amRaspberry Pi – andere GPIO-

Pins sind natürlich auch möglich. Wenn Sie diesen Pin auf Low schalten, erkennt das

Relaismodul dieses Signal und stellt eine Verbindung zwischen den angeschlossenen

Leitungen her. Diese gehören zu dem erwähnten 12-V-Netzteil, dessen Spannung an

den Raspberry-Pi-auf-Gardena-Adapter angelegt wird, um die Schleusen zu öffnen.

Relaissteuerung durch Python

So sieht das kurze Python-Programm aus, das Pin 7 auf Low und damit das Magnet-

ventil auf Durchfluss schaltet:

#!/usr/bin/python3

# Script -Datei pin7 -low.py

import RPi.GPIO as GPIO

import time

# Pin -Nummern verwenden (nicht GPIO -Nummern)

GPIO.setmode(GPIO.BOARD )

# wir wollen Pin 7 (=GPIO 4) schalten

GPIO.setup (7, GPIO.OUT)

GPIO.output (7, GPIO.LOW)

Um denWasserfluss zu stoppen, schalten Sie den Pin wieder aufHigh:

#!/usr/bin/python3

# Script -Datei pin7 -high .py

import RPi.GPIO as GPIO

import time

# Warnung , dass der GPIO -Kanal noch offen ist , unterdruecken

GPIO.setwarnings (False )

# Pin -Nummern verwenden (nicht GPIO -Nummern)

GPIO.setmode(GPIO.BOARD )

# wir wollen Pin 7 (=GPIO 4) schalten

GPIO.setup (7, GPIO.OUT)

GPIO.output (7, GPIO.HIGH)

GPIO.cleanup ()

Relaissteuerung automatisieren

Jetzt benötigen Sie nur noch ein einfaches Programm, das einmal pro Minute die

Bodenfeuchtigkeit ermittelt und abhängig von diesemWert das Magnetventil öffnet

oder schließt. Hier bietet es sich an, das Blumenampel-Script wiederzuverwerten und

1062

i

i

“buch” — 2015/7/22 — 11:07 — page 1063 — #1059i

i

i

i

i

i

42

42.3 Die automatische Bewässerung

anstelle der Ampel einfach die Python-Scripts aufzurufen, die das Magnetventil öff-

nen oder schließen:

#!/bin/bash

# Script -Datei

# /usr/local /shellscripts /bewaesserung /bewaesserung .sh

WDIR =/usr/local /shellscripts /bewaesserung

MOISTURE=$(cat /usr/local /shellscripts /moisturesensor /etc/

moisture -vh400 -1. text)

# zum Debugging

logger "Feuchtigkeit : $MOISTURE Prozent";

# Relaismodul /Magnetventil schalten

if [ $MOISTURE -ge 75 ]; then

# Feuchtigkeit gleich oder über 75%,

# Magnetventil ausschalten

logger "Ventil ausschalten "

$WDIR /pin7 -high.py

elif [ $MOISTURE -ge 65 ] && [ $MOISTURE -le 74 ]; then

# Feuchtigkeit zw. 65 und 75%

# nichts ändern

logger "alles im gruenen Bereich"

else

# Feuchtigkeit unter 65 %

# Magnetventil einschalten

logger "Wasser marsch "

$WDIR /pin7 -low.py

fi

Lassen Sie dieses Programm per Cron einmal pro Minute ausführen. Cron ist eine

Art Zeitschaltuhr für Programme: Sie bestimmen, wann ein bestimmtes Programm

ausgeführt werden soll, und Cron kümmert sich darum (siehe Abschnitt 4.12, »Pro-

gramme regelmäßig ausführen (Cron)«). Gesteuert wird es von einer Datei names

crontab, in der Sie die Ausführungszeiten festlegen. Geben Sie crontab -e ein, so star-

tet ein Editor und öffnet automatisch die crontab. Bewegen Sie den Cursor an das

Ende der Datei, und fügen Sie die folgende Zeile hinzu:

* * * * * /usr/local /shellscripts /bewaesserung /bewaesserung .sh

Achten Sie darauf, dass genau fünf Asteriske vor dem Kommando stehen. Sie sind

quasi die Programmierung der Zeitschaltuhr und stehen in dieser Reihenfolge für

Minute

Stunde

Tag des Monats (1 bis 31)

1063

Page 9: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1064 — #1060i

i

i

i

i

i

42 PomodoPi

Monat (1 bis 12)

Tag der Woche (0 bis 6, 0 = Sonntag)

Wenn Sie alle Werte auf * setzen, sind alle Bedingungen immer erfüllt und das Pro-

gramm startet einmal pro Minute. Da das Wasser durch den Perlschlauch relativ

langsam austritt, reicht das Messintervall von einer Minute aus. Sie müssen nicht

befürchten, dass Sie Ihre Tomatenpflanzen versehentlich ersäufen.

42.4 Photosynthese sichtbarmachen

Darüber, wie Pflanzen Energie aus Licht gewinnen, kannman längere Aufsätze schrei-

ben, in denen Begriffe wie Adenosintriphosphat, Phycobiline und Protonenpumpe

(ja, wirklich!) eine zentrale Rolle spielen. Sie werden deshalb erleichtert sein zu hören,

dass wir uns hier sämtliche Details verkneifen und nur eine Kurzfassung in genau

drei Sätzen bringen:

Grüne Pflanzen absorbieren das eingestrahlte Sonnenlicht fast vollständig, mit einer

Ausnahme: Der Grünanteil wird zurückgeworfen (»Grünlücke«, auch so ein tol-

ler Begriff). Deshalb nehmen wir die Farbe der Blätter als sattes Grün wahr. Die

übrige Strahlungsenergie befähigt die Pflanze dazu, Kohlendioxid und Wasser erst

auseinander- und dann wieder zu mehr Grünzeug zusammenzuschrauben. Weil die

Pflanze den dabei aufgenommenen Sauerstoff (das »O« in H2O und CO2) nicht in die-

ser Menge braucht, gibt sie ihn wieder an die Umwelt ab – was äußerst praktisch ist,

weil die Erde sonst primär von Schwefelbakterien bewohnt wäre.

Die Photosynthesetätigkeit ist also ein Gradmesser für die Vitalität einer Pflanze. Die

NASAmacht sich das als Teil des LandSat-Projekts zunutze, indem Satelliten aus dem

All Schäden in Waldgebieten erkennen. Um so etwas zu Hause zu machen, brauchen

wir nicht viel: eine Kamera ohne Infrarotfilter und eine zusätzliche Filterfolie, die

genau auf die gewünschte Wellenlänge eingemessen ist. Beides gibt es fix und fertig

von der Raspberry Pi Foundation, die auch denMinicomputer entworfen hat.

Die Kameravariante ohne Infrarotfilter hört auf den Namen »NoIR«. Ihr liegt ein klei-

nes Stück blauer Filterfolie bei (»Roscolux #2007 Storaro Blue«), die noch vor das

Kameraobjektiv geklebtwird. Das geht ambesten, wenn Sie der Kamera einpassendes

Gehäuse gönnen. Wir haben für unsere Experimente sowohl für den Raspberry Pi als

auch für die Kamera das Gehäuse »SmartiPi« genutzt, das aus einem gleichnamigen

Crowdfunding-Projekt entstanden ist. Inzwischen kannman es direkt beimHersteller

oder einem Importeur erwerben. Praktisch an diesem Gehäuse ist, dass es kompati-

bel zu Lego-Elementen ist und das Kameragehäuse zusätzlich eine Aufnahme für die

beliebten GoPro-Halterungen besitzt (siehe Abbildung 42.9).

1064

i

i

“buch” — 2015/7/22 — 11:07 — page 1065 — #1061i

i

i

i

i

i

42

42.4 Photosynthese sichtbar machen

Abbildung 42.9 NoIR-Kamera mit Filterfolie

Das mitgelieferte Anschlusskabel der Kamera ist für unsere Zwecke zu kurz, aber im

Handel finden Sie Ersatzkabel mit bis zu zwei Metern Länge. Die benötigte Software

ist bei Raspbian serienmäßig mit an Bord. Ein Kommando genügt, um ein Bild zu

schießen (siehe Abbildung 42.10):

raspistill -o pomodopi.jpg

Abbildung 42.10 Ein Bild aus der Pomocam

1065

Page 10: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1066 — #1062i

i

i

i

i

i

42 PomodoPi

Die Helligkeit, mit der die Blätter auf dem Bild erscheinen, ist der Gradmesser für

die Photosynthesetätigkeit. Bei starker Sonneneinstrahlung, wenn die Chloroplasten

richtig Party machen, werden die Blätter fast reinweiß angezeigt. Sinkt die Photosyn-

thesetätigkeit, erscheinen die Blätter entsprechend dunkler.

Jetzt wünschen wir Ihnen noch viel Freude beim Basteln und natürlich eine reiche

Ernte!

1066

Page 11: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

Auf einen Blick

TEIL I

Den Raspberry Pi kennenlernen ................................................................................. 19

TEIL II

Der Raspberry Pi als Media-Center ........................................................................... 281

TEIL III

Hardware-Grundlagen .................................................................................................. 351

TEIL IV

Programmierung ............................................................................................................. 625

TEIL V

Projekte .............................................................................................................................. 855

Auf einen Blick

Page 12: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 5 — #1i

i

i

i

i

i

Inhaltsverzeichnis

Inhaltsverzeichnis

Vorwort ................................................................................................................................................ 15

TEIL I Den Raspberry Pi kennenlernen

1 Kauf und Inbetriebnahme .............................................................................. 21

1.1 Kauf ........................................................................................................................................ 21

1.2 Raspberry-Pi-Distributionen ........................................................................................... 32

1.3 NOOBS-Installation ........................................................................................................... 33

1.4 Image-Datei auf eine SD-Karte schreiben .................................................................. 40

1.5 Installation auf einen USB-Stick .................................................................................... 45

2 Erste Schritte in Raspbian ................................................................................ 51

2.1 Das Konfigurationsprogrammraspi-config ............................................................... 52

2.2 Ein- und Ausschalten ........................................................................................................ 57

2.3 Die Benutzeroberfläche LXDE ......................................................................................... 58

2.4 Wichtige Programme ........................................................................................................ 64

2.5 WLAN-Konfiguration ......................................................................................................... 76

2.6 Bluetooth-Konfiguration ................................................................................................. 78

2.7 USB-Sticks und -Festplatten ............................................................................................ 79

2.8 Drucker .................................................................................................................................. 80

3 Arbeiten im Terminal ........................................................................................... 83

3.1 Erste Experimente .............................................................................................................. 83

3.2 Eingabeerleichterungen und Tastenkürzel ................................................................. 89

3.3 Farbspiele .............................................................................................................................. 92

3.4 Die Bourne Again Shell (bash) ........................................................................................ 94

3.5 Arbeitenmit Administratorrechten (sudo) ................................................................ 100

3.6 Textdateien lesen und ändern ........................................................................................ 103

3.7 Verzeichnisse und Dateien .............................................................................................. 109

5

Page 13: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 6 — #2i

i

i

i

i

i

Inhaltsverzeichnis

3.8 Komprimierte Dateien und Archive .............................................................................. 116

3.9 Prozessverwaltung ............................................................................................................. 119

3.10 Netzwerkkommandos ...................................................................................................... 125

4 Arbeitstechniken ..................................................................................................... 129

4.1 Programme installieren und verwalten ...................................................................... 130

4.2 Updates ................................................................................................................................. 133

4.3 SSH .......................................................................................................................................... 137

4.4 VNC ......................................................................................................................................... 145

4.5 Netzwerkverzeichnisse nutzen ...................................................................................... 153

4.6 Netzwerkverzeichnisse anbieten (Samba-Server) .................................................... 159

4.7 Internetzugriff auf den Raspberry Pi ............................................................................ 166

4.8 Dynamisches DNS .............................................................................................................. 170

4.9 IPv6 ......................................................................................................................................... 176

4.10 FTP-Server einrichten ........................................................................................................ 179

4.11 Programme beim Systemstart ausführen .................................................................. 182

4.12 Programme regelmäßig ausführen (Cron) ................................................................. 184

4.13 Monitor zeitgesteuert ein- und ausschalten ............................................................. 187

4.14 Backups erstellen ............................................................................................................... 188

4.15 Overclocking ........................................................................................................................ 192

4.16 Notfall-Tipps ........................................................................................................................ 195

5 Linux-Grundlagen .................................................................................................. 199

5.1 Benutzer und Gruppen ..................................................................................................... 200

5.2 Zugriffsrechte ...................................................................................................................... 208

5.3 Paketverwaltung ................................................................................................................ 214

5.4 Verwaltung des Dateisystems ........................................................................................ 217

5.5 Netzwerkkonfiguration .................................................................................................... 225

5.6 Bluetooth .............................................................................................................................. 234

5.7 Systemstart .......................................................................................................................... 236

5.8 Systemeinstellungen in config.txt ................................................................................ 246

5.9 Grafiksystem ........................................................................................................................ 251

5.10 Kernel und Module ............................................................................................................ 254

5.11 Device Trees ......................................................................................................................... 257

6

i

i

“buch” — 2015/7/22 — 11:07 — page 7 — #3i

i

i

i

i

i

Inhaltsverzeichnis

6 Ubuntu ............................................................................................................................. 261

6.1 Installation ........................................................................................................................... 262

6.2 Konfiguration und technische Details ......................................................................... 264

7 Windows10 ................................................................................................................. 269

7.1 Installation ........................................................................................................................... 269

7.2 Anwendung ......................................................................................................................... 272

7.3 Programmentwicklungmit Visual Studio .................................................................. 274

TEIL II Der Raspberry Pi als Media-Center

8 Audio-Playermit Smartphone-Fernbedienung ........................... 283

8.1 MPD-Installation und -Konfiguration .......................................................................... 284

8.2 MPD-Konfigurationsvarianten ....................................................................................... 289

8.3 HiFiBerry ............................................................................................................................... 299

8.4 Volumio ................................................................................................................................. 302

8.5 Pi MusicBox .......................................................................................................................... 306

9 Multimedia-Centermit Kodi und OpenELEC .................................. 309

9.1 OpenELEC-Installation und -Konfiguration ................................................................ 310

9.2 Fernbedienung .................................................................................................................... 321

9.3 Kodi-Betrieb ......................................................................................................................... 326

10 Multimedia-Systemmit Plex ........................................................................ 335

10.1 Kodi oder Plex? .................................................................................................................... 335

10.2 Plex-Server-Konfiguration ............................................................................................... 338

10.3 RasPlex-Installation und -Konfiguration ..................................................................... 341

10.4 Plex-Anwendung ................................................................................................................ 348

7

Page 14: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 8 — #4i

i

i

i

i

i

Inhaltsverzeichnis

TEIL III Hardware-Grundlagen

11 Hardware-Einstieg ................................................................................................. 353

11.1 Platinenaufbau ................................................................................................................... 353

11.2 Der BCM2836 ...................................................................................................................... 354

11.3 GPIO-Kontakte .................................................................................................................... 356

11.4 Stromversorgung ............................................................................................................... 363

11.5 Gehäuse ................................................................................................................................ 371

12 Elektrotechnik-Crashkurs ................................................................................ 375

12.1 Strom, Spannung und das ohmsche Gesetz .............................................................. 375

12.2 Grundschaltungen ............................................................................................................. 377

12.3 Elektronische Grundbauteile .......................................................................................... 382

12.4 Das Multimeter ................................................................................................................... 387

12.5 Breadboard oder Platine? ................................................................................................ 390

12.6 Löten ...................................................................................................................................... 392

12.7 Breadboardadapter ........................................................................................................... 394

13 LEDs,Motoren und Relais ................................................................................ 399

13.1 Leuchtdioden (LEDs) .......................................................................................................... 399

13.2 Optokoppler ......................................................................................................................... 417

13.3 Elektromotoren ................................................................................................................... 418

13.4 Schrittmotoren ................................................................................................................... 431

13.5 Servomotoren ...................................................................................................................... 441

13.6 Relais ...................................................................................................................................... 446

14 Bussysteme .................................................................................................................. 451

14.1 SPI ........................................................................................................................................... 451

14.2 Der Analog-/Digitalwandler MCP3008 ....................................................................... 460

14.3 Der Digital-/Analogwandler MCP4811 ........................................................................ 465

14.4 I2C ........................................................................................................................................... 471

14.5 UART ....................................................................................................................................... 480

14.6 Der Audiobus I2S ................................................................................................................ 486

14.7 1-Wire .................................................................................................................................... 487

8

“buch” — 2015/8/5 — 13:42 — page 9 — #5

Inhaltsverzeichnis

15 Sensoren ......................................................................................................................... 489

15.1 PIR-Bewegungssensor ...................................................................................................... 489

15.2 Ultraschallsensor ................................................................................................................ 493

15.3 Wasserstandssensor .......................................................................................................... 496

15.4 Bodenfeuchtigkeitssensor ............................................................................................... 497

15.5 Temperatursensoren ......................................................................................................... 502

15.6 Fotowiderstand ................................................................................................................... 509

15.7 Das Multi-Analogsensor-Board PCF8591 .................................................................... 511

15.8 Raspberry Pi Camera Board und PiNoIR ...................................................................... 514

15.9 Reed-Kontakt ....................................................................................................................... 527

15.10 Hardware Real Time Clock ............................................................................................... 528

15.11 IR-Empfänger ....................................................................................................................... 533

15.12 Leitfaden für fremde Sensoren ...................................................................................... 534

16 Erweiterungsboards ............................................................................................. 537

16.1 Das Gertboard ..................................................................................................................... 538

16.2 Der ATmega auf demGertboard ................................................................................... 553

16.3 Logic-Level-Converter ........................................................................................................ 558

16.4 RasPiComm .......................................................................................................................... 559

16.5 PiFace Digital 2 .................................................................................................................... 562

16.6 Quick2Wire Interface Board ............................................................................................ 568

16.7 Unterbrechungsfreie Stromversorgungmit der PiUSV+ ........................................ 572

16.8 GertDuino ............................................................................................................................. 575

16.9 Raspberrry-Pi-HATs ............................................................................................................ 580

16.10 Adafruit PWM/Servo-HAT ............................................................................................... 585

16.11 BrickPi .................................................................................................................................... 589

16.12 GrovePi .................................................................................................................................. 591

17 Displays ........................................................................................................................... 593

17.1 7-Segment-Anzeige ........................................................................................................... 593

17.2 16�2-LC-Display ................................................................................................................ 597

17.3 RaspiLCD ............................................................................................................................... 602

17.4 PiTFT – Der Touchscreen für den Raspberry Pi ........................................................... 609

17.5 Kfz-Rückfahrmonitore ...................................................................................................... 614

17.6 LS-7T – Der Plug&Play-Touchscreen ............................................................................. 618

17.7 Weitere Display-Boards .................................................................................................... 622

9

Page 15: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 10 — #6i

i

i

i

i

i

Inhaltsverzeichnis

TEIL IV Programmierung

18 Python kennenlernen ......................................................................................... 627

18.1 Python ausprobieren ......................................................................................................... 628

18.2 Python-Konzepte interaktiv kennenlernen ................................................................ 630

18.3 Hello World! ......................................................................................................................... 640

19 Python-Grundlagen .............................................................................................. 647

19.1 Elementare Syntaxregeln ................................................................................................ 647

19.2 Variablen und Objekte ...................................................................................................... 653

19.3 Operatoren ........................................................................................................................... 663

19.4 Verzweigungen (if) ............................................................................................................. 666

19.5 Schleifen (for und while) .................................................................................................. 668

19.6 Zeichenketten ..................................................................................................................... 674

19.7 Listen ...................................................................................................................................... 680

19.8 Umgangmit Fehlern (Exceptions) ................................................................................. 683

19.9 Funktionen ........................................................................................................................... 689

19.10 Objektorientiertes Programmieren .............................................................................. 699

19.11 Systemfunktionen ............................................................................................................. 711

20 Programmierenmit Python ........................................................................... 715

20.1 Programmieren lernen ..................................................................................................... 715

20.2 GPIO-Zugriff ......................................................................................................................... 720

20.3 Reset/Shutdown-Taste ..................................................................................................... 726

20.4 Kamera .................................................................................................................................. 728

20.5 Dateien bei Dropbox hochladen .................................................................................... 732

20.6 E-Mails versenden .............................................................................................................. 735

20.7 Textdateien lesen und schreiben ................................................................................... 737

20.8 Grafikprogrammierung .................................................................................................... 742

20.9 Grafische Benutzeroberflächenmit tkinter ............................................................... 754

21 bash-Programmierung ....................................................................................... 769

21.1 Einführung ........................................................................................................................... 769

21.2 Variablen ............................................................................................................................... 773

10

i

i

“buch” — 2015/7/22 — 11:07 — page 11 — #7i

i

i

i

i

i

Inhaltsverzeichnis

21.3 Schleifen, Bedingungen und Funktionen .................................................................... 778

21.4 WiringPi ................................................................................................................................. 789

22 C-Programmierung ................................................................................................ 795

22.1 Hello World! ......................................................................................................................... 795

22.2 GPIOs steuern ...................................................................................................................... 799

23 Java-Programmierung ........................................................................................ 803

23.1 Erste Schritte ....................................................................................................................... 803

23.2 GPIO-Steuerungmit Java ................................................................................................. 806

24 PHP-Programmierung ........................................................................................ 811

24.1 Apache installieren und konfigurieren ........................................................................ 812

24.2 Webverzeichnisse einrichten und absichern ............................................................. 814

24.3 HTTPS ..................................................................................................................................... 820

24.4 PHP installieren und konfigurieren .............................................................................. 822

24.5 MySQL installieren und administrieren ....................................................................... 823

24.6 Hello World! in PHP ........................................................................................................... 828

24.7 GPIO-Programmierungmit PHP .................................................................................... 830

24.8 Kamerafunktionenmit PHP nutzen ............................................................................. 833

25 Mathematicaund dieWolfram Language ....................................... 837

25.1 Arbeitenmit Mathematica ............................................................................................. 838

25.2 Programmierenmit der Wolfram Language .............................................................. 844

25.3 Grafische Darstellung von Temperaturdaten ............................................................ 851

TEIL V Projekte

26 Der Raspberry Pi im Vogelhaus .................................................................. 857

26.1 Einbau des Raspberry Pi samt Kameramodul in ein Vogelhaus ........................... 857

26.2 Kamerapraxis ....................................................................................................................... 860

26.3 Bewegungserkennungmit motion ............................................................................... 864

26.4 Das Vogelhaus im praktischen Einsatz ........................................................................ 867

11

Page 16: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 12 — #8i

i

i

i

i

i

Inhaltsverzeichnis

27 Zeitmessungmit Lichtschranken .............................................................. 871

27.1 Versuchsaufbau (Hardware) ........................................................................................... 871

27.2 Software ................................................................................................................................ 874

28 Das autonomeAuto ............................................................................................. 877

28.1 Hardware .............................................................................................................................. 877

28.2 Die Software ........................................................................................................................ 886

29 RFID-Türöffnermit Zutrittskontrolle ..................................................... 891

29.1 RFID-Hardware .................................................................................................................... 892

29.2 Software ................................................................................................................................ 895

29.3 Erweiterungsmöglichkeiten und Tipps ....................................................................... 901

30 Stromzähler auslesen ......................................................................................... 903

30.1 Stromzähler-Grundlagen ................................................................................................. 903

30.2 Einführung in RRDtool ...................................................................................................... 907

30.3 Zählerdaten speichern und zu Graphen aufbereiten .............................................. 912

31 Hausautomationmit Netzwerksteckdosen .................................... 915

31.1 Einführung ........................................................................................................................... 915

31.2 Programmierung ................................................................................................................ 917

32 Hausautomationmit 433-MHz-Funktechnologie ..................... 929

32.1 Hardware-Grundlagen ..................................................................................................... 929

32.2 Software und Steuerungsbeispiele .............................................................................. 932

33 Ort und Zeit per GPS empfangen ............................................................. 941

33.1 Haben Sie Zeit? Eine Uhr für den Raspberry Pi .......................................................... 941

33.2 Ortsbestimmungmit dem Raspberry Pi ..................................................................... 950

34 Der Raspberry Pi lernt twittern .................................................................. 955

34.1 Voraussetzungen ................................................................................................................ 955

34.2 Programmierung ................................................................................................................ 957

12

i

i

“buch” — 2015/7/22 — 11:07 — page 13 — #9i

i

i

i

i

i

Inhaltsverzeichnis

35 Monitoring ................................................................................................................... 963

35.1 Munin .................................................................................................................................... 963

35.2 SmokePing ............................................................................................................................ 968

36 Raspberry Pi-ratensender ................................................................................ 975

36.1 FM-Transmitter einrichten .............................................................................................. 975

37 WLAN-, IPv6- und Tor-Router ....................................................................... 977

37.1 Einführung ........................................................................................................................... 977

37.2 WLAN-Access-Point ........................................................................................................... 980

37.3 WLAN-Router ....................................................................................................................... 986

37.4 WLAN-Repeater .................................................................................................................. 994

37.5 IPv6-Router .......................................................................................................................... 998

37.6 Tor-Router ............................................................................................................................. 1005

38 AirPrint-Drucker selbst gemacht ............................................................... 1011

38.1 Voraussetzungen ................................................................................................................ 1011

38.2 AirPrint-Konfiguration ...................................................................................................... 1015

39 Automatische Präsentationssysteme ................................................... 1019

39.1 Einführung ........................................................................................................................... 1019

39.2 Werkzeugkasten ................................................................................................................. 1022

39.3 Autonome Bilder-Projektion ........................................................................................... 1026

39.4 Video-Player mit Menü ..................................................................................................... 1030

40 Luftraumüberwachung ..................................................................................... 1037

40.1 Technischer Hintergrund und Hardware ..................................................................... 1037

40.2 Software ................................................................................................................................ 1038

41 Die Servokamera ..................................................................................................... 1043

41.1 Die Hardware ....................................................................................................................... 1044

41.2 Die Python-Software ......................................................................................................... 1044

41.3 Die Streaming-Software ................................................................................................... 1046

41.4 Die Weboberfläche ............................................................................................................ 1048

41.5 Inbetriebnahme .................................................................................................................. 1049

13

Page 17: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 14 — #10i

i

i

i

i

i

Inhaltsverzeichnis

42 PomodoPi ....................................................................................................................... 1051

42.1 Der Bodenfeuchtigkeitssensor ....................................................................................... 1051

42.2 Die Blumenampel .............................................................................................................. 1058

42.3 Die automatische Bewässerung .................................................................................... 1060

42.4 Photosynthese sichtbar machen ................................................................................... 1064

43 Wassermeldermit Handyalarm ................................................................. 1067

43.1 Hardware .............................................................................................................................. 1067

43.2 Pushbullet ............................................................................................................................ 1068

Index ................................................................................................................................................. 1073

14

Page 18: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1073 — #1069i

i

i

i

i

i

Index

Index

1-Wire .............................................................. 4871-Wire-Sensor

PHP ............................................................ 832Python ....................................................... 765

16x2 Display ................................................... 5971st-Stage-Bootloader .................................... 236230V-Verbraucher ......................................... 9152708-Chip-Familie ........................................ 2582709-Chip-Familie ........................................ 2582835-Chip ......................................................... 222836-Chip ......................................................... 22433MHz - Funktechnologie ......................... 9297805 (Linerarregler) ...................................... 3677zr .................................................................... 1178188eu-Kernelmodul ................................... 232

.htaccess-Datei .............................................. 820/boot-Verzeichnis ......................................... 236/boot/config.txt ............................................ 246/dev/vchiq-Datei ........................................... 833/etc/X11/xorg.conf ........................................ 252/etc/anacrontab ............................................ 187/etc/apt/sources.list ..................................... 215/etc/fstab ........................................................ 222

Netzwerkverzeichnisse ............................ 157/etc/group ...................................................... 203/etc/hostname .............................................. 233/etc/inittab .................................................... 240

serielle Konsole deaktivieren .................. 946/etc/lightdm/lightdm.conf ................. 207, 253/etc/login.defs ............................................... 213/etc/modules ................................................. 255/etc/motion/motion.conf ........................... 864/etc/network/interfaces .............................. 228

WLAN-Access-Point .................................. 982WLAN-Router ............................................ 988

/etc/ntp.conf ................................................. 942/etc/passwd ................................................... 201/etc/rc.local .................................................... 182/etc/resolv.conf ..................................... 126, 232/etc/samba/smb.conf ................................... 159/etc/shadow ................................................... 202/etc/sudoers .................................................. 206/etc/sysctl.conf .............................................. 990/etc/tor/torrc ............................................... 1008/lib/modules .................................................. 254/proc/cpuinfo ................................................ 249

A

AA-Batterien .................................................. 366aaline (pygame) ............................................ 745Abiword ............................................................ 74Abkürzungen (alias) ....................................... 91Abstürze ........................................................... 57Access Point .................................................. 980Access-Point .................................................. 977add_event_detect ......................................... 723add_event_callback ..................................... 724adduser .......................................................... 205ADS-B-System ............................................. 1037ADSL-Router .................................................. 166after (tkinter) ................................................. 762Agent (Plex) ................................................... 338AirPlay .................................................... 304, 306

Kodi ............................................................ 333Volumio ..................................................... 302

AirPrint ........................................................ 1011Akku-Stromversorgung ............................... 364alias ................................................................... 91Alias (Apache) ................................................ 816ALSA ................................................................ 285alsa-utils ......................................................... 976AM2302 .......................................................... 505amixer ............................................................ 287Anacron ......................................................... 186Analog-Audio

ALSA ........................................................... 285Audio-Player ............................................... 71einschalten ................................................ 287HiFiBerry ................................................... 299MPD ........................................................... 283

Analog/Digitalwandler ................................ 460Analogsensoren ............................................ 511Anonyme Funktionen (Python) ................. 697Anonymisierdienst (Tor) ........................... 1005Anschlüsse ....................................................... 24Anti-Aliasing (pygame) ................................ 745Apache ............................................................ 812Apple

AirPlay ...................................... 304, 306, 333AirPrint .................................................... 1011ApplePi-Baker ............................................. 42Fernbedienung .......................................... 324Image-Datei schreiben .............................. 42

1073

Page 19: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1074 — #1070i

i

i

i

i

i

Index

APT .................................................................. 214apt-cache ........................................................ 131apt-get ............................................................ 130Archive

tar .............................................................. 118zip .............................................................. 119

ArduinoGertboard .................................................. 553GrovePi ...................................................... 591IDE ............................................................. 556

arecord ........................................................... 976argv (Python) ................................................ 711arm_freq ........................................................ 193ARMv7-Architektur ...................................... 354Arrays (bash) ................................................. 776asound.state-Datei ....................................... 288Assoziative Arrays (bash) ............................ 776Assoziative Felder (Python) ........................ 639Attribute (Python) ........................................ 699Audio

Streams (Icecast) ...................................... 296Audio-Ausgang ................................................ 71Audio-Player

Kodi ............................................................ 332LXMusic ....................................................... 71MPD ........................................................... 283

Audiobus ........................................................ 486Ausgabeumleitung ......................................... 96Ausschalten ..................................................... 57Auto-Login ............................................ 207, 253Automones Auto .......................................... 877Autostart ............................................. 182, 1024autostart-Verzeichnis .................................. 183Avahi ............................................................. 1017avconv ............................................................ 863avrsetup ......................................................... 554

B

Backpower ..................................................... 370Backups .......................................................... 188

SD-Karte .................................................... 190bash

im Terminal ................................................. 94Programmierung ..................................... 769

Basiswiderstand ........................................... 402Batteriebetrieb .............................................. 366Bauteile (elektronische) ............................... 382BCM-Nummerierung ................................... 357BCM2708 ........................................................ 258BCM2709 ........................................................ 258BCM2835 .......................................................... 22

bcm2835-Bibliothek (C) ................................ 801BCM2836 .................................................. 22, 354Benutzer ........................................................ 200Bewegungserkennung ................................. 864Bewegungssensor ......................................... 489bg ....................................................................... 97Bilder anzeigen ..................................... 71, 1022Bildschirmdarstellung optimieren ............ 616Bildschirmprobleme .................................... 196Bildschirmschoner ................................. 63, 187bind (tkinter) ................................................. 760Bipolarer Schrittmotor ................................ 432Bitmap speicher (pygame) .......................... 747blacklist .......................................................... 255blit (pygame) ................................................. 746Bluetooth

manuelle Konfiguration .......................... 234OpenELEC .................................................. 314Plex ............................................................ 346Raspbian ..................................................... 78

Bodenfeuchtigkeitssensor .......................... 497boot-Verzeichnis .................................. 236, 258bootcode.bin ................................................. 237Bootloader ..................................................... 236Bootoptionen ................................................ 238Bootprozess ................................................... 236

config.txt ................................................... 249bouncetime ................................................... 724

alternative Lösung ................................. 1033Bourne Again Shell ......................................... 94Brace Expansion (bash) ............................... 778Brachistochrone ........................................... 871Breadboard .................................................... 390Breadboardadapter selber bauen ............... 394break (bash) ................................................... 786break (Python) .............................................. 668BrickPi ............................................................ 589Broadcast-Adresse ........................................ 226bunzip2 .......................................................... 117Bussysteme (Bussysteme) ........................... 451bzip2 ............................................................... 117

C

C (Programmiersprache) ............................. 795C-Berry ........................................................... 622call (Python) .................................................. 713Callback .......................................................... 409Callback-Funktion (Python) ........................ 724case (bash) ..................................................... 782cat ................................................................... 103cd .................................................................... 109

1074

i

i

“buch” — 2015/7/22 — 11:07 — page 1075 — #1071i

i

i

i

i

i

Index

CEC-Fernbedienung ..................................... 321Chassis ........................................................... 877check_output ................................................ 713chgrp .............................................................. 212Chicken (VNC) ............................................... 147chmod ............................................................ 642chown ............................................................. 212chvt-Kommando .......................................... 188CIFS ................................................................. 291circle (pygame) .............................................. 745Class-4/6/10 (SD-Karten) ............................... 28cleanup (Python) .......................................... 722Clock-Signal ................................................... 975cmdline.txt .................................................... 238

serielle Konsole deaktivieren .................. 945Cobbler .................................................. 362, 396collabora-Paketquelle .................................. 216config.piusv-Datei ........................................ 574config.txt ....................................................... 237

Beschreibung der Optionen .................... 246Device Trees .............................................. 258Display-Optionen ..................................... 197OpenELEC .................................................. 317Overclocking ............................................. 193RasPlex ...................................................... 345sicher ändern ............................................ 197

console (Kerneloption) ................................ 238continue (bash) ............................................. 786continue (Python) ........................................ 668convert ......................................................... 1022convert (imagemagick) ................................ 953Cover-Art (MPD) ........................................... 294cp ..................................................................... 114CPU-ID ............................................................ 249cpuinfo-Datei ................................................ 249Cron ................................................................ 184

Temperatur protokollieren ..................... 852CSV-Dateien (Python) .................................. 739CUPS ................................................................. 80

AirPrint .................................................... 1011curl .................................................................. 128

D

DAC für Audio-Signale ................................. 299Dämonen ....................................................... 124Darlington-Transistor .................................. 403Dateien

auflisten .................................................... 111komprimieren ........................................... 117kopieren .................................................... 114löschen ...................................................... 114

mit Python verarbeiten ........................... 737suchen ....................................................... 113

Dateimanager ................................................. 64mit root-Rechten ...................................... 101

Dateisystem ................................................... 217DateListPlot (Mathematica) ........................ 853Datentypen (Python) ................................... 657Datum ............................................................ 941Deadline-Scheduler ...................................... 239Debian .............................................................. 51decode_MPG2 ....................................... 248, 318decode_WVC1 ....................................... 248, 318Decoder .......................................................... 248

MPEG-2, VC-1 ............................................. 317Defaulteditor ................................................. 106Dekorator (Python) ...................................... 702Desktop ............................................................ 58desktop-Datei .............................................. 1024dev-Verzeichnis ............................................ 218Device-Dateien ............................................. 218Device-Trees .................................................. 257device_tree-Parameter ................................ 258DeviceOpen (Wolfram) ................................ 850DeviceRead (Wolfram) ......................... 848, 850DeviceWrite (Wolfram) ................................ 848DHCP ...................................................... 225, 991

udhcpd ....................................................... 991DHT22 ............................................................. 505Dia-Show ..................................................... 1019Dictionaries (Python) .................................. 639

Schleifen .................................................... 671zip .............................................................. 683

Digital-/Analogwandler ............................... 465DAC für Audio-Signale ............................. 299

Digitales Potentiometer .............................. 454dimmen (LEDS) ............................................. 410Diode .............................................................. 382Directory (Apache) ....................................... 815disable_camera_led ..................................... 249dism.exe ......................................................... 270DisplayManager ........................................... 251Displays .......................................................... 593

C-Berry ....................................................... 622DSI-Display ............................................... 624HDMIPi-Display ....................................... 623Kfz-Rückfahrmonitor ............................... 614PiTFT .......................................................... 609Probleme ................................................... 196RaspiLCD ................................................... 602RCA-Monitor ............................................. 614RPi-Display ................................................ 623SainSmart-TFT-Display ........................... 623

1075

Page 20: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1076 — #1072i

i

i

i

i

i

Index

Touchscreen .............................................. 618Zeilendisplay ............................................. 597

Distribution ..................................................... 32DLNA

Audio-Dateien (MPD) .............................. 304Video-Dateien (Kodi) ............................... 329

dmrc-Datei .................................................... 252DNS ................................................................. 170DocumentRoot-Verzeichnis ....................... 813dpkg ................................................................ 132DPMS ................................................................ 63Dropbox (Python) ........................................ 732Drucker ............................................................ 80

AirPrint .................................................... 1011Geschwindigkeit erhöhen ..................... 1014

DS1307 ............................................................ 528DS1820 ............................................................ 502

Temperaturkurve (pygame) .................... 751Temperaturkurve (Wolfram Language) 851

DS18B20 ......................................................... 505DSI-Anschluss ............................................... 624DTB-Dateien .................................................. 258dtoverlay ........................................................ 258dtparam ......................................................... 258du .................................................................... 110Dump1090 .................................................. 1038Durchgangsprüfung .................................... 389Duty Cycle ..................................................... 410DVB-T-Empfänger ....................................... 1037Dynamisches DNS ........................................ 170

E

E-Mail versenden (Python) ......................... 735Edimax-WLAN-Adapter ............................... 985Editor

Defaulteditor einstellen ........................... 106mit root-rechten ....................................... 101

Editoren ................................................... 66, 105EEPROM ......................................................... 581Ein-/Ausschalten ............................................. 57Eingabe (Python) .......................................... 650Eingabeumleitung .......................................... 96Einschaltprozess (Bootvorgang) ................ 236Elektromotor ................................................. 418Elektronik-Grundkurs ................................. 375elevator (Kerneloption) ............................... 239elif (Python) .................................................. 666else (Python) ................................................. 666Entprellen von Tastern ..................... 723, 1033

EntwicklungsumgebungArduino ..................................................... 556Java ............................................................ 804Python ....................................................... 629

Epiphany .......................................................... 68eq-Methode (Python) ................................... 707Ereignisse (tkinter) ....................................... 760Error

bash ........................................................... 787Python ....................................................... 683

Erweiterungsboards ..................................... 537ESD .................................................................. 363event_detected ............................................. 723Events ............................................................. 409EW-7811UN (Edimax-WLAN-Adapter) ........ 985Exceptions (Python) .................................... 683exec (PHP) ...................................................... 831exit

bash ........................................................... 788Python ....................................................... 712

export (bash) ................................................. 775Export (Mathematica) ................................. 843ext4-Dateisystem ......................................... 217Extended Sequence Unpacking ................. 666

F

fbi .................................................................... 520fdisk .................................................................. 47Fehler

bash ........................................................... 787Python ....................................................... 683

Felder (bash) .................................................. 776Fernbedienung (Kodi) .................................. 321feste Links ...................................................... 115ffmpeg ............................................................ 976FFU-Datei ....................................................... 270file (Python) .................................................. 738file_get_contents (PHP) .............................. 832filter (Python) ............................................... 682find ................................................................. 113Firefox .............................................................. 69Firmware ........................................................ 237

Update ....................................................... 134Flugsicherung ............................................. 1037FM-Transmitter ............................................. 975

Mikrofon ................................................... 976pifm ........................................................... 976

Fonts vonMicrosoft ....................................... 70for (bash) ........................................................ 783for (Python) ................................................... 668force_turbo ................................................... 194

1076

i

i

“buch” — 2015/7/22 — 11:07 — page 1077 — #1073i

i

i

i

i

i

Index

format (Zeichenketten) ............................... 676Formatierung ................................................ 223Forwarding

IP-Forwarding .......................................... 990IPv6-Forwarding .................................... 1003Port Forwarding ....................................... 172

Fotosanzeigen .................................................. 1022aufnehmenmit Python ........................... 728bei Dropbox hochladen ........................... 734per Mail versenden .................................. 736

Fototransistor ............................................... 871Fotowiderstand ............................................. 509Freigaben (Netzwerkverzeichnisse) 153, 159

Freischaltung I2C-Bus .................................. 472Fremde Sensoren (Sensoren) ...................... 534fstab-Datei ..................................................... 222FTP .......................................................... 127, 179

Kamera-Upload ........................................ 523Verzeichnis synchronisieren ................. 1027

Full Flash Update .......................................... 270function (bash) ............................................. 786Funksendemodul ......................................... 930Funksteckdosen ............................................ 931Funktionales Programmieren

Python ....................................................... 698Wolfram Language .................................. 846

Funktionen (Python) ................................... 689future (Python) ............................................. 742

G

Garbace Collection (Python) ....................... 661Gateway .......................................................... 227gcc ................................................................... 795Geany ............................................................. 804Gedit ................................................................. 67Gehäuse ................................................... 29, 371Geografische Breite/Länge ......................... 950Gertboard ...................................................... 538

A/D-Wandler ............................................. 549Arduino IDE .............................................. 556ATmega ..................................................... 553D/A-Wandler ............................................. 551digitale Ein-/Ausgänge ............................ 543Inbetriebnahme ....................................... 539Motortreiber ............................................. 545Open-Collector-Treiber ............................ 545Spezifikationen ......................................... 538Taster ......................................................... 540

Geschwindigkeitsmessung ......................... 871Getter-Methoden (Python) ......................... 705

GhostScript ................................................. 1014globale Variablen (Python) ......................... 692Gnumeric ......................................................... 74gogoc-Installation ........................................ 176gpicview ........................................................... 71GPIO ............................................................... 353

bash ........................................................... 789C ................................................................. 799Cmit bcm2835-Bibliothek ....................... 801Cmit WiringPi .......................................... 799Java ............................................................ 806Nummerierungssysteme ......................... 357PHP ............................................................ 830Pinbelegung .............................................. 356Python ....................................................... 720Wolfram Language .................................. 848

gpio-Kommando .......................................... 790GpioController .............................................. 806GpioPinDigitalInput .................................... 809GpioPinDigitalOutput ................................. 806GpioPinPwmOutput .................................... 808GpioSetStateTrigger ..................................... 809GPS .................................................................. 941

Modul ........................................................ 944Ortsbestimmung ...................................... 950Shield ......................................................... 944

gpsd ................................................................ 946GPT-Partitionen ............................................ 223GPU-Firmware .............................................. 237gpu_freq ........................................................ 193gpu_mem ...................................................... 250Grafikprogrammierung (Python) .............. 742Grafiksystem ................................................. 251

Autostart ................................................... 252HDMI ......................................................... 247

Grafiktreiber ................................................. 253Grafische Benutzeroberflächen ................. 754grep ................................................................. 104

mit find kombiniert ................................. 114grid (tkinter) .................................................. 758GrovePi ........................................................... 591Gruppen ......................................................... 200gunzip ............................................................ 117gzip ................................................................. 117

H

H-Brücke ........................................................ 421halt-Kommando ................................... 243, 726Hard-Reset ..................................................... 726Hardware-Decoder ....................................... 248Hardware-PWM ............................................ 412

1077

Page 21: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1078 — #1074i

i

i

i

i

i

Index

HATs ............................................................... 580Device-Trees .............................................. 257EEPROM .................................................... 581Prototyping ............................................... 580

Hausautomation .......................................... 929HCSR04 .......................................................... 493HDMI-Einstellungen .................................... 247HDMIPi .......................................................... 623HelloWorld

bash ........................................................... 769C ................................................................. 795Java ............................................................ 803PHP ............................................................ 828pygame ...................................................... 743Python ....................................................... 640tkinter ........................................................ 754Windows IoT/C Sharp .............................. 275Wolfram Language .................................. 844

HiFiBerry ....................................................... 299Hintergrundprozesse ..................................... 97hostapd .......................................................... 983Hostname ...................................................... 226

ändern in /etc/hostname ........................ 233ändern mit raspi-config ............................ 55

HP-Toolbox ................................................. 1013hplip-gui ...................................................... 1013httpd.conf-Datei ........................................... 813HTTPing ......................................................... 926HTTPS ............................................................. 820

I

I2C ........................................................... 360, 471Bus 0 .......................................................... 473in Python ................................................... 478

i2c-tools .......................................................... 474i2cdetect ......................................................... 474i2cget .............................................................. 477i2cset .............................................................. 476I2S .................................................................... 486

DAC ............................................................ 299IC ..................................................................... 405Icecast ............................................................ 296Icedove ............................................................. 69Iceweasel .......................................................... 69Icons (LXDE) .................................................... 59IDE

Arduino ..................................................... 556Java ............................................................ 804Python ....................................................... 629

IDLE (Python) ....................................... 629, 644

if (bash) .......................................................... 779if (Python) ...................................................... 666ifdown ............................................................ 230ifup ................................................................. 230Image-Datei ..................................................... 40

Apple/OS X .................................................. 42Linux ............................................................ 44Windows ...................................................... 41

imagemagick ...................................... 953, 1022Immutable Types (Python) ......................... 655import (Python) ............................................ 651info .................................................................... 88Infrarotemfänger ......................................... 533Infrarotscheinwerfer ................................... 525init-Kommando ............................................ 243Init-System .................................................... 240init.m (Mathematica) ................................... 844init_uart_baud ............................................. 249init_uart_clock ............................................. 249inittab-Datei .................................................. 240

serielle Konsole deaktivieren .................. 946input (Python) ...................................... 650, 722insserv ................................................... 125, 244Installation

auf einen USB-Stick .................................... 45Image-Datei ................................................ 40NOOBS ......................................................... 33

Instanzen (Python) ...................................... 699Intelligente Schrittmotortreiber ................ 438interfaces ....................................................... 228interfaces-Datei

WLAN-Access-Point .................................. 982WLAN-Router ............................................ 988

Internet-Freigabe ......................................... 986Internet-Radio

Kodi ............................................................ 333Volumio ..................................................... 302

Internetzugriff .............................................. 166IP-Adresse ...................................................... 225

ermitteln ................................................... 125IP-Forwarding

IPv4 ............................................................ 990IPv6 .......................................................... 1003

ip-Kommando .............................................. 125iptables ........................................................... 990IPv6 ................................................................. 176

aktivieren .................................................. 176Router ........................................................ 998Tunnel einrichten ..................................... 176

IR-Fernbedienung ........................................ 323items (Python) .............................................. 671Iterator (Python) ........................................... 681

1078

i

i

“buch” — 2015/7/22 — 11:07 — page 1079 — #1075i

i

i

i

i

i

Index

J

J8-Header ................................................. 25, 356Java .................................................................. 803Jessie ................................................................. 51jmacs (Editor) ................................................ 108Jokerzeichen .................................................... 95JTAG ................................................................ 360Jumperwire .................................................... 362

K

Kamerabash ........................................................... 769ISO-Einstellung ......................................... 862LED deaktivieren ...................................... 860PHP ............................................................ 833Python ....................................................... 728Ubuntu ...................................................... 267Wolfram Language .................................. 849

Kanal (Plex) ................................................... 338Kernel ............................................................. 254

Bootoptionen ........................................... 238Mathematica ............................................ 844Parameter ................................................. 238Update ....................................................... 134

kernel.img-Datei .................................. 134, 239kernel7.img-Datei ......................................... 239Key/Value-Paar (Python) ............................. 671KeyboardInterrupt (Python) ....................... 688kill ................................................................... 123killall ............................................................... 123Klassen (Python) .......................................... 699Kodi ........................................................ 309, 326Kombinierte Schaltung ............................... 379Kommandos

ausführen (bash-Scripts) ......................... 771automatisch ausführen ................ 182, 1024im Hintergrund ausführen ........................ 97mehrere Kommandos ausführen ............. 97mit root-Rechten ausführen ................... 100regelmäßig ausführen ............................. 184verknüpfen .................................................. 98

Kommandosubstitution ............................... 98Komponentenübersicht .............................. 353Kondensator .................................................. 384Konsole ............................................................. 91Konstruktor ................................................... 702Kontext-Manager (Python) ......................... 687

L

L298 ................................................................ 423Löten .............................................................. 392

Lambda-Funktion (Python) ................ 681, 697LC-Display ..................................... 597, 602, 609

le-Methode (Python) .................................... 707Leafpad ............................................................. 66LeafPad (Editor) ............................................ 641

LED ......................................................... 382, 399auf dem Raspberry Pi ............................... 197

dimmen ..................................................... 410less .................................................................. 103Leuchtdioden ........................................ 382, 399

auf dem Raspberry Pi ............................... 197lftp ........................................................ 127, 1027

LibreOffice ....................................................... 74librtlsdr-Fehlermeldung ........................... 1039Lichtschranke ................................................ 871

lightdm .......................................................... 251lightdm.conf ......................................... 207, 253

line (pygame) ................................................ 745Line Follower ................................................. 878Linearregler 7805 .......................................... 367

Liniensensor ................................................. 878Link Power Management ............................ 238

Links ............................................................... 115lirc_rpi-Modul ............................................... 326lircd.conf ........................................................ 323

List Comprehension (Python) .................... 670listdir (Python) .............................................. 673

Listen (Python) ..................................... 635, 680Livestream ..................................................... 523LM2596S-Schaltregler .................................. 368

Lochrasterplatine ......................................... 391Logger ............................................................ 920

Logic-Analyzer .............................................. 446Lokale Variablen (Python) ........................... 691Loopback-Schnittstelle ................................ 226

lp-Kommando ............................................ 1013LPM ................................................................. 238

ls ...................................................................... 111Farben .......................................................... 93

LS-7T ............................................................... 618

lsmod ............................................................. 254lt-Methode (Python) .................................... 707Luftdruck ....................................................... 508

Luftfeuchtigkeitssensor .............................. 505Luftraumüberwachung ............................. 1037

LXDE ................................................................. 58lxde-rc.xml ...................................................... 61

1079

Page 22: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1080 — #1076i

i

i

i

i

i

Index

LXMusic ........................................................... 71LXTerminal ................................................ 65, 83

Farben .......................................................... 92lzop ................................................................. 117

M

MAC-Adresse ................................................. 226Magnetschalter ............................................. 527mainloop (tkinter) ........................................ 760make ............................................................... 796man ................................................................... 88map (Python) ................................................ 680Map (Wolfram) .............................................. 853mapfile (bash) ............................................... 776Mathematica ................................................. 837Maus ................................................................. 29

Plex ............................................................ 337max_usb_current ........................................ 250MBR-Partitionen .......................................... 223MCP23017 ...................................................... 473MCP3008 ....................................................... 460

Bodenfeuchtigkeitssensor ....................... 497Wassersensor ............................................ 496

MCP4132 ......................................................... 454MCP4811 ......................................................... 465Mengen (Python) ......................................... 638Methoden (Python) ............................. 699, 701Microsoft-Fonts .............................................. 70MIMEText (Python) ...................................... 735Mini-TFT ......................................................... 623Minicom ........................................................ 483Miracast ......................................................... 333mirror (lftp-Kommando) .......................... 1028mkdir .............................................................. 110mkfs ................................................................ 223mmcblk-Devices ........................................... 218mode2 ............................................................ 326Modell 2 (Raspberry Pi)

kein Backpowering ................................. 370Modell B (Raspberry Pi)

Kfz-Rückfahrmonitor ............................... 614Stacking Header ....................................... 538Status-LEDs ............................................... 198

modinfo ......................................................... 255modprobe ...................................................... 255Module (Kernel) ............................................ 254

explizit laden ............................................ 255nicht automatisch laden ......................... 255

Module (Python) .......................................... 651modules ......................................................... 255mogrify ........................................................ 1022

MonitorBildschirmschoner ............................. 63, 187ein/aus schalten ....................................... 188Probleme ................................................... 196

Monitoring .................................................... 963Munin ........................................................ 963SmokePing ................................................ 968Visualisierung ........................................... 967

Mopidy ........................................................... 306motion ........................................................... 864motion.conf .................................................. 864Motordrehzahl .............................................. 429Motortreiber ................................................. 423mount ............................................................ 220

NAS-Verzeichnis ....................................... 153MP3-Dateien

lxmusic ........................................................ 71MPD ........................................................... 283mpg321 .................................................... 1023

MPDroid ........................................................ 288MPEG-2-Decodierer ...................................... 317Multimedia-Center

MPD ........................................................... 283OpenELEC .................................................. 309Plex ............................................................ 335

Multimeter .................................................... 387Munin ............................................................ 963Music Player Daemon (MPD) ...................... 284MusicBox ....................................................... 306Mutable Types (Python) .............................. 655mv ................................................................... 114my.conf-Datei ................................................ 824MySQL .................................................... 823, 895

Backup ....................................................... 826Datenbank einrichten ............................. 826in Python ................................................... 897

mysql-Kommando ....................................... 825mysqldump-Kommando ............................ 826

N

Nachtsichtgerät ............................................ 525Namensraum (Python) ................................ 704Nameserver ................................................... 227

dynamisches DSN .................................... 170Konfiguration ........................................... 232

nano ............................................................... 106NAS-Gerät ...................................................... 291

Audio-Dateien (MPD) .............................. 304Video-Dateien (Kodi) ............................... 329

NAT (Network Address Translation) .......... 989Neighbor Discovery Protocol ..................... 999

1080

i

i

“buch” — 2015/7/22 — 11:07 — page 1081 — #1077i

i

i

i

i

i

Index

Netzteil ..................................................... 26, 195Netzwerk

dynamisches DNS .................................... 170Glossar ...................................................... 225Internetzugriff auf den Raspberry Pi ..... 166IPv6 ............................................................ 176Konfiguration ........................................... 225manuelle WLAN-Konfiguration ............. 230Netzwerkverzeichnisse freigeben ........... 159Netzwerkverzeichnisse nutzen ............... 153Router ........................................................ 977Samba ....................................................... 159Schnittstellen ............................................ 226SSH ............................................................. 137VNC ............................................................ 145WLAN ........................................................... 76WLAN-Router ............................................ 977

Netzwerkbrücke ............................................ 980Netzwerkkommandos ................................. 125Netzwerkmaske ............................................ 226Netzwerkstatus ............................................. 125Netzwerksteckdosen .................................... 915

Alternative 433-MHz-technik .................. 916Schalten per bash-Script .......................... 927Visualisierung ........................................... 920Web-Steuerung ......................................... 920

Netzwerkverzeichnis ................................... 291Neustart-Button ........................................... 726New-Style-Klassen (Python) ....................... 701Newsfeed abstellen (Kodi) ........................... 320nice ................................................................. 123NoIP ................................................................ 170NOOBS .............................................................. 36Notebook-Oberfläche (Mathematica) ....... 838Notfall ............................................................ 195NPN Transistor ............................................. 385NTP ......................................................... 528, 941ntp.conf .......................................................... 942ntpq ................................................................ 943

O

OBIS-Kennzahlen ......................................... 906Objekte (Python) .......................................... 653Objektorientiertes Programmieren

(Python) .................................................. 699Office-Software ............................................... 74Ohmsches Gesetz ......................................... 375Oktalcode (Zugriffsbits) ............................... 211Old-Style-Klassen (Python) ......................... 701omxplayer ............................................. 73, 1023omxplayer (Sensoren) ................................. 521

open (Python) ............................................... 737Openbox .................................................. 61, 251

Autostart ................................................... 184OpenELEC ...................................................... 309OpenJDK ........................................................ 803Operator-Overloading (Python) ................. 706Operatoren (Python) .................................... 663Optionale Parameter (Python) ................... 694Optokoppler .................................................. 417Oracle (Java) ................................................... 803Order (Wolfram) ........................................... 853OS X

Image-Datei schreiben .............................. 42VNC ............................................................ 147

OSMC .............................................................. 309output (Python) ............................................ 722over_voltage ................................................. 193over_voltage_sdram .................................... 193Overclocking ................................................. 248

OpenELEC .................................................. 319Raspbian ................................................... 192

Overlays (Device Trees) ............................... 258Overloading (Python) .................................. 706

P

P1-Header ......................................................... 25P2-Header ...................................................... 360P3-Header ...................................................... 360P5-Header ...................................................... 360P6-Header ............................................. 360, 726p7zip ............................................................... 117pack (tkinter) ................................................. 757Pakete

aktualisieren ............................................. 133installieren ................................................ 130suchen ....................................................... 131

Paketverwaltung ........................................... 214Panel (LXDE) .................................................... 59Parallelschaltung .......................................... 379Parametersubstitution (bash) .................... 776parted ............................................................. 223Partitionierung ............................................. 223pass (Python) ................................................ 685passwd

Datei .......................................................... 201Kommando ............................................... 206

Passwortschutz (Apache) ............................ 818Passwortschutz (Samba) ............................. 162path (Python) ................................................ 712PATH-Variable ....................................... 100, 771PCF8591 ......................................................... 511

1081

Page 23: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

“buch” — 2015/8/6 — 13:39 — page 1082 — #1078

Index

PDF-Dateien anzeigen ................................... 71

Photovoltaik-Wechselrichter ...................... 917

PHP ......................................................... 811, 822

HelloWorld ............................................... 828

php.ini-Datei ................................................. 822

phpinfo-Funktion ......................................... 822

phpMyAdmin ................................................ 827

Phtovoltaik .................................................... 917

Pi MusicBox .................................................. 306

Pi Presents ................................................... 1021

Pi-Baker ............................................................ 42

Pi4J .................................................................. 806

picamera (Python) ............................... 518, 728

Pidora ............................................................... 32

PiFace ............................................................. 562

Emulator ................................................... 564

Jumper ....................................................... 567

Python Bibliothek .................................... 565

Rack ........................................................... 567

Spezifikationen ......................................... 563

pifm ................................................................ 976

pigpio ............................................................. 874

Pin-Nummerierung ..................................... 357

Pinbelegung J8-Header ................................ 356

ping ................................................................. 126

Ping ................................................................. 934

PiNoIR .................................................... 514, 524

pip (Python-Paketverwaltung) ................... 732

Pipe-Operator ................................................. 98

PIR ................................................................... 489

PiTFT ............................................................... 609

PiUSV+ ............................................................ 572

Software .................................................... 573

Plex ................................................................. 335

Home Theater ........................................... 337

Server ......................................................... 338

Plot, Plot3D (Mathematica) ......................... 841

PNP Transistor .............................................. 385

Poly Fuse ........................................................ 364

polygon (pygame) ........................................ 745

Port (TCP/IP) .................................................. 225

Port Forwarding ............................................ 172

Porterweiterung ........................................... 473

ports.conf-Datei ................................... 175, 813

Powerbank ..................................................... 364

PowerShell ..................................................... 272

PPS-Signal ...................................................... 948

pqiv ............................................................... 1022

Präsentationssysteme ............................... 1019

print (Python) ............................................... 649

printenv (bash) ............................................ 775

Programme ................................................... 119

automatisch ausführen ................ 182, 1024

installieren ................................................ 130

regelmäßig ausführen ............................. 184

Prompt ............................................................. 92

property-Dekorator (Python) ..................... 705

protocol (tkinter) .......................................... 761

Prototyping-HATs ........................................ 580

Prozesse ......................................................... 119

abbrechen ................................................. 123

ps ..................................................................... 120

PS1 ..................................................................... 92

pscp.exe ......................................................... 143

pstree .............................................................. 122

Pulse Width Modulation (PWM) ........ 724, 792

PulseAudio .................................................... 293

Pushbullet ................................................... 1068

PuTTY ............................................................. 138

PWM ............................................................... 410

gpio-Kommando ...................................... 792

Java ............................................................ 808

Python ....................................................... 724

tkinter-Beispiel ......................................... 763

pygame .......................................................... 742

selbst kompilieren .................................... 742

PyMyQSL ....................................................... 896

pyserial .................................................. 484, 951

Python ............................................................ 627

Grundlagen ............................................... 647

interaktiv ausprobieren .......................... 628

Syntax ........................................................ 647

Tastatureingabe simulieren ................. 1032

python_uinput ........................................... 1032

Q

Quick2Wire Interface Board ....................... 568

Quick2Wire-Port-Expander-Board ............. 571

R

Radio .............................................................. 333

Radiosender .................................................. 975

radvd ............................................................ 1003

raise (Python) ................................................ 688

Ralink RT5370-Chipset ................................. 978

RAM .................................................................. 22

Aufteilung GPU/CPU ................................ 250

range (Python) .............................................. 669

Raspberry Pi .................................................... 21

1082

i

i

“buch” — 2015/7/22 — 11:07 — page 1083 — #1079i

i

i

i

i

i

Index

Raspbian .......................................................... 51Raspbmc ........................................................ 309Raspi Cam .............................................. 514, 521

Python ....................................................... 518Ubuntu ...................................................... 267

raspi-config ..................................................... 52raspi-Paketquelle .......................................... 216RaspiComm ................................................... 559RaspiLCD ........................................................ 602raspistill ................................................. 517, 861

Ubuntu ...................................................... 267raspivid .................................................. 517, 863

Ubuntu ...................................................... 267RasPlex ........................................................... 341RaspyFi ........................................................... 302Raw-Drucker ................................................ 1014raw-Zeichenketten (Python) ....................... 676rc.local-Datei ................................................. 182rc.xml ............................................................... 61RCA-Monitor ................................................. 614rcswitch-pi ..................................................... 932read (bash) ..................................................... 774readline (Python) ......................................... 738Real Time Clock ............................................ 528Realtek-8188EU-Chipsatz ............................. 231reboot-Kommando .............................. 243, 726Rechteck-Klasse (Python) ............................ 707rect (pygame) ................................................ 745reduce (Python) ............................................ 682Reed Kontakt ................................................. 527Reguläre Ausdrücke (Python) ..................... 678Reihenschaltung .......................................... 378Relais ...................................................... 386, 446Relaistypen .................................................... 446remmina (VNC) ............................................. 148render (pygame) ........................................... 746renice .............................................................. 123Repeater ................................................. 978, 994Repositories .................................................. 215repr-Methode (Python) ............................... 707Reset-Button ................................................. 726resolv.conf ..................................................... 232RFID ................................................................ 891

Reader und Transponder ........................ 892Technologie .............................................. 892

RGB LED ......................................................... 413RISC OS ............................................................. 32rm ........................................................... 110, 115rmdir .............................................................. 110root (Administrator) .................................... 100root-Kerneloption ........................................ 238rootwait-Kerneloption ................................ 239Round-Robin-Datenbank ............................ 917

Router ............................................ 166, 977, 986Tor ............................................................ 1005

Router Advertisement ............................... 1003RPi Cam LED deaktivieren (Sensoren) ...... 525RPi-Display .................................................... 623RPi.GPIO-Modul ............................................ 720

Ubuntu ...................................................... 266RPi1/RPi2 .......................................................... 22rpi_gpio_ntp ................................................. 948RPI_INFO ....................................................... 725RPI_REVISION ............................................... 725RRD-Datei ...................................................... 917RRDtool

Grundlagen ............................................... 907Hausautomation ..................................... 920Stromzähler .............................................. 912Temperaturmessung ............................... 909

RS232 .............................................................. 480RS485 .............................................................. 480RSS-Newsfeed abstellen (Kodi) ................... 320rsync ............................................................... 189RT5370-Chipset ............................................. 978RTL-SDR ....................................................... 1038RTL2832U-DVB-T-Chip ............................... 1037RTL8188EU-Chipsatz .................................... 231Rückfahrmonitor .......................................... 614Run-Header ................................................... 726Runlevel ......................................................... 240

S

Samba .................................................... 159, 317save (pygame) ................................................ 747scaling-cur-freq-Datei .................................. 193Scanner (Plex) ............................................... 338Schaltregler ................................................... 368Schlüssel/Wert-Paar (Python) .................... 671Schleifen (Python) ........................................ 668Schrittmotor ................................................. 431scp ................................................................... 143Scratch ........................................................ 53, 74Screenshots

Kodi ............................................................ 320Raspbian ..................................................... 75RasPlex ...................................................... 347

Scripts ............................................................ 643scrot (Screenshots) ......................................... 75SD-Karte ........................................................... 27

Backup ....................................................... 190beschreiben ........................................... 33, 40formatieren ................................................. 34Probleme ................................................... 196

1083

Page 24: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1084 — #1080i

i

i

i

i

i

Index

unter Linux schreiben ................................ 44unter OS X schreiben .................................. 42unterWindows schreiben .......................... 41

sda- und sdb-Devices ................................... 219SDHC/SDXC ..................................................... 27SDR ............................................................... 1038sdram_freq .................................................... 193Seeedstudio ................................................... 591Select (Wolfram) ........................................... 853Sensorboard ................................................ 1082Sensoren ........................................................ 489Serielle Schnittstelle .................................... 480

Wolfram Language .................................. 850service .................................................... 124, 243Servomotoren ............................................... 441Set Comprehension (Python) ..................... 670set_caption (pygame) .................................. 743set_mode (pygame) ..................................... 743Setgid-Bit ....................................................... 210setmode (Python) ......................................... 721Sets (Python) ................................................. 638setter-Dekorator (Python) ........................... 705Setter-Methoden (Python) .......................... 705Setuid-Bit ....................................................... 210setup (Python) .............................................. 721shadow ........................................................... 202Shared References (Python) ....................... 662shell_exec (PHP) ........................................... 831shutdown ...................................................... 243Sicherung (Micro-USB) ................................ 364Signale (bash) ................................................ 788Simplify (Mathematica) .............................. 840SixXs (IPv6-Tunnel) ................................... 1001Skin (Kodi) ..................................................... 320sleep (Python) ............................................... 714Slicing (Python) ............................................ 634Slide-Show ................................................... 1019Smart Message Language ........................... 906Smart Meter .................................................. 903Smartphone

als Kodi-Fernbedienung .......................... 322als MPD-Fernbedienung .......................... 288

SMB-Verzeichnis ........................................... 291smb.conf ........................................................ 159smbpasswd .................................................... 162smbus ............................................................. 478

in Python 3 ................................................ 478SMD-Bauteile ................................................ 422SmokePing .................................................... 968

EchoPingHttp ........................................... 973SMTP (Python) .............................................. 735Snakeoil-Zertifikate (Apache) ..................... 821SoC BCM2836 ................................................ 354

Soft-Reset ....................................................... 726Software Defined Radio ............................ 1038Software PWM .............................................. 410Solve (Mathematica) .................................... 840Sonic Pi ............................................................. 74source (bash) ................................................. 772sources.list ..................................................... 215Spannung ...................................................... 375Spannungsmessung .................................... 388Spannungsregler .......................................... 367Spannungsteiler ........................................... 381speaker-test ................................................... 288Speicher ........................................................... 22

Aufteilung GPU/CPU ................................ 250SPI ................................................................... 451

Bauteile ..................................................... 470Daten lesen ............................................... 459Daten senden ............................................ 456einrichten per raspi-config ...................... 452manuell einrichten ................................... 453Python ....................................................... 453

spidev ............................................................. 453Spotify ............................................................ 333

MusicBox .................................................. 306Volumio ..................................................... 304

Spule ............................................................... 384SSH .................................................................. 137

Dateien kopieren ...................................... 143OpenELEC .................................................. 315RasPlex ...................................................... 345Schlüssel statt Passwörter .............. 140, 316Tunnel für VNC ......................................... 151Ubuntu ...................................................... 265

ssh-copy-id ............................................ 141, 316ssh-keygen ............................................ 140, 316SSID ................................................................ 984SSL-Zertifikate (Apache) .............................. 821Stacking-Header ........................................... 538Standardausgabe ............................................ 96Standardeditor einstellen ........................... 207Standardeingabe ............................................. 96start.elf ........................................................... 237start.elf-Datei ................................................ 134start_recording (Python) ............................ 730start_x ............................................................ 249startx .............................................................. 253stat .................................................................. 212staticmethod-Dekorator (Python) ............. 702Statische Methoden (Python) ..................... 701Statische Netzwerkkonfiguration .............. 229Status-Leuchtdioden .................................... 197stdin/stdout (Python) .................................. 712Steckdosen schalten ..................................... 929

1084

i

i

“buch” — 2015/7/22 — 11:07 — page 1085 — #1081i

i

i

i

i

i

Index

Steckernetzteil .............................................. 364Steuerelemente (tkinter) ............................. 755Sticky-Bit ........................................................ 210stop_recording (Python) ............................. 730str-Methode (Python) .................................. 707Streaming (MPD/Icecast) ............................ 296Streams .......................................................... 521Streifenrasterplatine .................................... 391Strg-C

Python ....................................................... 688tkinter ........................................................ 762

Strom .............................................................. 375Strommessung ............................................. 389Stromversorgung ........................... 26, 195, 363Stromzähler ................................................... 903

optischer Lesekopf ................................... 904Smart Meter Language ........................... 906Visualisierung ........................................... 912

subprocess-Modul ........................................ 713sudo ................................................................ 100

absichern ................................................... 207im VNC-Viewer ......................................... 148Konfiguration ........................................... 206

super (Python) .............................................. 709Surface (pygame) .......................................... 743symbolische Links ........................................ 115sys-Modul (Python) ...................................... 711sysctl .................................................... 990, 1003systemctl-Kommando ................................. 265Systemd ......................................................... 265Systemdienste ............................................... 124Systemstart ................................................... 236

T

T-Cobbler ....................................................... 396Tabellenkalkulation ........................................ 74tail ................................................................... 104Taktfrequenz

einstellen ................................................... 193ermitteln ................................................... 193

tar .................................................................... 118Backup-Beispiel ........................................ 190

Taskmanager ................................................. 121Tastatur ............................................................ 29

Layout im Textmodus ................................ 54OpenELEC .................................................. 314

Tastenkürzelbash ............................................................. 89less ............................................................. 103Raspbian ...................................................... 61Terminal ...................................................... 89

Taster als Eingangssignal ............................ 405Taster entprellen (Python) .......................... 723temp_limit .................................................... 193Temperatur .................................................... 193Temperaturkurve (pygame) ........................ 751Temperaturkurve (Wolfram Language) .... 851Temperatursensor ............................... 502, 505Terminal ..................................................... 65, 83

Farben .......................................................... 92mit root-Rechten ...................................... 101

test (bash) ...................................................... 781Tethering ....................................................... 986Textausgaben (pygame) .............................. 746Textdateien

ändern ....................................................... 105anzeigen .................................................... 103durchsuchen ............................................. 104in Python verarbeiten .............................. 673

Textdateien (Python) ................................... 737Texteditoren ............................................ 66, 105

Defaulteditor einstellen ........................... 106Texteingabe (Python) .................................. 650Textkonsole ..................................................... 91Textverarbeitung ............................................ 74Thunderbird .................................................... 69TightVNC (Windows) .................................... 146tightvncserver .............................................. 145time-Modul (Python) ................................... 714tkinter (Python) ............................................ 754top ................................................................... 120Tor-Router ................................................... 1005torrc-Datei ................................................... 1008touch .............................................................. 115Touchscreen .................................................. 618

Kalibrierung .............................................. 621traceback-Modul (Python) .......................... 686Transistor ....................................................... 385

Auswahl ..................................................... 402Schaltung .................................................. 402

Transponder .................................................. 891trap (bash) ...................................................... 788Trigger (Pi4J) .................................................. 809TSOP4838 ....................................................... 533ttf-mscorefonts-installer ............................... 70Tupel (Python) .............................................. 637Tupel Comprehension (Python) ................ 670tvservice ......................................................... 247tvservice-Kommando .................................. 188Twittern ......................................................... 955Typen (Python) ............................................. 657Typumwandlung (Python) ......................... 658Twython ......................................................... 955

1085

Page 25: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

i

i

“buch” — 2015/7/22 — 11:07 — page 1086 — #1082i

i

i

i

i

i

Index

U

U-Cobbler ...................................................... 396UART ............................................................... 480

aktivieren .................................................. 480Kommunikation ....................................... 481Parameter in config.txt ........................... 249Python ....................................................... 484

Ubuntu ........................................................... 261udev-System .................................................. 218

eigene Regeln ......................................... 1025udhcpd ........................................................... 991Uhr .................................................................. 528Uhrzeit ........................................................... 941uinput .......................................................... 1032Ultraschallsensor ......................................... 493umask ............................................................. 213Umgebungsvariablen .................................... 99Umgebungsvariablen (bash) ...................... 775umount ......................................... 157, 221, 222uname .................................................... 135, 254Unicode (Python) ......................................... 675Unipolarer Schrittmotor ............................. 436Unterbrechungsfreie Stromversorgung ... 572unzip .............................................................. 119update-alternatives ...................................... 106Updates

Kernel und Firmware ............................... 134OpenELEC .................................................. 321Pakete ........................................................ 133

UPnPAudio-Dateien (MPD) .............................. 304Video-Dateien (Kodi) ............................... 329

USB1200mA weiterleiten ............................... 250Mängel ......................................................... 23Mikrofon ................................................... 976Powerbank ................................................ 364

USB-DAC ........................................................ 299USB-Hub .......................................................... 30USB-Stick ................................................. 79, 289

eigenes mount-Script ausführen .......... 1025Raspbian installieren ................................. 45Read-only verwenden ............................ 1025

V

Variablenbash ..................................................... 99, 773Python ............................................... 653, 654

vars (Python) ................................................. 704

VC1-Decodierer .............................................. 317vcgencmd ....................... 86, 135, 193, 250, 318vchiq-Device-Datei ....................................... 833Vererbung ...................................................... 708VERSION (RPi.GPIO) ..................................... 725Versorgung über USB ................................... 370Verzeichnisse ................................................ 109

freigeben ................................................... 159Verzweigungen (Python) ............................. 666vfat-Dateisystem .......................................... 220vi (Editor) ....................................................... 107Video-Codecs ................................................. 317Video-Player ............................... 73, 1019, 1023VideoCore-4-GPU ......................................... 354Videos aufnehmen

Python ....................................................... 730Videos konvertieren ..................................... 863Videos und Bilder anzeigen ........................ 520Visual Studio ................................................. 274VLC .................................................................... 73VNC ................................................................. 145

mit SSH-Tunnel ......................................... 151vncserver ....................................................... 145Vogelhaus ...................................................... 857

Bewegungserkennung ............................. 864Kameramodul .......................................... 857NoIR-Kamera ............................................ 857Praxis ......................................................... 867

Volumio ......................................................... 302vsftp ................................................................ 180

W

wait_for_edge ............................................... 723wait_recording (Python) ............................. 730Wassermelder ............................................. 1067Wassersensor ................................................ 496Wayland ......................................................... 253wc .................................................................... 120Webbrowser ..................................................... 68Wetterstation ................................................ 508wget ................................................................ 127Wheezy ............................................................. 51which .............................................................. 100while (Python) ............................................... 668Widerstand .................................................... 375Widerstandsmessung .................................. 388Widgets (tkinter) ........................................... 755WiFi ................................................................. 977Win32 Disk Imager .......................................... 41WindowManager ........................................ 251

1086

i

i

“buch” — 2015/7/22 — 11:07 — page 1087 — #1083i

i

i

i

i

i

Index

WindowsImage-Datei schreiben .............................. 41SSH ............................................................. 138VNC ............................................................ 146

Windows 10 IoT Core ................................... 269WiringPi

bash ........................................................... 789C ................................................................. 799Ubuntu ...................................................... 266

with/as (Python) ........................................... 687WLAN .............................................................. 977

Access Point .............................................. 980Hotspot ..................................................... 986Konfiguration ............................................. 76manuelle Konfiguration .......................... 230OpenELEC .................................................. 314RasPlex ...................................................... 345Repeater .................................................... 994Router ........................................................ 986RTL8188eu-Chipsatz ................................. 231

WLAN-Authenticator ................................... 983WLAN-Router ................................................ 977

Tor ............................................................ 1005Wolfram Language ....................................... 844WPA ........................................................ 230, 984wpa_gui-Programm ....................................... 77www-data-Account ....................................... 813

X

XWindow System ......................................... 251XBian .............................................................. 309XBMC .............................................................. 309xessions-Verzeichnis ................................. 1024xfce4-screenshooter ....................................... 75Xfmpc ............................................................. 286xhost-Kommando ........................................ 148xorg.conf ........................................................ 252Xpdf ................................................................... 71xz ..................................................................... 117

Z

Zeichenketten (Python) ....................... 633, 674Zeitrafferaufnahmen ................................... 862Zeroconf ....................................................... 1017Zertifikate (HTTPS) ....................................... 821zip ................................................................... 119zip (Python) ................................................... 683Zuweisungen (Python) ................................ 665Zwei Events auf einem Eingang ................. 409

1087

Page 26: Raspberry–Pi-Projekt für Geeks...Raspberry–Pi-Projekt für Geeks Für Geekweek-Hörer haben wir ein besonderes Projekt aus dem Buch ausgesucht: Den PomodoPi. Auch wenn Ihr gänzlich

Teilen Sie Ihre Leseerfahrung mit uns!

Michael Kofler studierte Telematik an der TU Graz. Er ist einer der erfolgreichsten und vielseitigsten Computerbuchautoren im deutschen Sprachraum. Zu seinen Themengebieten zählen neben Linux auch OS X, MySQL, KVM, Visual Basic und Excel-VBA. Viele seiner Bücher wurden übersetzt. Michael Kofler arbeitet auch als Software-Entwickler, Berater sowie als Lehrbeauftragter an zwei Fachhochschulen.

Charly Kühnast veröffentlicht bereits seit seinem 14. Lebensjahr Fachartikel, Kolumnen und Glossen zu IT-Themen. Auf einer Ver-anstaltung des Chaos Computer Clubs, dem er seit vielen Jahren angehört, lernte er das Betriebssystem Linux kennen. Er arbeitet beim Kommunalen Rechenzentrum Niederrhein in Kamp-Lintfort. Dort ist er für die Verfügbarkeit und Sicherheit der Internet-Infra-struktur verantwortlich. Daneben gibt er sein Wissen als Lehrbe-auftragter an verschiedenen Hochschulen weiter.

Michael Kofler, Charly Kühnast, Christoph Scherbeck

Raspberry Pi – Das umfassende Handbuch1.087 Seiten, gebunden, in Farbe, mit CD, 2. Auflage 2015 39,90 Euro, ISBN 978-3-8362-3795-6

www.rheinwerk-verlag.de/3872

Christoph Scherbeck ist begeisterter Raspberry-Pi-Bastler. Er ist 27 Jahre alt und gelernter Mechatroniker und Maschinenbautech-niker. Privat betreibt er die Website www.elektronx.de, auf der er seine Bastelprojekte mit dem Raspberry Pi beschreibt.

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne empfeh-len und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book- Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag.

Wissen, wie’s geht.