DHT22

  • 1
  • 2
  • Page 2 of 2
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 755
Registered: 06 / 2013
Subject:

Re: DHT22

 · 
Posted: 16.09.2021 - 12:38  ·  #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
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2091
Registered: 03 / 2003
Subject:

Re: DHT22

 · 
Posted: 16.09.2021 - 16:55  ·  #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
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 755
Registered: 06 / 2013
Subject:

Re: DHT22

 · 
Posted: 16.09.2021 - 17:12  ·  #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
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 755
Registered: 06 / 2013
Subject:

Re: DHT22

 · 
Posted: 21.09.2021 - 16:48  ·  #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
  • Page 2 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   80   94 · Page-Gen-Time: 0.02461s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI