Skocz do zawartości

ESP32 + czujnik BME680 problem z zawyżaniem temperatur


Pomocna odpowiedź

  • Treker zmienił tytuł na: ESP32 + czujnik BME680 problem z zawyżaniem temperatur
#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.

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.

 

Link to post
Share on other sites

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
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 😄

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.

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij 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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.