INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
DHT 11 Sensor Ausgabe immer NULL (GELÖST)
26.11.2020, 18:21 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2020 19:22 von ErzGabriel.)
Beitrag #1
DHT 11 Sensor Ausgabe immer NULL (GELÖST)
Hallo zusammen.
Ich bin absoluter Anfänger und komme nicht weiter, deswegen hoffe ich hier auf Hilfe.
Ich habe mir ein ESP8266 geschnappt und einen DHT11, das sollte eine einfache Temperaturmessung ergeben. Hochladen auf den ESP hat geklappt, Seite ist auch erreichbar aber es steht bei den Werten immer NULL und ich verstehe nicht warum.
Kann mir bitte jemand weiterhelfen? Danke.

Code:
/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide/
*********/

// Import required libraries
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <Hash.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>

// Replace with your network credentials
const char* ssid = "xxxx";
const char* password = "xxxx";

#define DHTPIN 5     // Digital pin connected to the DHT sensor

// Uncomment the type of sensor in use:
#define DHTTYPE    DHT11     // DHT 11
//#define DHTTYPE    DHT22     // DHT 22 (AM2302)
//#define DHTTYPE    DHT21     // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE);

// current temperature & humidity, updated in loop()
float t = 0.0;
float h = 0.0;

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);

// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0;    // will store last time DHT was updated

// Updates DHT readings every 10 seconds
const long interval = 10000;  

const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
  <style>
    html {
     font-family: Arial;
     display: inline-block;
     margin: 0px auto;
     text-align: center;
    }
    h2 { font-size: 3.0rem; }
    p { font-size: 3.0rem; }
    .units { font-size: 1.2rem; }
    .dht-labels{
      font-size: 1.5rem;
      vertical-align:middle;
      padding-bottom: 15px;
    }
  </style>
</head>
<body>
  <h2>ESP8266 DHT Server</h2>
  <p>
    <i class="fas fa-thermometer-half" style="color:#059e8a;"></i>
    <span class="dht-labels">Temperature</span>
    <span id="temperature">%TEMPERATURE%</span>
    <sup class="units">&deg;C</sup>
  </p>
  <p>
    <i class="fas fa-tint" style="color:#00add6;"></i>
    <span class="dht-labels">Humidity</span>
    <span id="humidity">%HUMIDITY%</span>
    <sup class="units">%</sup>
  </p>
</body>
<script>
setInterval(function ( ) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("temperature").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "/temperature", true);
  xhttp.send();
}, 10000 ) ;

setInterval(function ( ) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("humidity").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "/humidity", true);
  xhttp.send();
}, 10000 ) ;
</script>
</html>)rawliteral";

// Replaces placeholder with DHT values
String processor(const String& var){
  //Serial.println(var);
  if(var == "TEMPERATURE"){
    return String(t);
  }
  else if(var == "HUMIDITY"){
    return String(h);
  }
  return String();
}

void setup(){
  // Serial port for debugging purposes
  Serial.begin(115200);
  dht.begin();
  
  // Connect to Wi-Fi
  WiFi.begin(ssid, password);
  Serial.println("Connecting to WiFi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println(".");
  }

  // Print ESP8266 Local IP Address
  Serial.println(WiFi.localIP());

  // Route for root / web page
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/html", index_html, processor);
  });
  server.on("/temperature", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/plain", String(t).c_str());
  });
  server.on("/humidity", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/plain", String(h).c_str());
  });

  // Start server
  server.begin();
}

void loop(){  
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    // save the last time you updated the DHT values
    previousMillis = currentMillis;
    // Read temperature as Celsius (the default)
    float newT = dht.readTemperature();
    // Read temperature as Fahrenheit (isFahrenheit = true)
    //float newT = dht.readTemperature(true);
    // if temperature read failed, don't change t value
    if (isnan(newT)) {
      Serial.println("Failed to read from DHT sensor!");
    }
    else {
      t = newT;
      Serial.println(t);
    }
    // Read Humidity
    float newH = dht.readHumidity();
    // if humidity read failed, don't change h value
    if (isnan(newH)) {
      Serial.println("Failed to read from DHT sensor!");
    }
    else {
      h = newH;
      Serial.println(h);
    }
  }
}

Zusehen ist nur das:

ESP8266 DHT Server

