Good to Know Database

ESP8266 ESP-01: DS18B20 Temperatursensor über Webinterface auslesen


Mit dem ESP8266 ESP-01 Modul und einem DS18B20 oder DS18S20 1-Wire Temperatursensor lässt sich mit wenig Aufwand ein WLAN-Thermometer erstellen. Dazu verbinden Sie den DS18B20 Temperatursensor wie im folgenden Schaltplan gezeigt mit dem ESP8266 ESP-01 Modul.

ESP8266 ESP-01 mit DS18B20

Das folgende Listing zeigt den Quellcode welchen Sie mit der Entwicklungsumgebund Arduino IDE kompilieren und auf das ESP8266 Modul flashen können. Passen Sie allerdings zuvor die Zugangsdaten für Ihr WLAN entsprechend an.

/*
 * Creation:    03.11.2016
 * Last Update: 20.12.2016
 *
 * Copyright (c) 2016 by Georg Kainzbauer <http://www.gtkdb.de>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */

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

// wireless network credentials:
const char* ssid = "<your_ssid>";
const char* password = "<your_wireless_password>";

// hostname for this system:
const char* host = "webthermometer";

// data wire is connected with GPIO2:
#define ONE_WIRE_BUS 2

// setup one wire instance:
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

// web server on port 80:
ESP8266WebServer server(80);

float getTemperature()
{
  float temperature;

  // request temperature:
  sensors.requestTemperatures();
  temperature = sensors.getTempCByIndex(0);

  return temperature;
}

String getContent()
{
  // get temperature and convert to string:
  char stringBuffer[6];
  dtostrf(getTemperature(), 2, 2, stringBuffer);

  // create content for the website
  String content = "<html><head><title>ESP8266 WebThermometer</title></head><body>Current temperature: ";
  content += stringBuffer;
  content += " &deg;C</body></html>";

  return content;
}

void setup()
{
  // initialize DS1820 sensor with 12 bit resolution:
  sensors.begin();
  sensors.setResolution(12);

  // connect to the wireless network:
  WiFi.begin(ssid, password);

  // wait for wireless network connection:
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }

  // initialize mDNS:
  MDNS.begin(host);
  MDNS.addService("http", "tcp", 80);

  // start HTTP server:
  server.begin();

  // print start page:
  server.on("/", [](){
    server.send(200, "text/html", getContent());
  });
}

void loop()
{
  // handle HTTP request:
  server.handleClient();
}

Nachdem Sie die Software auf das ESP8266 Modul geflasht und die Schaltung nach dem oben dargestellten Schaltplan aufgebaut haben, sollte sich Ihr ESP8266 Modul mit Ihrem WLAN verbinden. Sobald die WLAN Verbindung hergestellt wurde, sollten Sie in einem Browser über die URL webthermometer.local auf das Webinterface des ESP8266 Moduls zugreifen können und die aktuelle Temperatur angezeigt bekommen.

Weiterführende Tutorials:

ESP8266 ESP-01: ESP8266 mit Arduino IDE und FT232RL USB-TTL-Converter flashen


Dieser Eintrag wurde am 05.01.2017 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_18_2887.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2017 by Georg Kainzbauer