Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du...

9
Raspberry Pi Raspberry Pi Lüftersteuerung Lüftersteuerung Jugend Programmiert Jugend Programmiert

Transcript of Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du...

Page 1: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

Raspberry PiRaspberry Pi

LüftersteuerungLüftersteuerung

Jugend ProgrammiertJugend Programmiert

Page 2: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

VorwortAlle Schaltungen, Programme und Bauteile wurden vorher von uns Geprüft.Trotzdem können wir leider Fehler im Buch, den Schaltungen oderProgrammen nicht ausschließen. Bei Fragen oder Problemen gibt es untendie Kontaktmöglichkeiten. Mehr Informationen findest du auch auf derInternetadresse der Seitenzahl.

LEDssollten nicht aus naher Entfernung direkt angesehen werden, ein direkterBlick kann zu Schäden an den Netzhäuten führen. Diese kann gefährlichsein, auch wenn sie nicht sofort klar erkennbar sind. Die LEDs dürfen nur wiein den Anleitungen beschrieben verwendet werden, höhere Ströme oderStromspannungen sind zu vermeiden.

Dieses Produkt entspricht den geltenden Europäischen Richtlinien und trägtein CE-Kennzeichen. Der richtige Gebrauch ist in dem Beiliegenden Bucherklärt.

Bauen sie Schaltungen immer wie beschrieben auch, achten sie auf dieVerschiedenen GPIO Pins vom Raspberry Pi.

HerausgeberJugend Programmiert Coding World UG (haftungsbeschränkt) | Homwer.comObdrupstraße 23 A, 24986 Mittelangelnwww.codingworld.io Support: [email protected] Feedback: [email protected]

→ cw42.de/luefter/1

Lüftersteuerung Raspberry Pi

Page 3: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

Raspberry Pi Lüfter steuernWir freuen uns das du dich für ein Jugend Programmiert Kit entschiedenhast. Programme sind überall, sichtbar und unsichtbar. Als Programmiererverstehst du die moderne Welt und hast die Macht diese etwas besser zumachen. Viel Spaß mit diesem praxisorientierten Python3 Hardwareprogrammieren Tutorial, wünscht die das Team von Jugend Programmiert.

In dieser Anleitung zeigen wir dir wie man die einen Lüfter und drei StatusLEDs an den Pi anschließt und steuert. Mit den LEDs zeigen wir wie warmdein Pi ist. Wird er zu heiß, schalten wir den Lüfter an. Wenn der Pi kalt istschalten wir den Lüfter wieder aus. Wir benutzen Pyrthon3 alsProgrammiersprache. Einen Einstieg in Python3 bekommst du in unseremStarterkit.

Vor dem Start: Du brauchst einen Raspberry Pi mit installiertem Raspbian.Alle Informationen zum Installieren, Updaten, Upgraden und einrichtendeines Systems bekommst du im Raspberry Pi 3 Starter Guide aus dem Pi3Starter Set (link)

Was wir machen: In dieser Anleitung zeigen wir die die Grundlagen vonPython3 beim steuern von GPIO Pins. In dem Raspberry PiTemperatursteuerungs Kit, findest du die Hardware die du benötigst. Schrittfür Schritt erklären wir dir, wir du deine Steuerung programmierst undaufbaust. Am Anfang programmieren wir das Auslesen der CPU Temperaturdeines Raspberry Pi. Dann legen wir drei Temperaturbereiche fest. Mit LEDszeigen wir an in welchem Temperatur-Bereich dein Pi gerade ist. Falls der Pizu warm wird, schalten wir den Lüfter ein.

1: Temperatur auslesenIn diesem Teil lesen wir die Temperatur des Pi aus und vergleichen diese mitdrei Werten für normal, warm und heiß. Wir geben eine Meldung aus wiewarm der Pi gerade ist und welcher Temperaturbereich das ist. Hardwarebrauchst 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

Page 4: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

Als erstes wollen wir die Temperatur auslesen. Die Temperatur deiner CPUsteht in der Datei /sys/class/thermal/thermal_zone0/temp . Auslesenund 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,622Grad Celsius.

Jetzt wir wissen in welcher Datei die CPU Temperatur gespeichert ist. DieseDatei wollen wir mit Python auslesen.

