Arduino Lektion 81: ESP-01S Temperatursensorshield DS18B20

In diesem Tutorial möchte ich das Temperatursensor Shield DS18B20 für den ESP-01S vorstellen.

Temperatursensorshield DS18B20 für den ESP-01s
Dieses Video ansehen auf YouTube.

Bezug

Das Shield kann für ca. 1,8 € inkl. Versandkosten bei ebay.de bestellt werden.

ESP-01S DS18B20
ESP-01S DS18B20

Technische Daten

  • Betriebsspannung 3,7V bis max. 12V
  • Temperatur Messbereich  -55°C und +125°C
  • Abmaße 25mm x 21mm

Aufbau des Shields

Aufbau des Temperaturshields
Aufbau des Temperaturshields

Schaltung

Die Schaltung ist relativ einfach denn der ESP-01s wird lediglich „nur“ auf den Sockel gesteckt und das Shield mit Spannung versorgt. 

Beim Aufstecken sollte man auf den kleinen weißen Pfeil achten, dieser gibt die Richtung vor wie der ESP-01s aufgesteckt wird.

ESP-01S Temperaturshield DS18B20
ESP-01S Temperaturshield DS18B20

Quellcode

Für den nachfolgenden Sketch benötigt man 2 zusätzliche Bibliotheken

  • DallasTemperature
  • OneWire

Diese beiden Bibliotheken werden über den Bibliotheksverwalter installiert.

Bibliothek "DallasTemperature"
Bibliothek „DallasTemperature“

Bibliothek "OneWire"
Bibliothek „OneWire“

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2  //Sensor DS18B20 am digitalen Pin 2

OneWire oneWire(ONE_WIRE_BUS); //

//Übergabe der OnewWire Referenz zum kommunizieren mit dem Sensor.
DallasTemperature sensor(&oneWire);

const char* ssid = ""; //SSID aus dem Router
const char* password = ""; //Passwort für den Zugang zum WLAN

ESP8266WebServer server(80); //Port auf welchem der Server laufen soll. 

void setup() {
  delay(10); //10ms. Warten damit die Seriele Kommunikation aufgebaut wurde.
 
  WiFi.begin(ssid, password); //Initialisieren der Wifi Verbindung.
 
  while (WiFi.status() != WL_CONNECTED) { //Warten bis die Verbindung aufgebaut wurde.
    delay(500);
  }

  server.on("/tempsensor", callTempsensor);
  
  server.begin(); // Starten des Servers.
  sensor.begin(); //Starten der Kommunikation mit dem Sensor
}

void loop() {
 server.handleClient();
}

void callTempsensor(){ 
  sensor.requestTemperatures();
  String celsiusValue = String(sensor.getTempCByIndex(0));
  String fahrenheitValue = String(sensor.getTempFByIndex(0));
  String jsonRespond = "{\"celsius\": \""+String(celsiusValue)+"\" , \"fahrenheit\": \""+String(fahrenheitValue)+"\" }";
  server.send(200, "application/json", jsonRespond);  
}

Wenn man nun das Sketch auf dem ESP-01s kopiert hat und den Microcontroller auf das Shield gesteckt hat muss man nun noch die Betriebsspannung anlegen. Ich nutze dazu eine 9V Batterie welche über ein Power Modul auf 5V heruntergeregelt wird.

Aufbau, Schaltung ESP01s DS18B20 Shield
Aufbau, Schaltung ESP01s DS18B20 Shield

Nachdem nun die Spannung anliegt versucht sich der ESP-01S in das WLAN Netzwerk anzumelden. Wenn man nun die IP-Adresse des ESP-01S in einem Browser eingibt dann öffnet sich folgende Seite:

ESP-01S , DS18B20 Shield, JSON Respond
ESP-01S , DS18B20 Shield, JSON Respond

 

 

 

4 Gedanken zu „Arduino Lektion 81: ESP-01S Temperatursensorshield DS18B20

  • 19. April 2019 um 16:35
    Permalink

    Hallo Stefan,

    Ich befasse mich seit gut 1 Jahr mit den Arduinos und den China Klons. Habe schon diverse Sachen zum Laufen gebracht programmiert über die Arduion IDE. Ich bekomme aber den Sketch esp-01sTemperatursensorshield DS18B20 von dir einfach nicht zum Laufen. Habe mir dein Video auf YouTube schon zigfach angesehen, habe auch nach meiner Ansicht alles so gemacht wie du. Der esp 01s meldet sich im WLAN und ich denke die in den WLANeinstellungen erscheinende Ip soll ich im Browser eingeben-aber der http server läst sich nicht aufrufen.
    Kompilieren und Hardware alles ohne Probleme!
    Du hast im Video auch den Sketch super erklärt- aber ich bekomme es nicht zum Laufen. Vielleicht findest du ja die Zeit mal zu antworten.
    Vorerst schöne Ostern.

    Es grüßt Hendrik

    Antwort
    • 19. April 2019 um 19:27
      Permalink

      Hallo Hendrik,

      sende mir doch einfach mal deinen Sketch als ZIP an die Adresse info@draeger-it.blog und ich schaue mir diesen einmal an. Manchmal steck der Teufel in einem kleinen Detail was man nicht sofort sieht.

      Dir und deiner Familie auch ein Frohes Osterfest.

      Gruß,

      Stefan

      Antwort
  • 14. August 2020 um 21:35
    Permalink

    Vielen Dank für deine ruhigen und fundierten Erläuterungen im Video und den hervorragenden Beschreibungen hier auf dieser Seite.
    Funktionierte (fast) auf Anhieb, lediglich bei der Adresse 192/…/tempsensor habe ich“ /tempsensor“ übersehen. Ohne diesen Zusatz funktioniert es natürlich nicht. Hinweis für Forum: die genaue Adresse 192/.. kann im Router unter „Angeschlossene Geräte“ eruiert werden.
    Mit dem ESP01-Programmer habe ich zuerst einen ESP01 zerschossen, da die TX>RX-Leitung 5V lieferte, was der ESP01 nicht goutierte. Ich habe dann einen USBtoTTL CP2102 genommen und Flash und Rst auf GND geschaltet. Funktioniert tip top. Man könnte wohl auch einen Converter dazwischenschalten.
    Mit deinem einfachen Sketch kann ich nun weitere IoT-Anwendungen entwickeln. Danke!

    Antwort
    • 14. August 2020 um 21:58
      Permalink

      Hallo Andreas,
      Vielen Dank für deinen Kommentar es freut mich sehr das dir dieser Beitrag gefallen hat.

      Gruß, Stefan Draeger

      Antwort

Schreibe einen Kommentar

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