Der Vortrag zeigt zunächst Anwendungsgebiete der Heimautomatisierung auf und vermittelt eine kurze Einführung in die notwendigen Grundlagen zur praktischen Heimautomatisierung mit dem Raspberry Pi und Python (Kurzeinführung: GPIO mit Python). Anschliessend werden für ausgewählte praktische Anwendungen Lösungsansätze aufgezeigt, die sowohl die Hardware-Anbindung als auch die Software-Ansteuerung (vorzugsweise mit Python) beschreiben:
- Bewegungsmelder
- Temperaturmessung
- Funksteckdose(n) steuern
- Anbindung einer WebCam
Abschliessend wird eine einfache Benutzerschnittstelle als Web-Frontend demonstriert, die die Anzeige der Sensor-Daten aus den Beispielen bzw. Kontrolle von Aktoren realisiert.
5. Heimautomatisierung (Home Automation)
• Idee: Überwachung und Steuerung elektrischer Geräte im Haushalt
• durch Verbindung von Sensoren und Aktoren über eine Steuereinheit im Haushalt
• Sensoren: Thermometer, Bewegungsmelder, Rauchmelder, Kamera, Druckschalter
• Aktoren: (Funk)steckdose, Relais, LED, Servo-Motor
• Steuereinheit (Controller): Hardware + Software
• Ziele
• Kostenersparnis durch 'intelligente' Steuerung (Heizkosten/Stromkosten)
• Mehr Komfort durch automatische Anpassung der Umgebung
(z.B. Lichtsteuerung: zeitgesteuert, je nach Helligkeit/Bewegung etc.)
• Spaß & Spiel
6. Heimautomatisierung: Beispiele
• Automatische Heizungssteuerung und Monitoring der Energiekosten
• Automatisch Rolladen zu bestimmter Zeit hochfahren
• Lampen im Haus in Gruppen anordnen und per FB steuern
• Bei Annäherung das Garagentor öffnen
• E-Mail wenn Briefkasten geöffnet wird
• Foto wenn Türklingel betätigt wird
• Alarmanlage
7. Heimautomatisierung: Komponenten
• Controller (Steuereinheit)
• Hardware: PC, RaspberryPi, Arduino, NAS, Fritzbox etc.
• Software: Make or Buy !?
• fertige Lösung - z.B.
• FHEM (Perl, www.fhem.de)
• openHAB (Java, www.openhab.org)
• eigene Lösung entwickeln
• auf Basis von Python
& bestehenden Bibliotheken
• HCI (Human Computer Interface)
• Fernbedienung (IR)
• Touchscreen (z.B. Tablet)
• Web-GUI
• Smartphone App
Controller
Sensor Aktor
HCI
Hardware
Software
9. Vorstellung: Der Raspberry Pi
• SOC Minicomputer: "System on a chip"
• GPU + CPU + RAM = BCM2835
• on-board: Ethernet-Schnittstelle und zwei USB-Anschlüsse (Modell B)
• "BYOP"-Prinzip: "bring your own peripherals“
• Lieferung ohne Maus, Tastatur, Netzstecker etc.
• Nackte Platine (ohne Gehäuse), ohne SD-Card und OS
• Einsetzbar für Elektronikprojekte
• Steuerung elektronischer Geräte mittels Ein-/Ausgabekontakte (GPIOs)
10. Thomas Koch
Hardware:
Raspberry Pi
• GPIO
• General Purpose
Input/Output
• CSI
• Camera
Serial Interface
• HDMI
• Video out
• micro USB
• Power
Raspberry Pi2 Model B
2nd generation Raspberry Pi
11. Datenblatt: Raspberry Pi
• aktuelles Modell: Raspberry Pi3 Model B— 3rd generation Raspberry Pi
• Kosten: ca. 30 € (nur Board)
• 1 GB RAM / CPU: 64-Bit-QUAD-Core ARMv8-Prozessor BCM2837 (1,2 GHz)
• Betriebsspannung: 5 V (Micro-USB Buchse)
• Datenträger: Micro SD Speicherkartenslot
• Anschlüsse: HDMI, LAN 10/100 Mbps, 4x USB 2.0, Audio, Video-Out
• Erweiterte 40-Pin-GPIO
• Integrierter WiFi-Adapter BCM43438
• Integriertes Bluetooth Low Energy (BLE) Modul
• Quelle: https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
12. Python auf dem Raspberry PI
• Batteries included : Python & Raspbian OS
• Raspbian kommt mit Python 2.7 und 3.4
• aktuell: Raspbian Wheezy4.1 mit Python 2.7.9 und Python 3.4.2
• Entscheidung für eigene Projekte: Py27 oder Py3x (aktuell: 3.5)
• Should I use Python 2 or Python 3:
https://wiki.python.org/moin/Python2orPython3
• Zusatzpakete per apt-get oder ‚pip install‘ installieren
• GPIO mit Python
• In Raspbian vorinstalliert: RPi.GPIO
• Python Bibliothek für einfachen GPIO Zugriff
https://pypi.python.org/pypi/RPi.GPIO
• Hinweis: Zugriff auf GPIO erfordert root Recht
13. Beispiel: RPi.GPIO
• LED einschalten
import RPi.GPIO as io
# header pin numbering
io.setmode(io.BCM)
# Setup one output channel
io.setup(18, io.OUT)
# set pin output high
io.output(18, io.HIGH)
https://projects.drogon.net/raspberry-pi/gpio-examples/tux-crossing/gpio-examples-1-a-single-led/
15. Bewegungsmelder
• Bewegungsmelder als einfacher Sensor
• PIR-Bewegungsmelder (passive infrared) sind kostengünstig und effizient
• Anschluss über GPIO
• Steuerung per Python-Script (RPi Library)
• Achtung: nur Sensoren mit 3.3 V
Ausgangsspannung verwenden!
• Schaltung
• PIR-Bewegungsmelder schaltet
gelben PIN auf 3.3V
• Anschluss an 5V (rot) und GND (schwarz)
siehe https://learn.adafruit.com/adafruits-raspberry-pi-lesson-12-sensing-movement/
16. Bewegungsmelder
auslesen
• Python Code
import time
import RPi.GPIO as io
io.setmode(io.BCM)
pir_pin = 18
io.setup(pir_pin, io.IN)
while True:
if io.input(pir_pin):
print("PIR MOTION")
time.sleep(1)
17. Temperaturmessung
• Um Temperaturen zu messen, braucht man
• einen Sensor, der Temperatur in eine Spannung umsetzt
• einen A/D-Wandler, der das analoge Signal digitalisiert
• aber: Raspberry Pi unterstützt nur digitale Signale (via GPIO)
• Temperatursensor für Raspi: DS1820(B)
• ist Temperatursensor und A/D-Wandler in einem
• ist bereits kalibriert (Genauigkeit +-0,5°C)
• verwendet 1-Wire-Ausgang
• d.h. man benötigt nur einen einzigen GPIO-Pin (auch für mehrere Sensoren)
18. Temperatursensor: Anschluss
• Vorbereitung (Linux)
• 1. Aktivierung des Device Tree Overlay für 1-wire - in /boot/config.txt
dtoverlay=w1-gpio
• 2. Kernelmodule laden (permanent) - in /etc/modules
w1-gpio pullup=1
w1-therm
• Schaltung
• DQ an GPIO Port 4 (ist für den Einsatz als 1wire-Bus vorgesehen!)
• VDD an 3,3V (rot)
• GND an GND (schwarz)
• Pull-up Widerstand 4,7 kOhm
Quelle: https://www.raspiprojekt.de/machen/basics/schaltungen/9-1wire-mit-temperatursensor-ds18b20.html
20. Funksteckdose
• Technik
• Funksteckdosen mit Fernbedienung sind verbreitet und
kostengünstig (z.B. Elro AB440S/3C Funksteckdosen Set)
• Steuerung Funksteckdose erfolgt über 433 MHz Frequenz
• via 434MHz RF Link Transmitter (Sendemodul)
• Python Bibliotheken
• elropi.py - verwendet RPi.GPIO Library
http://pastebin.com/aRipYrZ6
• elro_wiringpi.py - verwendet WiringPi Library
http://www.raspberrypi.org/forums/viewtopic.php?f=32&t=32177
$ python elro_wiringpi.py 8 1 # Switch D is turned on
21. Funksteckdose: Anschluss des Sendemoduls
• Schaltung
• DATA an GPIO Port (gelb)
• VCC an 5V (rot)
• GND an GND (schwarz)
• ANT
• Antennenkabel (17 cm)
• Bild: https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=66946
s. auch https://alexbloggt.com/funksteckdosen-raspberry-pi-teil1/
22. Funksteckdose steuern
• Python Code
• verwendet elro.py
import time
from elro import RemoteSwitch
# Variablen entsprechend der dip-Schalter anpassen!
default_key = [1,0,0,0,1] # Gerätecode („system code“)
device_num = 1 # 1. Steckdose („unit code“)
# GPIO pin an Verdrahtung auf Raspberry Pi anpassen!
default_pin =17
device = RemoteSwitch(device=device_num,
key=default_key,
pin=default_pin)
device.switchOn()
time.sleep(5)
device.switchOff()
23. Kamera
• Anbindung einer Kamera
• Fotos lassen sich am einfachsten mit einer USB-WebCam aufnehmen
• Bild aufnehmen von WebCam (Linux)
$ apt-get install fswebcam
$ fswebcam -v -r "640×480" test.jpg
• Ausblick
• Das (Linux) motion-Paket bietet Bewegungs-Erkennung (Motion Detection)
• Die Python-Bibliothek OpenCV bietet weitreichende Möglichkeiten
zur Weiterverarbeitung (inkl. Bilderkennung) …
34. Links
• Raspberry Pi Tutorials & Seiten zum Einstieg
• Raspberry Pi Wiki: http://elinux.org/RPi_Hub
• Flask on Pi Tutorial http://flaskpi.com/tutorials
• Tutorial-Übersicht: http://www.forum-raspberrypi.de/Thread-tutorial-uebersicht
• Tutorial-Website: http://raspberrypiguide.de
• Nützliche Raspberry Pi Websites
• Raspberry Foundation (EN): http://www.raspberrypi.org
• Adafruit (Tutorials, hardware kits, etc. - EN): http://learn.adafruit.com
• Online-Magazin (EN): http://www.themagpi.com
35. Literatur
• Raspberry Pi - Einstieg • Optimierung • Projekte
Maik Schmitd, dpunkt Verlag
http://www.dpunkt.de/raspi
• Getting Started with Raspberry Pi (Englisch)
Verlag: o’reilly/makers
http://blog.makezine.com/2012/12/25/ten-raspberry-pi-tips
• Hacking Electronics: An Illustrated DIY Guide
for Makers and Hobbyists (Englisch)
Verlag: Mcgraw-Hill Publ.Comp.
http://www.amazon.de/Hacking-Electronics-Illustrated-Makers-Hobbyists/dp/0071802363
36. Copyrights
• Markennamen
• The Raspberry PiWord Mark and Raspberry Pi Logo are owned by the Raspberry Pi Foundation.
• All brand names names and marks mentioned may be trademarks or registered
trademarks of their respective owners.
• Bildquellen:
• Logos: python.org, http://www.raspberrypi.org , pycologne.de
• PIR Sensor Closeup, PIR Breadboard Layout, ...
• https://learn.adafruit.com/assets
• by Simon Monk (Attribution Creative Commons License)
• Indy Car in Garage: Flickr (creative commons share-alike)
Thanks to John P.
• House in rural Puxin Township: Flickr (Attribution-NonCommercial 2.0 Generic)
Thanks to Alexander Synaptic