Unser Programm heißt Temperatur.py und sollte im Verzeichnis /home/piliegen. Erstelle oder öffne eine neue Datei mit dem Befehl nanoTemperatur.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 fangenimmer mit # an und werden beim ausführen des Programms ignoriert.Schreibe in die erste Zeile:

Es ist eine gute Idee Kommentare in dein Programm zu schreiben. Dannweist du später was dein Programm an dieser stelle macht. Wir fangen mitdem ersten Teil an, dem einlesen der Temperatur und der Ausgabe in derKonsole.

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 =

#Lüftersteuerung Version 1.#Geschrieben von – Dein Name -

12

tempData = "/sys/class/thermal/thermal_zone0/temp"dateilesen = open(tempData, "r")temperatur = dateilesen.readline(2)dateilesen.close()print("Deine CPU hat " + temperatur + " Grad")

12345

Python

Python

→ cw42.de/luefter/3

Lüftersteuerung Raspberry Pi

Page 5: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

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 derdritten Zeile lesen wir die erste Zeile unserer Datei und speichern den Wertin eine variable mit dem Namen temperatur . Die (2) ist die Anzahl derZeichen dir wir einlesen wollen. Ohne die 2 wird die ganze Zeile eingelesen,auch der nicht sichtbare Zeilenumbruch am Ende. Das kannst du einfachmal ausprobieren. Mit dateilesen.close() schließen wir die Datei, wirbrauchen Sie nicht mehr. Der Wert, die Temperatur, haben wir ja gerade indie Variable temperatur geschrieben. Die 5. Zeile gibt unsere Temperaturaus. Damit es schöner aussieht haben wir vor und hinter der Temperaturnoch etwas Text geschrieben.

Damit dich dieser erste Teil nicht überfordert fassen wir das ganze noch malzusammen.

Wir öffnen eine Datei. Lesen aus dieser die erste Zeile aus und schreibenden Inhalt dieser Zeile in eine Variable. Wir schließen die Datei. Dann gebenwir einen Text in der Konsole aus, dann die Variable und noch mehr Text.

Jetzt starten wir dein Programm. Das machst du mit dem Befehl python3Temperatur.py Es sollte dir diesen Satz ausgeben:

Deine CPU hat 45 Grad

2. Temperaturen festlegenJetzt wissen wir wir warm der Pi ist. Abhängig von der Temperatur wollen wirden Lüfter ein oder aus machen und eine oder mehr LEDs zum leuchtenbringen.

Wir müssen unserem Programm sagen welche Temperatur normal, warmoder heiß ist. Dafür öffnest du wieder dein Programm mit nano und schreibstfolgende Zeilen rein.

normal = 30warm = 50heiss = 60

123

Python

→ cw42.de/luefter/4

Lüftersteuerung Raspberry Pi

Page 6: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

Diese Werte könnt Ihr frei anpassen, achtet darauf, dass normal kälter alswarm ist und warm kälter als heiss. In Python werden Werte in Variablengespeichert. 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. UnsereTemperaturen sind Nummern, also Integer. Aus der CPU Temperatur Dateibekommen wir einen Text. (String). Zum Glück ist der String eine Nummer.Wir wandeln den String in einen Integer um mit den Zeilen:

Jetzt vergleichen wir die Temperatur mit unseren Werten:

Eine If abfrage vergleicht zwei Werte und führt Befehle aus falls diesezutreffen oder nicht. In der ersten Zeile sagen wir if temperatur <= normalgeben die folgende Zeile aus. Falls die Temperatur nicht kleiner ist, wird derBefehl 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 Befehlaus. Die letzte Abfrage schaut ob die Temperatur größer oder gleich heiss istund führt einen Befehl aus, oder auch nicht. Achtet darauf dass der Codeder ausgeführt werden soll mit SPACE (Leertaste) oder Tab eingerücktwerden muss. Wir listen dir noch mal alle Vergleichsoperatoren auf. Pythonkann nicht nur kleiner, größer, usw. sonder auch == (ist gleich) und != istnicht gleich.

temperatur = int(temperatur)1

