Vorwort ... 35
TEIL I Den Raspberry Pi kennenlernen ... 39
1. Kauf und Inbetriebnahme ... 41
1.1 ... Kauf ... 42
1.2 ... NOOBS-Installation ... 54
1.3 ... Image-Datei auf eine SD-Karte schreiben ... 62
1.4 ... Installation auf einen USB-Stick (für Fortgeschrittene) ... 68
2. Erste Schritte in Raspbian ... 75
2.1 ... Das Konfigurationsprogramm raspi-config ... 75
2.2 ... Ein- und Ausschalten ... 80
2.3 ... Die Benutzeroberfläche LXDE ... 81
2.4 ... Wichtige Programme ... 88
2.5 ... WLAN-Konfiguration ... 100
2.6 ... Bluetooth-Konfiguration ... 103
2.7 ... USB-Sticks und -Festplatten ... 104
2.8 ... Drucker ... 105
3. Arbeiten im Terminal ... 107
3.1 ... Erste Experimente ... 107
3.2 ... Eingabeerleichterungen und Tastenkürzel ... 113
3.3 ... Farbspiele ... 116
3.4 ... Die Bourne Again Shell (bash) ... 118
3.5 ... Arbeiten mit Administratorrechten (sudo) ... 124
3.6 ... Textdateien lesen und ändern ... 127
3.7 ... Verzeichnisse und Dateien ... 133
3.8 ... Komprimierte Dateien und Archive ... 140
3.9 ... Prozessverwaltung ... 143
3.10 ... Netzwerkkommandos ... 149
4. Arbeitstechniken ... 153
4.1 ... Programme installieren und verwalten ... 154
4.2 ... Updates ... 157
4.3 ... SSH ... 161
4.4 ... VNC ... 169
4.5 ... Netzwerkverzeichnisse nutzen ... 176
4.6 ... Netzwerkverzeichnisse anbieten (Samba-Server) ... 182
4.7 ... Internetzugriff auf den Raspberry Pi ... 189
4.8 ... Dynamisches DNS ... 194
4.9 ... IPv6 ... 199
4.10 ... FTP-Server einrichten ... 203
4.11 ... Programme beim Systemstart ausführen ... 206
4.12 ... Programme regelmäßig ausführen (Cron) ... 208
4.13 ... Backups erstellen ... 211
4.14 ... Overclocking ... 215
4.15 ... Notfall-Tipps ... 217
5. Linux-Grundlagen ... 223
5.1 ... Benutzer und Gruppen ... 224
5.2 ... Zugriffsrechte ... 232
5.3 ... Paketverwaltung ... 238
5.4 ... Verwaltung des Dateisystems ... 241
5.5 ... Netzwerkkonfiguration ... 249
5.6 ... Bluetooth ... 257
5.7 ... Systemstart ... 259
5.8 ... Systemeinstellungen in config.txt ... 270
5.9 ... Grafiksystem ... 275
5.10 ... Kernel und Module ... 278
TEIL II Der Raspberry Pi als Media-Center ... 283
6. Audio-Player mit Smartphone-Fernbedienung ... 285
6.1 ... MPD-Installation und -Konfiguration ... 285
6.2 ... MPD-Konfigurationsvarianten ... 291
6.3 ... Volumio ... 302
6.4 ... Pi MusicBox ... 305
7. Multimedia-Center mit XBMC ... 309
7.1 ... XBian versus Raspbmc versus OpenELEC ... 310
7.2 ... OpenELEC-Installation und -Konfiguration ... 313
7.3 ... Fernbedienung ... 324
7.4 ... XBMC-Betrieb ... 329
8. Multimedia-System mit Plex ... 339
8.1 ... XBMC oder Plex? ... 339
8.2 ... Plex-Server-Konfiguration ... 342
8.3 ... RasPlex-Installation und -Konfiguration ... 345
8.4 ... Plex-Anwendung ... 352
TEIL III Hardware-Grundlagen ... 355
9. Hardware-Einstieg ... 357
9.1 ... Platinenaufbau ... 357
9.2 ... Der BCM2835 ... 359
9.3 ... GPIO-Kontakte ... 360
9.4 ... GPIO-Änderungen beim Modell B+ ... 368
9.5 ... Stromversorgung ... 369
9.6 ... Gehäuse ... 377
10. Elektrotechnik-Crashkurs ... 383
10.1 ... Strom, Spannung und das Ohmsche Gesetz ... 383
10.2 ... Grundschaltungen ... 385
10.3 ... Elektronische Grundbauteile ... 390
10.4 ... Das Multimeter ... 395
10.5 ... Breadboard oder Platine? ... 397
10.6 ... Löten ... 400
10.7 ... Breadboardadapter ... 402
11. LEDs, Motoren und Relais ... 407
11.1 ... Leuchtdioden (LEDs) ... 407
11.2 ... Optokoppler ... 426
11.3 ... Elektromotoren ... 427
11.4 ... Schrittmotoren ... 439
11.5 ... Relais ... 451
12. Bussysteme ... 455
12.1 ... SPI ... 455
12.2 ... I²C ... 476
12.3 ... UART ... 484
12.4 ... Der Audiobus I²S ... 489
12.5 ... 1-Wire ... 491
13. Sensoren ... 493
13.1 ... PIR-Bewegungssensor ... 493
13.2 ... Ultraschallsensor ... 497
13.3 ... Wasserstandssensor ... 500
13.4 ... Temperatursensoren ... 501
13.5 ... Fotowiderstand ... 506
13.6 ... Multi-Analogsensor-Board PCF8591 ... 508
13.7 ... Raspberry Pi Camera Board und PiNoIR ... 511
13.8 ... Reed-Kontakt ... 524
13.9 ... Hardware Real Time Clock ... 526
13.10 ... IR-Empfänger ... 530
13.11 ... Leitfaden für fremde Sensoren ... 532
14. Erweiterungsboards ... 535
14.1 ... Das Gertboard ... 536
14.2 ... Der ATmega auf dem Gertboard ... 551
14.3 ... RasPiComm ... 557
14.4 ... PiFace Digital ... 560
14.5 ... Quick2Wire Interface Board ... 565
14.6 ... Unterbrechungsfreie Stromversorgung mit PiUSV ... 569
14.7 ... Andere Erweiterungen im Überblick ... 572
15. Displays ... 579
15.1 ... 16x2-LC-Display ... 579
15.2 ... RaspiLCD ... 584
15.3 ... PiTFT -- Der Touchscreen für den Raspberry Pi ... 591
15.4 ... Kfz-Rückfahrmonitore ... 602
15.5 ... LS-7T -- Der Plug-and-Play-Touchscreen ... 606
15.6 ... Weitere Display-Boards ... 610
TEIL IV Programmierung ... 613
16. Python kennenlernen ... 615
16.1 ... Python ausprobieren ... 616
16.2 ... Python-Konzepte interaktiv kennenlernen ... 618
16.3 ... Hello World! ... 628
17. Python-Grundlagen ... 635
17.1 ... Elementare Syntaxregeln ... 635
17.2 ... Variablen und Objekte ... 641
17.3 ... Operatoren ... 651
17.4 ... Verzweigungen (if) ... 654
17.5 ... Schleifen (for und while) ... 656
17.6 ... Zeichenketten ... 662
17.7 ... Listen ... 668
17.8 ... Umgang mit Fehlern (Exceptions) ... 672
17.9 ... Funktionen ... 678
17.10 ... Objektorientiertes Programmieren ... 688
17.11 ... Systemfunktionen ... 700
18. Programmieren mit Python ... 705
18.1 ... Programmieren lernen ... 705
18.2 ... GPIO-Zugriff ... 710
18.3 ... Kamera ... 716
18.4 ... Dateien bei Dropbox hochladen ... 720
18.5 ... E-Mails versenden ... 721
18.6 ... Textdateien lesen und schreiben ... 724
18.7 ... Grafikprogrammierung ... 729
18.8 ... Grafische Benutzeroberflächen mit tkinter ... 740
19. bash-Programmierung ... 755
19.1 ... Einführung ... 755
19.2 ... Variablen ... 759
19.3 ... Schleifen, Bedingungen und Funktionen ... 764
19.4 ... WiringPi ... 775
20. C-Programmierung ... 783
20.1 ... Hello World! ... 783
20.2 ... GPIOs steuern ... 787
21. Java-Programmierung ... 791
21.1 ... Erste Schritte ... 791
21.2 ... GPIO-Steuerung mit Java ... 795
22. PHP-Programmierung ... 801
22.1 ... Apache installieren und konfigurieren ... 802
22.2 ... Webverzeichnisse einrichten und absichern ... 804
22.3 ... HTTPS ... 811
22.4 ... PHP installieren und konfigurieren ... 812
22.5 ... MySQL installieren und administrieren ... 814
22.6 ... Hello World! in PHP ... 819
22.7 ... GPIO-Programmierung mit PHP ... 821
22.8 ... Kamerafunktionen mit PHP nutzen ... 824
23. Mathematica und die Wolfram Language ... 829
23.1 ... Installation und Start ... 830
23.2 ... Arbeiten mit Mathematica ... 830
23.3 ... Programmieren mit der Wolfram Language ... 837
TEIL V Projekte ... 849
24. Der Raspberry Pi im Vogelhaus ... 851
24.1 ... Einbau des Raspberry Pi samt Kameramodul in ein Vogelhaus ... 851
24.2 ... Kamerapraxis ... 854
24.3 ... Bewegungserkennung mit motion ... 858
24.4 ... Das Vogelhaus im praktischen Einsatz ... 862
25. Zeitmessung mit Lichtschranken ... 865
25.1 ... Versuchsaufbau (Hardware) ... 865
25.2 ... Software ... 868
26. Das autonome Auto ... 871
26.1 ... Hardware ... 871
26.2 ... Die Software ... 880
27. RFID-Türöffner mit Zutrittskontrolle ... 885
27.1 ... RFID-Hardware ... 886
27.2 ... Software ... 889
27.3 ... Erweiterungsmöglichkeiten und Tipps ... 895
28. Stromzähler auslesen ... 897
28.1 ... Stromzähler-Grundlagen ... 897
28.2 ... Einführung in RRDTool ... 901
28.3 ... Zählerdaten speichern und zu Graphen aufbereiten ... 906
29. Hausautomation mit Netzwerksteckdosen ... 909
29.1 ... Einführung ... 909
29.2 ... Programmierung ... 911
30. Hausautomation mit 433-MHz-Funktechnologie ... 923
30.1 ... Hardware-Grundlagen ... 923
30.2 ... Software und Steuerungsbeispiele ... 926
31. Ort und Zeit per GPS empfangen ... 935
31.1 ... Haben Sie Zeit? Eine Uhr für den Raspberry Pi ... 935
31.2 ... Ortsbestimmung mit dem Raspberry Pi ... 944
32. Der Raspberry Pi lernt twittern ... 949
32.1 ... Voraussetzungen ... 949
32.2 ... Programmierung ... 951
33. Monitoring ... 957
33.1 ... Munin ... 957
33.2 ... SmokePing ... 962
34. Raspberry Pi-ratensender ... 969
34.1 ... FM-Transmitter einrichten ... 969
35. WLAN- und IPv6-Router ... 971
35.1 ... Einführung ... 971
35.2 ... WLAN-Access-Point ... 976
35.3 ... WLAN-Router ... 982
35.4 ... WLAN-Repeater ... 990
35.5 ... IPv6-Router ... 994
36. Tor-Router ... 1003
36.1 ... Tor-Grundlagen ... 1003
36.2 ... WLAN-Router-Konfiguration ... 1006
36.3 ... Anbindung des WLAN-Routers an das Tor-Netz ... 1012
37. AirPrint-Drucker selbst gemacht ... 1015
37.1 ... Voraussetzungen ... 1015
37.2 ... AirPrint-Konfiguration ... 1020
38. Automatische Präsentationssysteme ... 1023
38.1 ... Einführung ... 1023
38.2 ... Werkzeugkasten ... 1026
38.3 ... Reset/Shutdown-Taste ... 1032
38.4 ... Autonome Bilder-Projektion ... 1034
38.5 ... Video-Player mit Menü ... 1037
39. Luftraumüberwachung ... 1047
39.1 ... Technischer Hintergrund und Hardware ... 1047
39.2 ... Software ... 1048