Raspberry PI Pico #8 – Temperatursensor LM35DZ

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.

Bezug eines LM35DZ

Den kleinen, analogen Temperatursensor bekommst du recht günstig bei ebay.de für 1,99 € zzgl. Versandkosten.

Temperatursensor LM35DZ
Temperatursensor LM35DZ

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.

Aufbau der Schaltung „LM35DZ am PI Pico“

Zunächst zeige ich dir, wie du die kleine Schaltung aufbaust, dazu benötigst du lediglich:

Schaltung - Raspberry Pi Pico mit analogem Temperatursensor LM35DZ
Schaltung – Raspberry Pi Pico mit analogem Temperatursensor LM35DZ

Pinout des analogen Temperatursensors LM35DZ

Der analoge Temperatursensor LM35DZ hat 3 Pins (+Vs, Vout, GND).

Pinout des analogen Temperatursensor LM35DZ
Pinout des analogen Temperatursensor LM35DZ

Schaltung am Raspberry PI Pico

Die Schaltung am Raspberry Pi Pico ist recht einfach, denn der kleine Sensor wird lediglich über 3 Breadboardkabel angeschlossen

analoger Temperatursensor LM35DZ am Raspberry PI Pico
analoger Temperatursensor LM35DZ am Raspberry PI Pico
LM35DZRaspberry Pi Pico
GNDPin 38, GND
VoutGP26, ADC0
+VsPin 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.

Aufbau der Schaltung "LM35DZ & OLED Display am PI Pico"
Aufbau der Schaltung „LM35DZ & OLED Display am PI Pico“

Ein ähnliches OLED Display habe ich bereits im Beitrag Raspberry PI Pico #5 – Ultraschallabstandssensor RCW-001 & OLED Display anschließen verwendet.

Sensor / AktorRaspberry Pi Pico
OLED Display
GNDPin 18, GND
VCCPin 36, 3v3
SDAGP0, SDA
SCLGP1, SCL
LM35DZ
GNDPin 18, GND
VoutGP26, ADC0
+VsPin 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)
Raspberry Pi Pico - analoger Temperatursensor LM35DZ mit OLED Display
Raspberry Pi Pico – analoger Temperatursensor LM35DZ mit OLED Display

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert