SHT Shield temperature way off



  • I have a Wemos D1 Mini and a SHT shield connected to it.
    The temperature values I am getting from running the example code is way off.

    Temperature in Celsius : 736832000.00
    Temperature in Fahrenheit : 1326297600.00
    Relative Humidity : 421046880.00

    Temperature in Celsius : 736832000.00
    Temperature in Fahrenheit : 1326297600.00
    Relative Humidity : 421046880.00



  • This post is deleted!


  • @ralphwiggum Much has beed written about this on the old Forum (and was lost :( ), it seems that there is residual heat from the Wemos D1 that due to the proximity of the sensor means the value is wrong. I have evidence of this, and the only way to fix, it put the shield on then end of a cable.... I know, this defeats the purpose.....

    If anyone else has found a way to fix this, I'd like it fixed!!

    My hookup : https://goo.gl/photos/6u8RX2MXG3WcqnPDA



  • @anthonyjclarke ,

    thanks for your suggestion and basically you are right.

    But this time it looks like a different problem. It's not that the temperature is 30°C when it should be 23°C. The values are far from correct.

    @ralphwiggum could you please post your actual code, even you say it is the example code. Do you have the chance to check another SHT shield to exclude a defective one?
    7th Dwarf



  • @ralphwiggum

    I tried as soneone suggested in the old forum to put it in deep sleep between measurements even though I don't need it for power saving reasons and got correct temperatures due to lower heating.

    But that's not what you asked about! Just wanted to say that I get similar values as first readings after uploading program. Same for you or is your readings always that. Do not know if that info helps someone else to find the reason.



  • Hello,

    just compiled the example and it works correctly out of the box.

    Did you made any changes? There are some warnings. Did you recognised?
    Which version of Arduino IDE are you using?
    7th Dwarf



  • Folks, for what its worth, and a good source of code / info that got me started is by @PaulRB

    Take a look here - https://github.com/PaulRB/WemosSensor



  • @ralphwiggum

    you are using the wrong I²C address. Or you have another component on the same I²C bus.

    I tried the example. If I set the I²C address to 0x44 I get this:

    Temperature in Celsius : 736831936.00
    Temperature in Fahrenheit : 1326297472.00
    Relative Humidity : 421046848.00
    

    If I set the I²C address to 0x45 I get this:

    Temperature in Celsius : 24.24
    Temperature in Fahrenheit : 75.63
    Relative Humidity : 42.95
    
    Temperature in Celsius : 24.22
    Temperature in Fahrenheit : 75.60
    Relative Humidity : 42.89
    

    Sorry, it took a while until I could test it.
    7th Dwarf



  • @Seventh-Dwarf

    Sadly this doesn't change anything for me. I have tried 0x44 and 0x45 without success. Also tried two different SHT shields with the same result.

    Code:

    #include <WEMOS_SHT3X.h>
    
    SHT3X sht30(0x45);
    
    void setup() {
      Serial.begin(115200);
    }
    
    void loop() {
      sht30.get();
      Serial.print("Temperature in Celsius : ");
      Serial.println(sht30.cTemp);
      Serial.print("Temperature in Fahrenheit : ");
      Serial.println(sht30.fTemp);
      Serial.print("Relative Humidity : ");
      Serial.println(sht30.humidity);
      Serial.println();
      delay(1000);
    }
    

    Output:

    Temperature in Celsius : 736832000.00
    Temperature in Fahrenheit : 1326297600.00
    Relative Humidity : 421046880.00
    

    Arduino IDE Version 1.8.1



  • The conclusion in this situation is obvious: your D1 Mini not see SHT sensor.
    do you test 'I2C scaner' sketch? (or 'i2cdetect')
    сheck installation, short circuit between contacts is possible

    ps: i suspect that you do not have an oscilloscope, and you can not check the waveforms on Data(D2)/Clock(D1) lines ;)



  • @anthonyjclarke said in SHT Shield temperature way off:

    My hookup : https://goo.gl/photos/6u8RX2MXG3WcqnPDA

    I'm surprised that there are still people who try to run the circuit without soldering the contacts ... :drooling_face:



  • @anthonyjclarke

    @megazaic is correct. You can't trust a header connector that isn't soldered to the board.



  • @Roo-ster @megazaic Thanks, I am finding this hookup accurate compared to another couple of sensors I have, but I will solder up!



  • I have also experience flakiness as @anthonyjclarke. My board was soldered properly, though. :smile:

    My solution was to skip Wemos' library entirely. I believe it's wonky and should be avoided. I found a more robust library, and used that instead.

    Here's my implementation.


Log in to reply
 

Looks like your connection to WEMOS Forum was lost, please wait while we try to reconnect.