Skocz do zawartości
Mrpatryk

ESP32 + czujnik BME680 problem z zawyżaniem temperatur

Pomocna odpowiedź

Blednę odczyty, zawyżanie temperatur po 5/6 stopni.  Ma ktoś jakieś doświadczenie ?? 

Udostępnij ten post


Link to post
Share on other sites

zauważyłem również że barometr nie pokazuje ciśnienia ;/ tylko 990 ciągle bez zmian.

Udostępnij ten post


Link to post
Share on other sites

Źle podłączony, źle obsłużony, zepsuty.

Wybierz i dopasuj, bo podałeś trochę mało informacji by cokolwiek innego powiedzieć.

Udostępnij ten post


Link to post
Share on other sites
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include "Adafruit_BME680.h"
 
 
#define SEALEVELPRESSURE_HPA (1013.25)
 
Adafruit_BME680 bme; // I2C
 
void setup() {
  Serial.begin(9600);
  while (!Serial);
  Serial.println(F("BME680 test"));
 
  if (!bme.begin(0x76)) 
  {
    Serial.println("Could not find a valid BME680 sensor, check wiring!");
    while (1);
  }
 
  // Set up oversampling and filter initialization
  bme.setTemperatureOversampling(BME680_OS_8X);
  bme.setHumidityOversampling(BME680_OS_2X);
  bme.setPressureOversampling(BME680_OS_4X);
  bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
  bme.setGasHeater(320, 150); // 320*C for 150 ms
}
 
void loop() 
{
  if (! bme.performReading()) 
  {
    Serial.println("Failed to perform reading :(");
    return;
  }
  Serial.print("Temperature = ");
  Serial.print(bme.temperature);
  Serial.println(" *C");
 
  Serial.print("Pressure = ");
  Serial.print(bme.pressure / 100.0);
  Serial.println(" hPa");
 
  Serial.print("Humidity = ");
  Serial.print(bme.humidity);
  Serial.println(" %");
 
  Serial.print("Gas = ");
  Serial.print(bme.gas_resistance / 1000.0);
  Serial.println(" KOhms");
 
  Serial.print("Approx. Altitude = ");
  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
  Serial.println(" m");
 
  Serial.println();
  delay(3000);
}

podłaczony scl do D22 i sda do D21  zasilanie 3,3v oraz wspolne gnd, pod arduino dziala ale też zawyża i cały czas pokazuje 990hPa. Aktualnie problem z wgraniem tego kodu na esp32 ... ;/ 

Teraz ma jakiś problem i wgl się ten program nie kompiluje ...  

C:\Users\Patryk\Documents\Arduino\libraries\Adafruit_Unified_Sensor\Adafruit_Sensor.cpp:2:26: fatal error: avr/pgmspace.h: No such file or directory

compilation terminated.

exit status 1
Błąd kompilacji dla płytki DOIT ESP32 DEVKIT V1.

Udostępnij ten post


Link to post
Share on other sites

czegoś nie kumam... chcesz użyć biblioteki przeznaczonej dla avr-ów w esp?

Udostępnij ten post


Link to post
Share on other sites

Problem z wgraniem (kompilacją) wynika z tego że nie może znaleźć jakiegoś pliku. Można spróbować najpierw weryfikację. U mnie też występowały różne dziwne problemy gdy zmieniałem płytkę w arduino ide. Czasami pomagało najpierw "weryfikowanie", czasami dopiero zamknięcie i otwarcie programu. Nie wiem z czego to wynika - specjalistą od arduino nie jestem.

Odnośnie odczytów temperatur. Nie pamiętam dokładnie gdzie, ale w jakimś czujniku Bosh'a trawiłem na wzmiankę że ciągłe odczyty z czujników mogą zawyżać temperaturę odczytaną (układ generuje ciepło wszakże). Niestety nie pamiętam o jakim podniesieniu temperatury była tam mowa.

Do tego:

bme.setGasHeater(320, 150); // 320*C for 150 ms

Rozumiem że przy starcie przetwarzania danych z czujnika jakiś element jest podgrzewany. Spróbuj wydłużyć czas pomiędzy odczytami i sprawdź, czy zawyżanie temperatur nie jest przez to spowodowane. 

Powyłączaj też oversampling - w celach testowych, bo może on też wprowadzać "dziwne" rzeczy.

 

Udostępnij ten post


Link to post
Share on other sites

okej , będę zaraz działał. 

dziwne bo dla arduino się kompiluje to wszystko a dla esp32 nie ... ;/

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Masz wybraną odpowiednią płytkę? 

Po zmianie płytki spróbuj zamknięcia programu i otworzenia go ponownie. 

Spróbuj WeMos D1 R1

Edytowano przez adam30010
Dodanie informacji

Udostępnij ten post


Link to post
Share on other sites

Ogarnąłem 😄 brakowalo w pliku #include <avr/pgmspace.h>

#if (defined(__AVR__)) 
#include <avr\pgmspace.h> 
#else 
#include <pgmspace.h> 
#endif  

 

teraz wszystko smiga 😄

Udostępnij ten post


Link to post
Share on other sites

No prawie wszystko dalej wyniki zawyzone od temperatury, a znow cisnienie zaniża 😜

 

Udostępnij ten post


Link to post
Share on other sites

Ciśnienie to zapewne dlatego, że to co widzisz na mapach pogodowych jest ciśnieniem zredukowanym do poziomu morza. Na pewno znajdziesz przelicznik gdzieś w Google. Co do temperatury to umieść czujnik z dala od komputera, Z DS'ami też mi się wydawało, że zawyżają, a czujnik wiszący na kabelku za oknem pokazuje to samo co analogowy termometr.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij, aby zacząć pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...