🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Programmieren mit MicroPython #6: digitaler Temperatursensor DS18B20 am ESP32

Veröffentlicht am 5. Juli 202129. April 2023 von Stefan Draeger

In diesem Beitrag möchte ich dir zeigen, wie du den digitalen Temperatursensor DS18B20 am ESP32 mit MicroPython programmierst. 

Temperatursensor DS18B20
Temperatursensor DS18B20

Zunächst einmal zeige ich dir wie du den digitalen Temperatursensor mit dem ESP32 verbindest und danach wie du dir ein einfaches Programm schreibst und die Werte des Sensors auf der Konsole anzeigen lassen kannst.

  • Bezug eines DS18B20
  • Technische Daten des Temperatursensors DS18B20
  • Aufbau & Schaltung – ESP32 mit DS18B20
    • Schaltung auf dem Breadboard
  • Programmieren des Temperatursensors DS18B20 am ESP32 mit MicroPython
  • Video

Bezug eines DS18B20

Den Temperatursensor DS18B20 erhältst du in zwei Ausführungen (jedenfalls kenne ich diese beiden), zum einen als offenes Bauteil oder aber als vergossenes, wasserdichtes Gehäuse. 

Sensorebay.de amazon.dealiexpress.com*conrad.dereichelt.deelv.de
DS18B20, offenes Bauteil 2,75€  4,87€ 0,32€ 4,82€ 2.20€ –
DS18B20, wasserdichtes Gehäuse 3,95€ 3,82€ 0,90€ 7,13€ 6,99€ 5,95€

* Auf der Plattform aliexpress.com erhält man kleine Elektronikartikel sehr günstig jedoch muss man bei den Versandkosten aufpassen, diese können sehr stark variieren.

Für die Plattformen ebay.de sowie amazon.de habe ich dir passende Links zu den Suchen hinterlegt.

Technische Daten des Temperatursensors DS18B20

Den digitalen Temperatursensor habe ich bereits im Beitrag Arduino Lektion 48: Temperatursensor DS18B20 für den Arduino UNO vorgestellt, in diesem Beitrag verwende ich das gleiche Bauteil und somit ergeben sich auch folgende technische Daten:

  • Betriebsspannung – 3.0V bis 5.5V
  • Messbarer Temperaturbereich von -55°C bis +125°C
  • Toleranz – ±0.5°C
  • Auflösung des Thermometers von 9 bis 12bit
  • jeder Sensor hat einen eindeutigen und einmaligen 64bit Code auf dem onboard ROM

Aufbau & Schaltung – ESP32 mit DS18B20

Der Temperatursensor DS18B20 verfügt über 3 Beinchen welche wie folgt belegt sind:

Pinout – Temperatursensor DS18B20

Für den Aufbau der Schaltung benötigst du:

  • einen ESP32,
  • einen digitalen Temperatursensor DS18B20,
  • ein 4,7 kOhm Widerstand,
  • drei Breadboardkabel,
  • ein 400 Pin Breadboard

An Werkzeugen benötigst du ggf. nur einen Seitenschneider um die Beinchen des Widerstandes etwas zu kürzen, ansonsten werden alle Bauteile auf das Breadboard, lötfrei gesteckt.

digitaler Temperatursensor DS18B20 am ESP32
digitaler Temperatursensor DS18B20 am ESP32

Schaltung auf dem Breadboard

Schaltung - digitaler Temperatursensor DS18B20 am ESP32
Schaltung – digitaler Temperatursensor DS18B20 am ESP32

Programmieren des Temperatursensors DS18B20 am ESP32 mit MicroPython

from machine import Pin
from onewire import OneWire
from ds18x20 import DS18X20
from time import sleep

#digitaler Temperatursensor DS18B20 am GPIO 4 angeschlossen
pin = Pin(4)
#erstellen eines Objektes zum Zugriff auf die / den Temperatursensor
tempSensor = DS18X20(OneWire(pin))
#suchen der Sensoren
sensors = tempSensor.scan()
#ausgeben der Liste der gefundenen Sensoren
print('gefundende(r) Sensor / Sensoren: ', len(sensors))

#Wenn min. 1 Sensor gefunden wurde dann...
if(sensors):
  #Ausgabe der Tabellenüberschriften
  print("Sensor\t\t\t|Celsius\t|Fahrenheit\t|Kelvin")
  #eine Endlosschleife starten
  while True:
    #empfangen und umwandeln des Sensorwertes
    tempSensor.convert_temp()
    #eine kleine Pause von 0,5 Sekunden
    sleep(0.5)
    #Anzahl der Nachkommastellen für das runden der Temperaturwerte
    digits = 2
    
    #Für jeden gefundenen Sensor mache...
    for sensor in sensors:
      #lesen und runden des Temperaturwertes in Grad Celsius
      tempCelsius = round(tempSensor.read_temp(sensor),digits)
      #berechnen des Temperaturwertes in Grad Fahrenheit aus Grad Celsius
      tempFahrenheit = round((tempCelsius * 9/5)+32,digits)
      #berechnen des Temperaturwertes in Grad Kelvin aus Grad Celsius
      tempKelvin = round(tempCelsius + 273.15, digits)
      #Ausgeben der Temperaturwerte
      print(sensor, "\t|", tempCelsius,"\t|", tempFahrenheit,"\t|", tempKelvin )
      #eine kleine Pause von 2 Sekunden
    sleep(2)
else:
  #Wenn keine Temperatursensoren vom Typ DS18B20 gefunden wurden dann soll eine Fehlermeldung ausgegeben werden.
  print("Es wurden keine Sensoren vom Typ DS18B20 gefunden!")

Video

Schreibe einen Kommentar Antworten abbrechen

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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
x
x