In diesem Beitrag möchte ich dir zeigen wie du den analogen Temperatursensor LM35DZ am Raspberry PI Pico anschließt und später den Wert auf einem OLED Display anzeigen lassen kannst.
Den Temperatursensor LM35DZ habe ich bereits in diversen Beiträgen zu den Mikrocontrollern wie Arduino und ESP eingesetzt.
- Arduino Lektion 5: Temperatur messen
- Arduino Lektion #101: Multifunktionales Shield “Easy Module MIX V1” von YwRobot
- Programmieren mit MicroPython #3: analoger Temperatursensor LM35DZ am ESP32
Bezug eines LM35DZ
Den kleinen, analogen Temperatursensor bekommst du recht günstig bei ebay.de* für 1,99 € zzgl. Versandkosten.
Natürlich bekommst du diesen Temperatursensor auch bei amazon.de* oder auch bei aliexpress.com oder banggood.com. Jedoch sind dort meist die Versandkosten höher als die Kosten für Sensor.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Aufbau der Schaltung „LM35DZ am PI Pico“
Zunächst zeige ich dir, wie du die kleine Schaltung aufbaust, dazu benötigst du lediglich:
- ein Raspberry PI Pico*,
- ein USB Datenkabel*,
- einen analogen Temperatursensor LM35DZ*,
- drei Breadboardkabel*,
- ein 170 Pin Breadboard*
Pinout des analogen Temperatursensors LM35DZ
Der analoge Temperatursensor LM35DZ hat 3 Pins (+Vs, Vout, GND).
Schaltung am Raspberry PI Pico
Die Schaltung am Raspberry Pi Pico ist recht einfach, denn der kleine Sensor wird lediglich über 3 Breadboardkabel angeschlossen
LM35DZ | Raspberry Pi Pico |
---|---|
GND | Pin 38, GND |
Vout | GP26, ADC0 |
+Vs | Pin 36, 3,3V |
Programmieren im Thonny Editor mit MicroPython
Nachdem die Schaltung nun aufgebaut wurde, können im Editor „Thonny“ in der Sprache MicroPython das Programm schreiben.
Wie du den Editor Thonny auf deinem Computer einrichtest, habe ich dir bereits im Beitrag Raspberry PI Pico #1 – Vorstellung ausführlich vorgestellt.
Ausgeben der Werte auf der Konsole
Zunächst wollen wir die Werte des analogen Sensors auf der Konsole ausgeben.
Dabei ist wichtig, dass der Sensor am ADC0 also GPIO26 angeschlossen wird, denn dieser Pin ist mit der internen Referenzspannung versorgt und nur so erhält man einen korrekten Wert!
from machine import ADC, Pin # Module für die Kommunikation mit den GPIO Pins from time import sleep # Modul zum Erzeugen einer Pause im Code lm35dz = ADC(26) # analoger Temperatursensor am GPIO26 angeschlossen conversion_factor = 3.3 / 65535 # Umrechnungsfaktor # beginn der Endlosschleife while True: analogValue = lm35dz.read_u16() # lesen des aktuellen analogen Wertes # berechnen des Temperaturwertes volts = analogValue * conversion_factor temp = volts * 100 # Millivolt in Temperatur Grad Celsius umrechnen # formierte Ausgabe der Temperatur auf der Konsole mit 2 Nachkommastellen print(round(temp,2), "°C") sleep(2) # eine Pause von 2 Sekunden einlegen
Ausgeben der Werte auf einem OLED Display
Im Beitrag Raspberry PI Pico #5 – Ultraschallabstandssensor RCW-001 & OLED Display anschließen habe ich dir bereits ein kleines Projekt mit einem OLED Display gezeigt. Hier möchte ich dir nun zeigen wie du die analogen Temperaturwerte des LM35DZ auf diesem kleinen OLED Display anzeigen lassen kannst.
Bezug eines OLED Displays
Das OLED Display bekommst du auf aliexpress.com zu einem unschlagbaren Preis, jedoch musst du hier mit einer sehr langen Lieferzeit rechnen bzw. diese einkalkulieren.
Auch günstig aber deutlich schneller bekommst du dieses teilweise auf ebay.de, wo sich einige deutsche Händler befinden welche Lieferzeiten von max. 1 Woche anbieten.
Aufbau der Schaltung „LM35DZ mit OLED Display am PI Pico“
In die bestehende Schaltung wird nun ein OLED Display eingebaut, dieses wird über I2C angeschlossen.
Ein ähnliches OLED Display habe ich bereits im Beitrag Raspberry PI Pico #5 – Ultraschallabstandssensor RCW-001 & OLED Display anschließen verwendet.
Sensor / Aktor | Raspberry Pi Pico |
---|---|
OLED Display | |
GND | Pin 18, GND |
VCC | Pin 36, 3v3 |
SDA | GP0, SDA |
SCL | GP1, SCL |
LM35DZ | |
GND | Pin 18, GND |
Vout | GP26, ADC0 |
+Vs | Pin 36, 3v3 |
Für den Aufbau der Schaltung verwende ich mein selbst erstelltes Erweiterungsboard für den Raspberry Pi Pico.
Programm
Für das nachfolgende Programm benötigst du eine zusätzliche Bibliothek für das OLED Display. Diese zusätzliche Bibliothek wird über “Extras” > “Verwalte Pakete…” hinzugefügt.
Zunächst wird nach dem Schlagwort „ssd1306“ gesucht und in der Liste der Ergebnisse der erste Eintrag ausgewählt und installiert.
#Bibliotheken für die Kommunikation mit #GPIOs, dem analogen Sensor LM35DZ und #dem OLED Display via I2C from machine import ADC, Pin, I2C from time import sleep from ssd1306 import SSD1306_I2C #OLED Display am I2C 1 angeschlossen i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000) oled = SSD1306_I2C(128, 32, i2c) #LM35DZ am GPIO26, ADC0 angeschlossen lm35dz = ADC(26) conversion_factor = 3.3 / 65535 while True: analogValue = lm35dz.read_u16() volts = analogValue * conversion_factor temp = volts * 100 #Zeichenkette zusammenbauen value = "Temp." + str(round(temp,2)) + "C" #das Display in Schwarz färben (alles löschen) oled.fill(0) #ausgeben der Zeichenkette an Spalte 0 und Zeile 0 oled.text("LM35DZ", 0, 0) #ausgeben der zuvor aufgebauten Zeichenkette #an Spalte 0 und Zeile 15 oled.text(value, 0, 15) #anzeigen des Textes oled.show() #eine Pause von 2 Sekunden sleep(2)