Fråga:
Luftfuktighetsvärden som returneras av DHT22-sensorer som misslyckas efter en tid
Stanley
2015-10-27 22:02:16 UTC
view on stackexchange narkive permalink

Jag har byggt en väderstation med Arduino som mäter temperatur / luftfuktighet och tryck med en Adafruit 8266 HUZZAH. Temperatur och luftfuktighet mäts med hjälp av en DHT22-sensor som beställts från AdaFruit. Projektet slutfördes för ungefär 4 månader sedan och har under de första tre månaderna returnerat vad som verkar vara bra data. Så småningom började fuktighetsvärdena returnera sopor, värden runt 1%.

Jag bytte ut DHT22-sensorn mot en annan, den här gången från en slumpmässig eBay-säljare. Detta fungerade också bra i ungefär en vecka (luftfuktighetsvärden verkar se bra ut inom 20-60% -området).

Sedan sjönk de plötsligt till 1% igen.

Om jag kör DHTtester-programmet (istället för mitt program) mot sensorn och mitt Uno-utvecklingskort blir resultatet också 1% luftfuktighet för denna sensor.

  DHTxx-test! Luftfuktighet: 1,00% Temperatur: 19,20 * C 66,56 * F Värmeindex: 17,96 * C 64,33 * F Luftfuktighet: 1,00% Temperatur: 19,20 * C 66,56 * F Värmeindex: 17,96 * C 64,33 * F  

Så vid denna tidpunkt vet jag att problemet inte är med mitt program (händer med både mitt program och DHTtest-programmet), inte med min Arduino (händer med både 8266 i "fältet" och min Uno på min soffa ). Så något måste hända med sensorerna i fältet, där de arbetar i en vecka till några månader och sedan misslyckas?

Några idéer?

Jag börjar tänka någon bug / critter äter eller gör något åt ​​sensorn (kanske de lockas av det eftersom det är varmare), men finns det ändå ett bra sätt att skydda om detta är fallet utan att påverka värdena? Något annat sätt att se vad som händer?

  // Exempel på testskiss för olika DHT-fuktighets- / temperatursensorer // Skrivet av ladyada, public domain #include "DHT.h" #define DHTPIN 2 // vilken stift vi är anslutna till // Avkommentera vilken typ du använder! // # definiera DHTTYPE DHT11 // DHT 11 #definiera DHTTYPE DHT22 // DHT 22 (AM2302) // # definiera DHTTYPE DHT21 // DHT 21 (AM2301)
// Anslut stift 1 (till vänster) på sensorn till + 5V // OBS: Om du använder ett kort med 3.3V-logik som en Arduino Due, anslut stift 1 // till 3.3V istället för 5V! // Anslut sensorns stift 2 till vad din DHTPIN är // Anslut stift 4 (till höger) på sensorn till GROUND // Anslut ett 10K-motstånd från stift 2 (data) till stift 1 (ström) på sensorn / / Initiera DHT-sensorn. DHT dht (DHTPIN, DHTTYPE); ogiltig installation () {Serial.begin (9600); Serial.println ("DHTxx test!"); dht.begin (); } void loop () {// Vänta några sekunder mellan mätningarna. fördröjning (2000); // Avläsningstemperatur eller luftfuktighet tar cirka 250 millisekunder! // Sensoravläsningar kan också vara upp till 2 sekunder "gammal" float h = dht.readHumidity (); // Läs temperatur som Celsius (standard) flyta t = dht.readTemperature (); // Läs temperatur när Fahrenheit (isFahrenheit = true) flyter f = dht.readTemperature (true); // Kontrollera om några läsningar misslyckades och avsluta tidigt (för att försöka igen). om (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Det gick inte att läsa från DHT-sensorn!"); lämna tillbaka; } // Beräkna värmeindex i Fahrenheit (standard) float hif = dht.computeHeatIndex (f, h); // Beräkna värmeindex i Celsius (isFahreheit = falskt) float hic = dht.computeHeatIndex (t, h, false); Serial.print ("Luftfuktighet:"); Serial.print (h); Serial.print ("% \ t"); Serial.print ("Temperatur:"); Serial.print (t); Serial.print ("* C"); Serial.print (f); Serial.print ("* F \ t"); Serial.print ("Värmeindex:"); Serial.print (hic); Serial.print ("* C"); Serial.print (hif); Serial.println ("* F");}  
Pröva [sensoråterställningsförfarandet] (http://forum.arduino.cc/index.php?PHPSESSID=v4t93vgd3mf5u7nqjilcp6mjb1&topic=96470.msg1026234#msg1026234).
min nuvarande lösning är att ansluta DHT med en skruvterminal istället för att löda in dem och sedan bara byta ut dem när de börjar misslyckas
Tre svar:
sekdiy
2016-03-10 20:28:38 UTC
view on stackexchange narkive permalink

Så här ser det ut när de misslyckas.

DHTxx är sensorer med mycket låg kostnad, optimerade för billig volymproduktion.

Vi vet inte under vilket tillstånd du faktiskt använder dina sensorer. Det finns också fenomenet knock-offs och lågkvalitativ försäljning.

I sitt omfattande test fann Robert J. Smith en misslyckande på 33% och avslutar en genomsnittlig livslängd på ett till två år.

Ett lite dyrare alternativ är SHT-serien av temperatur- och luftfuktighetssensorer. Min personliga erfarenhet är att de tenderar att tolerera viss missbruk (dvs fullständig nedsänkning i vatten) och inte åldras lika snabbt.

Länk:

RedDogAlpha
2016-03-10 22:11:56 UTC
view on stackexchange narkive permalink

Jag har haft exakt samma erfarenhet av att använda en DHT11 med Huzzah. Jag upptäckte att problemet tenderar att inträffa efter förhållanden med hög luftfuktighet (> 85% i förhållande), min lösning var att placera silikonfett och krympslang runt anslutningarna för att förhindra dagguppbyggnad. Det löste mitt problem med min tredje ersättare. Det har gått två månader nu utan problem.

chop
2015-11-30 06:41:49 UTC
view on stackexchange narkive permalink

Kan inte riktigt hjälpa eftersom jag har samma problem! , DHT22 på en ESP8266 har misslyckats två gånger, medan en DHT11 på ett liknande system har fungerat felfritt i flera månader (Thingspeak 27272), DHT11 är inne i huset medan DHT22 är under huset i carporten, Det enda jag har kommit fram till är att DHT22 KAN misslyckas på grund av avgaser / kolväterök från bilens startups

Art

Detta borde nog vara en kommentar.


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...