Hallo,
ich betreibe mehrere ESPs mit DHT22. An einem sind 2 DHTs angeschlossen , von denen einer die Außentemperatur misst. Heute morgen hatte es Temperaturen unter Null und der Aussen-DHT22 hat statt - 0.5 Grad -3270 angezeigt. Die Luftfeuchte war normal mit 70% und wird auch so gemessen und angezeigt . Etwas später war die Temperatur bei 0 Grad und der DHT hat dann auch wieder 0 Grad angezeigt.
Alle anderen DHTs messen Raumtemperaturen und die laufen ganz normal .
Hatte von euch schon mal jemand sowas und was kann man dagegen tun?
Wenn der Beispielsketch funktioniert, liegt es an deinem Sketch.
Dein Sketch ist unvollständig somit macht eine weitere Analyse wenig Sinn und zumindst überhaupt keinen Spaß.
Bei dem Codeschnipsel fragt man sich, wo denn die Variable "tempdht" her kommt.
Außerdem dürften die IF Bedingungen eine Compilerwarnung erzeugen. Auch wenn es so funktioniert ist doch wahrscheinlich ein "&&" statt eines "&" in den Bedingungen angedacht.
Naja der ganze code ist ca 5000 Zeilen lang, daher nur die relevanten Teile ...
im Definitionsteil ist die Variable tempdht eh als float definiert - siehe Beispiel
Wusste nicht, dass der Code insgesamt unvollständig ist und sehe mir das nochmal an
ich habe mir das nochmal angesehen und die 2 Beispielsketches zu der DHT library durchgesehen.
Da ist ein Sketch für den unified-DHT sensor - der aber lt anderen Foren nur Sinn macht, wenn man das auf mehreren Plattformen verwendet.
Und dann ist da noch der DHT Tester Sketch , der genauso viele Befehle hat, wie die, die ich verwende. relativ einfach.
Könnt ihr mir hier mal helfen, welches Beispiel das richtige ist - das hier oder das für den unified-DHT??
LG
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor
#include "DHT.h"
#define DHTPIN 2 // Digital pin connected to the DHT sensor
// Feather HUZZAH ESP8266 note: use pins 3, 4, 5, 12, 13 or 14 --
// Pin 15 can work but DHT must be disconnected during program upload.
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 3 (on the right) of the sensor to GROUND (if your sensor has 3 pins)
// Connect pin 4 (on the right) of the sensor to GROUND and leave the pin 3 EMPTY (if your sensor has 4 pins)
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors. This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Normaler Weise alle Beispiele sollten die gleiche werte anzeigen, gehe davon aus das der eine was aus der Reihe tanzt ist defekt.
Jedoch nutze die DHT nicht, nur BME280, SHT, HTU und einen SI 7021, wobei SHT und HTU gibt's einfache und teure Modele. Alle gezeigte haben bei Temp +-0,5°C. Musst in DB schauen wen Interesse die HTU und SHT gibt auch in +-0,2°C Genauigkeit, Luftfeuchte geben alle Sensoren in %RH = Relativ zu Temp. Auch Dein DHT.
Vorteil die Beißen sich nicht, wen man unterschiedliche nimmt alle funktionieren über I²C
BME280 hat zwei Adressen zum einstellen, aufpassen alle sind 3,3V also achten das die sind für 5V geeignet = Modul für 5V.
Habe jetzt mal eine andere library und einen anderen DHT22 Sensor ausprobiert.
Die library war es nicht, aber der Sensor und nicht der eine , sondern die ganze Serie.
Hatte mal eine 3er Packung DHT 22 bei Temu bestellt und die können die Minus-Temperatur nicht, egal mit welcher library. Die andere Serie von DHT22 kam über AliExpress und bei denen werden die Minustemperaturen bei allen 3 korrekt angezeigt.
Wurde nicht mehr machen auch wen die sind Günstiger als Ali, bei Temu sind wahrscheinlich nur Schrotthändler.
Habe dort mall ein 4" TFT Bestellt (war um 3€ günstiger als bei ALI), Touch war Defekt nach hin und her ging der zurück.
Hab´s gar nicht wegen dem Preis bei Temu bestellt, sondern weil die schnellere Lieferzeiten hatten - das stimmte auch.
Die von ALiexpress waren halt eine Woche später (aber sie funktionieren). Bei Amazon gab es nur die Sensoren, die auf einer kleinen Platine aufgelötet sind, ich brauchte aber die ohne Platine...