In diesem Beitrag erfährst du, wie du den analogen Temperatursensor LM35DZ mit MicroPython am ESP32 programmierst.
Den analogen Temperatursensor LM35DZ habe ich bereits für diverse Schaltung mit dem Arduino verwendet, jedoch ist die Programmierung mit MicroPython am ESP32 etwas anders wie du später sehen wirst.
Technische Daten vom analogen Temperatursensor LM35DZ
- Betriebsspannung +4V bis max. +30V
- Messbereich 0°C bis 100°C
- Toleranz ±0.4°C
- Temperaturempfindlichkeit: 10mV/K
benötigte Bauteile zum betrieb des LM35DZ
Für die nachfolgende Schaltung benötigst du nur wenige Bauteile, denn wir wollen die Sensordaten auf der Konsole mit dem Befehl “print” ausgeben.
- ESP32 – LOLIN32,
- 400 Pin Breadboard,
- 3 Breadboardkabel, 10cm, Stecker – Stecker,
- 1 Temperatursensor LM35DZ
Aufbau der Schaltung
Der analoge Temperatursensor LM35DZ verfügt über 3 Beinchen. Das Gehäuse ist auf einer Seite flach und auf der anderen Seite abgerundet, auf der abgeflachten Seite steht die Typenbezeichnung (sehr klein). Wenn du den Sensor vor dir legst so das die Schrift zu dir zeigt ist die Pinbelegung wie folgt:
Der Sensor wird an einen GPIO angeschlossen jedoch kann nicht jeder GPIO Pin für einen Analogen Sensor / Aktor am ESP32 verwendet werden. Hierzu werfen wir einen blick auf das Pinout unseres Microcontrollers.
Wir sehen, das die GPIO Pins 0,2,12, 13, 14, 15, 25, 26, 27, 32, 33, 34, 35 als Analoge Eingänge dienen können.
Programmieren
Für das auslesen des Sensorwertes benötigen wir neben der bereits bekannten Bibliothek maschine.Pin zusätzlich auch die ADC damit “steuern” wir den AnalogDigitalConverter und können an bestimmte Pins den analogen Wert zwischen 0 und 1023 auslesen.
#Bibliothek zum Zugriff auf die Pins sowie dem AnalogDigitalConverter from machine import Pin, ADC #Bibliothek zum Zugriff auf die Funktion sleep damit im Programm eine #Pause eingelegt werden kann from time import sleep #Sensor LM35DZ am GPIO34 lm35 = ADC(Pin(34)) #starten der Endlosschleife while(1): #lesen des analogen Wertes value = lm35.read() #umrechnen des analogen Wertes in die Temperatur temperatur = ((value/1024.0) * 3000)/10 #ausgeben der Temperatur auf der seriellen Schnittstelle print(round(temperatur/10,2), "°C") #eine kleine Pause von 500ms. sleep(0.5)
1 thought on “Programmieren mit MicroPython #3: analoger Temperatursensor LM35DZ am ESP32”