Wemos D1 Mini: DS18B20 Temperatur Webserver

Der Wemos D1 Mini ist aufgrund seiner Größe extrem praktisch. Mit einem DS18B20 kann man zusammen mit dem Wemos D1 Mini einen DS18B20 Temperatur Webserver machen. Klar, hierzu könnte man auch einen Raspberry Pi nehmen, aber der hat für die Aufgabe meiner Meinung nach zu viel Leistung und einen deutlich höheren Stromverbrauch. Als Alternative zum Wemos D1 Mini könnt ihr auch einen NodeMCU, einen ESP8266 oder einen ESP32 verwenden

Der Wemos D1 Mini und die anderen genannten werden mit der Arduino IDE programmiert.

Aufbau:

Benötigte Bibliotheken:

  • ESP8266
  • OneWire
  • DallasTemperature

Arduino Sketch:

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


const char* ssid = "SSID";
const char* password = "Passwort";


#define ONE_WIRE_BUS D2


OneWire oneWire(ONE_WIRE_BUS);


DallasTemperature DS18B20(&oneWire);
char temperatureCString[6];
char temperatureFString[6];


WiFiServer server(80);


void setup() {

 Serial.begin(115200);
 delay(10);

DS18B20.begin(); 

 Serial.println();
 Serial.print("Connecting to ");
 Serial.println(ssid);
 
 WiFi.begin(ssid, password);
 
 while (WiFi.status() != WL_CONNECTED) {
 delay(500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi connected");

 server.begin();
 Serial.println("Web server running. Waiting for the Wemos D1 mini IP...");
 delay(10000);

 Serial.println(WiFi.localIP());
}

void getTemperature() {
 float tempC;
 float tempF;
 do {
 DS18B20.requestTemperatures(); 
 tempC = DS18B20.getTempCByIndex(0);
 dtostrf(tempC, 2, 2, temperatureCString);
 tempF = DS18B20.getTempFByIndex(0);
 dtostrf(tempF, 3, 2, temperatureFString);
 delay(100);
 } while (tempC == 85.0 || tempC == (-127.0));
}


void loop() {

 WiFiClient client = server.available();
 
 if (client) {
 Serial.println("New client");

 boolean blank_line = true;
 while (client.connected()) {
 if (client.available()) {
 char c = client.read();
 
 if (c == '\n' && blank_line) {
 getTemperature();
 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: text/html");
 client.println("Connection: close");
 client.println();

 client.println("<!DOCTYPE HTML>");
 client.println("<html>");
 client.println("<head><meta http-equiv=refresh content=15></head><body bgcolor=33363B><center><h1><font face=Ubuntu color=FFFFFF>Wemos D1 Mini DS18B20</h1><h3>Temperatur in Celsius: ");
 client.println(temperatureCString);
 client.println("&deg;C</font></h3></center></body></html>"); 
 break;
 }
 if (c == '\n') {

 blank_line = true;
 }
 else if (c != '\r') {

 blank_line = false;
 }
 }
 } 

 delay(1);
 client.stop();
 Serial.println("Client disconnected.");
 }
}

Hinweis: face=Ubuntu könnt ihr entfernen, wenn ihr wollt.

Ergebnis im Webbrowser(Ausschnitt):

Steven Seifried

Ey Yau! Ich bin Steven, Gründer und Betreiber von CANOX.NET. Privat nutze ich seit 2015 überwiegend Linux (Windows nur noch zum zocken). Seit 2019 bin ich Teil des Notebook-Support-Teams von TUXEDO Computers

Das könnte Dich auch interessieren …

5 Antworten

  1. Hubert Margreiter sagt:

    Hello Steven,
    „Wemos D1 mini: DS18B20 Temperatur Webserver“: Hab´s aufgebaut, funktioniert fehlerfrei. Danke für den Beitrag.
    Wie ist Dein Programm zu erweitern, wenn z.B. 5 Stück DS18B20 parallel geschaltet sind (jeder DS18B20 hat ja seine eigene Adresse)?
    Als Neueinsteiger (ich bin Pensionist) fehlt mir die Erfahrung. Das Lesen in verschiedenen Foren hat mich auch nicht viel schlauer gemacht.
    Vielleicht kannst Du mir helfen. Ich zeige mich gerne mit einer Spende erkenntlich.
    Beste Grüße, Hubert

  2. Simon sagt:

    Hallo Hubert,

    ich bin zwar nicht Steven,

    aber vielleicht hilft dir dieses Tutorial hier etwas bezüglich des einbindens und ansprechen mehrerer Aktoren über den ESP8266 WebServer.

    https://alexbloggt.com/esp8266-smarthome-gateway/

  3. Hubert Margreiter sagt:

    Hallo Simon,
    vielen Dank für die Mitteilung.
    Ich werde mich am Wochenende intensiv mit dem Inhalt des Links beschäftigen und mich dann wieder melden.
    Beste Grüße, Hubert

  4. Michael Reichelt sagt:

    Hi,
    betrifft ESP8266WiFI.h : hab da einige Libraries gefunden, welches ist die richtige, hast du einen Link?
    Gruß Michael

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Diese Website benutzt Cookies. Wenn Sie die Website weiter nutzen, stimmen Sie der Verwendung von Cookies zu. Mehr Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen