Programmieren mit MicroPython #3: analoger Temperatursensor LM35DZ am ESP32

In diesem Beitrag erfährst du, wie du den analogen Temperatursensor LM35DZ mit MicroPython am ESP32 programmierst.

Temperatursensor LM35DZ
Temperatursensor LM35DZ

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:

Pinout des analogen Temperatursensor LM35DZ
Pinout des analogen Temperatursensor LM35DZ

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.

Pinout des Microcontrollers ESP32 - LOLIN32
Pinout des Microcontrollers ESP32 – LOLIN32

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. 

Aufbau der Schaltung, LM35DZ am ESP32
Aufbau der Schaltung, LM35DZ am ESP32

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)

Video

2 Kommentare

Kommentar hinterlassen

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