if temperatur <= normal: print ("Die CPU ist normal, grüne LED an.")if temperatur <= warm: 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.")

1234567

Python

Python

→ cw42.de/luefter/5

Lüftersteuerung Raspberry Pi

Page 7: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

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 deinProgramm aus mit python3 Temperatur.py . Im nächsten Teil bringen wirdie GPIOs ins Spiel und lassen die LEDs leuchten.

3: LED AufbauIn diesem Teil zeigen wir dir wie man die GPIO Pins des Raspberry Pibenutzt. Mit diesen bringen wir unsere LEDs zum leuchten und steuern denLüfter.

Auf dem Bild siehst du den Aufbau. Schalte deinen Pi aus und baue den

→ cw42.de/luefter/6

Lüftersteuerung Raspberry Pi

Page 8: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

Aufbau mit den mitgelieferten Teilen nach. Anstatt des Lüfters verwenden wirerstmal 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 langesBein

3 Widerstand 56 Ohm Gelbe LED langesBein

4 Widerstand 56 Ohm Rote LED langesBein

17 Widerstand 56 Ohm LED langes Bein

GND Verbindest du mit Minus auf demBreadboard

Die kurzen Beine der LED verbindest du direkt mit Ground (minus) auf demBreadboard. Super jetzt wollen wir die LEDs zum leuchten bringen. Startedeinen Pi.

4: Lüfter und LEDs über SteuernDamit wir die GPIOs mit Python steuern, brauchen wir die GPIO Bibliothek.Diese binden wir am Anfang unseres Scripts ein. Außerdem importieren wirdie Bibliothek time . Diese ermöglicht uns den Zugriff auf Befehle wie z.B.time.sleep(10) was unser Programm 10 Sekunden schlafen lässt.

Jetzt definieren wir die Pins die wir belegen wollen. Für jedes Signal

import RPi.GPIO as GPIOimport time

12

Python

→ cw42.de/luefter/7

Lüftersteuerung Raspberry Pi

Page 9: Raspberry Pi Lüftersteuerung · 2016-12-07 · Raspberry Pi Lüfter steuern Wir freuen uns das du dich für ein Jugend Programmiert Kit entschieden hast. Programme sind überall,

brauchen wir einen Pin. Wir benutzen 3 LEDs. Grün, gelb, rot und denLüfter wir brauchen also 4 Pins. Dazu kommen noch + und - . Die GPIO Pinskönnen als Eingang oder Ausgang benutzt werden. Eingänge sind fürSignale z.B.von Temperatursensoren. Mit Ausgängen kann man Dinge mitEnergie versorgen. Für unsere LEDs und den Lüfter brauchen wirAusgänge. Es gibt verschiedene Möglichkeiten um die 40. Pins auf dem Pizu zählen. Wir benutzen BCM. Das ist die Belegung auf dem rotenReferenzbord aus dem Starter Kit und auf der kleinen Karte die im Set liegt.Wie wir die Pins ansprechen definieren wir mit der ZeileGPIO.setmode(GPIO.BCM) . Jetzt müssen wir noch festlegen welche Pins

wir benutzen wollen. Jeden Pin müssen wir einzeln aktivieren. Wir nutzen2,3,4 und 17 als Ausgänge.

Das Programm weiß nun, dass wir diese Pins als Ausgang nutzen. EinAusgang kann zwei Zustände haben. An (high) oder aus (low). Wir machenerst mal alle Pins aus.

Mit diesen Zeilen schalten wir die GPIO.output Pins mit den Nummern2,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 anund aus. Zwischen dem an und aus kannst du Pausen einbauen, ohnepause schaltet die LED so schnell, dass du das nicht sehen kannst.

GPIO.setmode(GPIO.BCM)GPIO.setup(2, GPIO.OUT)GPIO.setup(3, GPIO.OUT)GPIO.setup(4, GPIO.OUT)GPIO.setup(17, GPIO.OUT)

12345

GPIO.output(2, GPIO.LOW)GPIO.output(3, GPIO.LOW)GPIO.output(4, GPIO.LOW)GPIO.output(17, GPIO.LOW)

1234

Python

Python

→ cw42.de/luefter/8

Lüftersteuerung Raspberry Pi