Lüftersteuerung

Werbung
Raspberry Pi
Lüftersteuerung
Jugend Programmiert
Lüftersteuerung Raspberry Pi
Vorwort
Alle Schaltungen, Programme und Bauteile wurden vorher von uns Geprüft.
Trotzdem können wir leider Fehler im Buch, den Schaltungen oder
Programmen nicht ausschließen. Bei Fragen oder Problemen gibt es unten
die Kontaktmöglichkeiten. Mehr Informationen findest du auch auf der
Internetadresse der Seitenzahl.
LEDs
sollten nicht aus naher Entfernung direkt angesehen werden, ein direkter
Blick kann zu Schäden an den Netzhäuten führen. Diese kann gefährlich
sein, auch wenn sie nicht sofort klar erkennbar sind. Die LEDs dürfen nur wie
in den Anleitungen beschrieben verwendet werden, höhere Ströme oder
Stromspannungen sind zu vermeiden.
Dieses Produkt entspricht den geltenden Europäischen Richtlinien und trägt
ein CE-Kennzeichen. Der richtige Gebrauch ist in dem Beiliegenden Buch
erklärt.
Bauen sie Schaltungen immer wie beschrieben auch, achten sie auf die
Verschiedenen GPIO Pins vom Raspberry Pi.
Herausgeber
Jugend Programmiert
Coding World UG (haftungsbeschränkt) | Homwer.com
Obdrupstraße 23 A, 24986 Mittelangeln
www.codingworld.io
Support: [email protected]
Feedback: [email protected]
→ cw42.de/luefter/1
Lüftersteuerung Raspberry Pi
Raspberry Pi Lüfter steuern
Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden
hast. Programme sind überall, sichtbar und unsichtbar. Als Programmierer
verstehst du die moderne Welt und hast die Macht diese etwas besser zu
machen. Viel Spaß mit diesem praxisorientierten Python3 Hardware
programmieren Tutorial, wünscht die das Team von Jugend Programmiert.
In dieser Anleitung zeigen wir dir wie man die einen Lüfter und drei Status
LEDs an den Pi anschließt und steuert. Mit den LEDs zeigen wir wie warm
dein Pi ist. Wird er zu heiß, schalten wir den Lüfter an. Wenn der Pi kalt ist
schalten wir den Lüfter wieder aus. Wir benutzen Pyrthon3 als
Programmiersprache. Einen Einstieg in Python3 bekommst du in unserem
Starterkit.
Vor dem Start: Du brauchst einen Raspberry Pi mit installiertem Raspbian.
Alle Informationen zum Installieren, Updaten, Upgraden und einrichten
deines Systems bekommst du im Raspberry Pi 3 Starter Guide aus dem Pi3
Starter Set (link)
Was wir machen: In dieser Anleitung zeigen wir die die Grundlagen von
Python3 beim steuern von GPIO Pins. In dem Raspberry Pi
Temperatursteuerungs Kit, findest du die Hardware die du benötigst. Schritt
für Schritt erklären wir dir, wir du deine Steuerung programmierst und
aufbaust. Am Anfang programmieren wir das Auslesen der CPU Temperatur
deines Raspberry Pi. Dann legen wir drei Temperaturbereiche fest. Mit LEDs
zeigen wir an in welchem Temperatur-Bereich dein Pi gerade ist. Falls der Pi
zu warm wird, schalten wir den Lüfter ein.
1: Temperatur auslesen
In diesem Teil lesen wir die Temperatur des Pi aus und vergleichen diese mit
drei Werten für normal, warm und heiß. Wir geben eine Meldung aus wie
warm der Pi gerade ist und welcher Temperaturbereich das ist. Hardware
brauchst du dafür nicht, die nutzen wir im zweiten Teil.
Öffne ein Terminal oder logge dich über SSH auf der Konsole deines Pi ein.
→ cw42.de/luefter/2
Lüftersteuerung Raspberry Pi
Als erstes wollen wir die Temperatur auslesen. Die Temperatur deiner CPU
steht in der Datei /sys/class/thermal/thermal_zone0/temp . Auslesen
und ausgeben der Temperatur geht z.B. mit dem Befehl cat
/sys/class/thermal/thermal_zone0/temp Das Ergebnis wird ohne ,
dargestellt aber mit 3 dezimalen. Zum Beispiel; 45622 das sind 45,622
Grad Celsius.
Jetzt wir wissen in welcher Datei die CPU Temperatur gespeichert ist. Diese
Datei wollen wir mit Python auslesen.
Unser Programm heißt Temperatur.py und sollte im Verzeichnis /home/pi
liegen. Erstelle oder öffne eine neue Datei mit dem Befehl nano
Temperatur.py Falls es Datei schon gibt, wird diese geöffnet, falls nicht,
erstellt der Pi eine neue leere Datei. Mit ctrl+o speicherst du die Datei.
ctrl+x schließt du die Datei. Du kannst auch einen anderen Editor
verwenden falls du nano nicht magst.
In die erste Zeile schreiben wir einen Kommentar. Kommentare fangen
immer mit # an und werden beim ausführen des Programms ignoriert.
Schreibe in die erste Zeile:
Python
1
2
#Lüftersteuerung Version 1.
#Geschrieben von – Dein Name -
Es ist eine gute Idee Kommentare in dein Programm zu schreiben. Dann
weist du später was dein Programm an dieser stelle macht. Wir fangen mit
dem ersten Teil an, dem einlesen der Temperatur und der Ausgabe in der
Konsole.
1
2
3
4
5
Python
tempData = "/sys/class/thermal/thermal_zone0/temp"
dateilesen = open(tempData, "r")
temperatur = dateilesen.readline(2)
dateilesen.close()
print("Deine CPU hat " + temperatur + " Grad")
Erst speichern wir den Pfad der zu öffnenden Datei in einer Variable. Dann
öffnen wir die Datei mit Python. Das geschieht in Zeile 2. dateilesen =
→ cw42.de/luefter/3
Lüftersteuerung Raspberry Pi
open(„Pfad zu der Datei die du lesen willst“, „r“) das , „r“
steht für das englische Wort Read. Wir wollen die Datei ja nur lesen. In der
dritten Zeile lesen wir die erste Zeile unserer Datei und speichern den Wert
in eine variable mit dem Namen temperatur . Die (2) ist die Anzahl der
Zeichen dir wir einlesen wollen. Ohne die 2 wird die ganze Zeile eingelesen,
auch der nicht sichtbare Zeilenumbruch am Ende. Das kannst du einfach
mal ausprobieren. Mit dateilesen.close() schließen wir die Datei, wir
brauchen Sie nicht mehr. Der Wert, die Temperatur, haben wir ja gerade in
die Variable temperatur geschrieben. Die 5. Zeile gibt unsere Temperatur
aus. Damit es schöner aussieht haben wir vor und hinter der Temperatur
noch etwas Text geschrieben.
Damit dich dieser erste Teil nicht überfordert fassen wir das ganze noch mal
zusammen.
Wir öffnen eine Datei. Lesen aus dieser die erste Zeile aus und schreiben
den Inhalt dieser Zeile in eine Variable. Wir schließen die Datei. Dann geben
wir einen Text in der Konsole aus, dann die Variable und noch mehr Text.
Jetzt starten wir dein Programm. Das machst du mit dem Befehl python3
Temperatur.py Es sollte dir diesen Satz ausgeben:
Deine CPU hat 45 Grad
2. Temperaturen festlegen
Jetzt wissen wir wir warm der Pi ist. Abhängig von der Temperatur wollen wir
den Lüfter ein oder aus machen und eine oder mehr LEDs zum leuchten
bringen.
Wir müssen unserem Programm sagen welche Temperatur normal, warm
oder heiß ist. Dafür öffnest du wieder dein Programm mit nano und schreibst
folgende Zeilen rein.
Python
1
normal = 30
2
3
warm = 50
heiss = 60
→ cw42.de/luefter/4
Lüftersteuerung Raspberry Pi
Diese Werte könnt Ihr frei anpassen, achtet darauf, dass normal kälter als
warm ist und warm kälter als heiss. In Python werden Werte in Variablen
gespeichert. Diese unterscheiden zwischen Text (String) und Nummern
(Integer). Es gibt Variablen in denen stehen Sachen wie „Ich bin ein Text“
und andere in denen stehen Nummern zum Beispiel 5132. Unsere
Temperaturen sind Nummern, also Integer. Aus der CPU Temperatur Datei
bekommen wir einen Text. (String). Zum Glück ist der String eine Nummer.
Wir wandeln den String in einen Integer um mit den Zeilen:
Python
1
temperatur = int(temperatur)
Jetzt vergleichen wir die Temperatur mit unseren Werten:
Python
1
if temperatur <= normal:
2
3
print ("Die CPU ist normal, grüne LED an.")
if temperatur <= warm:
4
5
6
7
print ("Die CPU ist warm, gelbe LED an")
if temperatur >= heiss:
print ("Die CPU heiss! Rote LED an!")
print ("Den Lüfter schalten wir auch an.")
Eine If abfrage vergleicht zwei Werte und führt Befehle aus falls diese
zutreffen oder nicht. In der ersten Zeile sagen wir if temperatur <= normal
geben die folgende Zeile aus. Falls die Temperatur nicht kleiner ist, wird der
Befehl nicht ausgeführt. In der nächsten Zeile fragen wir ob die Temperatur >
(größer) als warm ist und falls das zutrifft führen wir den nächsten Befehl
aus. Die letzte Abfrage schaut ob die Temperatur größer oder gleich heiss ist
und führt einen Befehl aus, oder auch nicht. Achtet darauf dass der Code
der ausgeführt werden soll mit SPACE (Leertaste) oder Tab eingerückt
werden muss. Wir listen dir noch mal alle Vergleichsoperatoren auf. Python
kann nicht nur kleiner, größer, usw. sonder auch == (ist gleich) und != ist
nicht gleich.
→ cw42.de/luefter/5
Lüftersteuerung Raspberry Pi
Vergleiche in Python
kleiner als
<
größer als
>
kleiner oder gleich als
<=
größer oder kleiner als
>=
gleich
==
nicht gleich
!=
Jetzt haben wir schon eine funktionierende Temperatur Anzeige. Führe dein
Programm aus mit python3 Temperatur.py . Im nächsten Teil bringen wir
die GPIOs ins Spiel und lassen die LEDs leuchten.
3: LED Aufbau
In diesem Teil zeigen wir dir wie man die GPIO Pins des Raspberry Pi
benutzt. Mit diesen bringen wir unsere LEDs zum leuchten und steuern den
Lüfter.
Auf dem Bild siehst du den Aufbau. Schalte deinen Pi aus und baue den
→ cw42.de/luefter/6
Lüftersteuerung Raspberry Pi
Aufbau mit den mitgelieferten Teilen nach. Anstatt des Lüfters verwenden wir
erstmal eine LED. Die LEDs solltest du immer über Widerstand anschließen,
ansonsten können sie kaputt gehen. Das lange Bein der LED ist die Anode
(+) und das kurze Bein die Kathode (-). Der Aufbau ist immer Pin,
Widerstand, LED, und dann zu GND (Ground oder Minus)
Pin
2
Widerstand 56 Ohm
Grüne LED langes
Bein
3
Widerstand 56 Ohm
Gelbe LED langes
Bein
4
Widerstand 56 Ohm
Rote LED langes
Bein
17
Widerstand 56 Ohm
LED langes Bein
GND
Verbindest du mit Minus auf dem
Breadboard
Die kurzen Beine der LED verbindest du direkt mit Ground (minus) auf dem
Breadboard. Super jetzt wollen wir die LEDs zum leuchten bringen. Starte
deinen Pi.
4: Lüfter und LEDs über Steuern
Damit wir die GPIOs mit Python steuern, brauchen wir die GPIO Bibliothek.
Diese binden wir am Anfang unseres Scripts ein. Außerdem importieren wir
die Bibliothek time . Diese ermöglicht uns den Zugriff auf Befehle wie z.B.
time.sleep(10) was unser Programm 10 Sekunden schlafen lässt.
Python
1
import RPi.GPIO as GPIO
2
import time
Jetzt definieren wir die Pins die wir belegen wollen. Für jedes Signal
→ cw42.de/luefter/7
Lüftersteuerung Raspberry Pi
brauchen wir einen Pin. Wir benutzen 3 LEDs. Grün, gelb, rot und den
Lüfter wir brauchen also 4 Pins. Dazu kommen noch + und - . Die GPIO Pins
können als Eingang oder Ausgang benutzt werden. Eingänge sind für
Signale z.B.von Temperatursensoren. Mit Ausgängen kann man Dinge mit
Energie versorgen. Für unsere LEDs und den Lüfter brauchen wir
Ausgänge. Es gibt verschiedene Möglichkeiten um die 40. Pins auf dem Pi
zu zählen. Wir benutzen BCM. Das ist die Belegung auf dem roten
Referenzbord aus dem Starter Kit und auf der kleinen Karte die im Set liegt.
Wie wir die Pins ansprechen definieren wir mit der Zeile
GPIO.setmode(GPIO.BCM) . Jetzt müssen wir noch festlegen welche Pins
wir benutzen wollen. Jeden Pin müssen wir einzeln aktivieren. Wir nutzen
2,3,4 und 17 als Ausgänge.
Python
1
2
GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.OUT)
3
GPIO.setup(3, GPIO.OUT)
4
5
GPIO.setup(4, GPIO.OUT)
GPIO.setup(17, GPIO.OUT)
Das Programm weiß nun, dass wir diese Pins als Ausgang nutzen. Ein
Ausgang kann zwei Zustände haben. An (high) oder aus (low). Wir machen
erst mal alle Pins aus.
Python
1
GPIO.output(2, GPIO.LOW)
2
GPIO.output(3, GPIO.LOW)
GPIO.output(4, GPIO.LOW)
3
4
GPIO.output(17, GPIO.LOW)
Mit diesen Zeilen schalten wir die GPIO.output Pins mit den Nummern
2,3,4,17 auf LOW, also auf aus. Du kannst die Pins auch auf HIGH stellen,
der Code sieht dann so aus:
GPIO.output(5, GPIO.HIGH)
Stelle sicher dass deine LEDs richtig angeschlossen sind und schalte sie an
und aus. Zwischen dem an und aus kannst du Pausen einbauen, ohne
pause schaltet die LED so schnell, dass du das nicht sehen kannst.
→ cw42.de/luefter/8
Herunterladen