Temperature 0.00 °C
Humidity 0.00
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2020, 18:31
Beitrag #2
RE: DHT 11 Sensor Ausgabe immer NULL
Hallo,

warm zeigst du den Inhalt der Variablen "newT" nicht direkt an, sondern wandelst diesen erst in eine neue Variable ?

Lass dir doch zwischendurch die Zustände im seriellen Monitor anzeigen, oder verwende zum Test feste Werte anstatt der Sensorwerte.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2020, 18:40
Beitrag #3
RE: DHT 11 Sensor Ausgabe immer NULL
Schaue ich in den Seriellen Monitor, kommt immer nur eine Fehlermeldung.
Failed to read from DHT sensor!

Das ist ein Skripte aus dem Netz, was ich nicht selbst gebastelt habe. Versuche es gerade zu lernen und zu verstehen, da ich aber ne Temperaturmessung brauche, habe ich gedacht, nimm ein fertiges Skripte was läuft und versuche es zu verstehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2020, 18:46 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2020 18:46 von Tommy56.)
Beitrag #4
RE: DHT 11 Sensor Ausgabe immer NULL
Nicht jedes Script aus dem Netz funktioniert.
Zeige uns Deinen Sketch und eine Skizze, wie Du alles angeschlossen hast.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2020, 18:50
Beitrag #5
RE: DHT 11 Sensor Ausgabe immer NULL
Ja, das habe ich leider schon gemerkt, ist nämlich das 7 oder 8 Skripte was ich probiere.
Habe ich nach dieser Anleitung gemacht.
https://randomnerdtutorials.com/esp32-dh...duino-ide/

D1 == VDC
GND = GND
DAT === 3,3V

LED am DHT11 leuchtet auch, ergo Strom ist auf jeden Fall da.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2020, 19:19
Beitrag #6
RE: DHT 11 Sensor Ausgabe immer NULL
(26.11.2020 18:50)ErzGabriel schrieb:  LED am DHT11 leuchtet auch, ergo Strom ist auf jeden Fall da.
Fragt sich nur, wie lange.
Dein Andchluß ist irgendwie verquer.
Der DHT11 hat die Pins GND und VCC, die mit den GND und 5V-Pins verbunden werden und einen Datenausgang, den Du in Deinem Sketch an GPIO 5 (also D1) definiert hast.
Dein Tutorial ist für den ESP32. Das ist etwas völlig anderes, als der ESP8266.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2020, 19:21
Beitrag #7
RE: DHT 11 Sensor Ausgabe immer NULL
Okay, danke. Ergo Thema erledigt und weiter suchen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2020, 19:47
Beitrag #8
RE: DHT 11 Sensor Ausgabe immer NULL
Wobei 3,3V vom ESP8266 auf VCC vom DHT besser ist.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  HTML-Ausgabe von ESP8266 D1 Mini + DHT 11 Temperatursensor auf Webseite Bobo83600 3 668 10.03.2021 09:42
Letzter Beitrag: Bobo83600
  [Gelöst] ESP8266 OTA bleibt ohne Wirkung miq19 5 751 07.03.2021 18:35
Letzter Beitrag: Tommy56
  ESP32: Sensor via GPIO deaktivieren DivingJoe 21 1.819 18.02.2021 22:15
Letzter Beitrag: hotsystems
  Esp8266 - Client, immer wieder ... rev.antun 37 2.405 19.01.2021 23:09
Letzter Beitrag: rev.antun
  Bewegung erkennen --> ESP8266 als Board --> Welcher Sensor wofür basementmedia 10 1.433 06.12.2020 11:18
Letzter Beitrag: Tellen
  DHT Sensor Error, findet DHT.h nicht frankmehlhop 13 1.469 03.11.2020 16:56
Letzter Beitrag: frankmehlhop
  Anbindung des Lightning Sensor Breakout AS3935 ak68 7 2.060 04.04.2020 16:21
Letzter Beitrag: amithlon
  Email-Alarm bei Sensor-Wert 4711engel 26 5.820 17.12.2019 10:40
Letzter Beitrag: amithlon
  [gelöst] NTP Client Beispiele gehen 2 Sekunden nach Markus N. 10 4.701 05.05.2019 11:24
Letzter Beitrag: Markus N.
  Daten vom Sensor in einer Text-Datei auf meinem Web-Host speichern. Manny 45 11.825 27.04.2019 07:24
Letzter Beitrag: Fips

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste