DHT22

  • 1
  • 2
  • Seite 2 von 2
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: DHT22

 · 
Gepostet: 16.09.2021 - 12:38 Uhr  ·  #9
Hallo Merlin, ich habe etwas gefunden, aber nur in C++

Code


//T[C] = -45 +175 * ST / 2^16 -1 <-- Formel aus Datasheet
float sht31_calculate_temperature(SHT31 *sensor) {
  return (((sensor->read_buffer[0] << 8)| sensor->read_buffer[1]) * 175.0) / 65535.0 - 45.0;
}
//RH = 100 * SRH / 2^16 -1
float sht31_calculate_humudity(SHT31 *sensor) {
  return (((sensor->read_buffer[3] << 8) | sensor->read_buffer[4])) * 100.0 / 65535.0;
}



Gruß Frank
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: DHT22

 · 
Gepostet: 16.09.2021 - 16:55 Uhr  ·  #10
Hi Frank,

mußte erst ein Datenblatt runter laden .....

RH:=100-(HVar/65535)

RT:=-45+(175*(TVar/65535))

HVar ist der 16Bit-Registerwert des Sensors (Luftfeuchte) als Float oder Fix64
TVar das selbe für die Temperatur
RT und RH sind logischerweise auch Float oder Fix64

Gruss
Harry
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: DHT22

 · 
Gepostet: 16.09.2021 - 17:12 Uhr  ·  #11
Hallo Harry, ich habe es heute auch so gemacht wie du es eben geschrieben hast.
Ich denke das ist ok.

Die Temperatur war aber bissel zu hoch, deswegen habe ich das gemacht.
TT:= temp1 - 47; //aus Formel müsste 45 sein

Gruß Frank




Code

   T              : word;
   tLow[@T]       : byte;
   tHigh[@T+1]    : byte;
   temp           : integer;
   tempF1          : fix64;
   temp1          : fix64;

   R              : word;
   rhLow[@R]      : byte;
   rhHigh[@R+1]   : byte;
   RHum           : word;
   RHumF          : fix64;

   TT, RR         : fix64;    //ausgabe TFT
   Bool1          : Boolean;
   dataSHT31      : array[0..5] of byte;
//----------------------------------------------------

{
  SHT31_HIGH_ENABLED     : word = $2C06;
  SHT31_MEDIUM_ENABLED   : word = $2C0D;
  SHT31_LOW_ENABLED      : word = $2C10;
  SHT31_HIGH_DISABLED    : word = $2C00;
  SHT31_MEDIUM_DISABLED  : word = $2C0B;
  SHT31_LOW_DISABLED     : word = $2C16;
}

//============================================================================
Procedure Get_SHT31;
begin

  //SHT31 = $44
  if TWIstatC(SHT31) then
    uDelay(5);
    TWIOutC(SHT31, SHT31_HIGH_ENABLED);  //2C06

    uDelay(5);
    TWIinpC(SHT31, dataSHT31 );

    //Temperatur
    tHigh:=  dataSHT31[0];
    tLow :=  dataSHT31[1];

    rhHigh:= dataSHT31[3];
    rhLow := dataSHT31[4];

    temp1:=  IntToFix64(T);
    temp1:= temp1 / 65534;
    temp1:= temp1 * 175;
    TT:= temp1 - 47;             //<============  alt 45
    
    
    //RH
    temp1:=  IntToFix64(R);
    temp1:=  temp1 / 65534;
    RR:=  temp1 * 100;
    Bool1 := true;

  else
    writeLn(SerOutE0, 'ERROR');
    Bool1 := false;
  endif;

end;








TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: DHT22

 · 
Gepostet: 21.09.2021 - 16:48 Uhr  ·  #12
Pro Contra DHT22 vs SHT31


Der DHT22 ist zwar echt billig und ist auch bei Reichelt oder ebay schnell zu finden.
Aber ich würde ihn nicht mehr kaufen und in meine Schaltung bringen.

DHT22 1wire Leitung, sch....e zu Programmieren.
SHT31 2 wire Leitungen TWI sehr schnell eingebunden.

Ich habe eine E-Zigarette und puste den SHT31 an (Dampf) er reagiert sehr schnell und
kommt auch wieder auf die Luftfeuchte wo er war wenn kein Dampf mehr da ist.

Beim DHT22 war das so, er reagiert auch schnell nach oben, aber wenn ich kein
Dampg mehr bringe dauert es sehr lange bist die RFeuchte wieder da hin kommt
wo er war.
Ich habe sehr viele Minuten gewartet bis die RFeuchte wieder bei 53%

Das war eine kleine Info von mir wenn jmd so ein Teil in seiner Schaltung braucht.


Gruß Frank
  • 1
  • 2
  • Seite 2 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   80   94 · Page-Gen-Time: 0.055624s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI