Wemos + BME280+dht + oled - problem kanłami

Post Reply
Asica10
Posts: 34
Joined: Thu Feb 28, 2019 8:12 pm

Tue Jul 09, 2019 3:54 pm

Witam,

Chciałem napisać soft (bazując na przykłądach z forum) tak by na 1 wemosie działał OLED BME280 oraz DHT22.

Przy pierwszym uruchomieniu wszystko się łądnie zaczytujei i odczyty w aplikacji są poprawne (pierwsze zaczytane wartości). Kolejny odczyt danych przez suple odbywa się tylko dla kanałów 0 i 1, a nie dla kanału 2 ( na oledzie oraz na porcie szeregowym wszystko ok).

Poniżej kawałek kodu z którym mam problem:

Code: Select all

double get_pressure(int channelNumber, double pressure) {
  switch(channelNumber){
   case 0: 


 pressure =((bme.readPressure() /100))  ;       // pow(1.0-0.0065*altitude / (bme.readTemperature()+273.15),5.255));
   Serial.print("Ciśnienie = ");
   Serial.print(pressure);
   Serial.println(" *hPa");
   return pressure;

break; }

  }

// BME280 Sensor read implementation
void get_temperature_and_humidity(int channelNumber, double *temp, double *humidity) {


    switch(channelNumber){
      case 1:
// BME280 Sensor read implementation
     
    *temp = bme.readTemperature();
    *humidity = bme.readHumidity();
    Serial.print("BME Temp: ");
    Serial.print(*temp);
    Serial.print("   Wilgotność : ");
    Serial.println(*humidity);

 if ( isnan(*temp) || isnan(*humidity) ) {
      *temp = -275;
      *humidity = -1;

  }
  break;

 // DHT22 Sensor read implementation   
  case 2: 
    *temp = dht_a.readTemperature();
    *humidity = dht_a.readHumidity();

    Serial.print("DHT Temp: ");
    Serial.print(*temp);
    Serial.print("   Wilgotność : ");
    Serial.println(*humidity);

    if ( isnan(*temp) || isnan(*humidity) ) {
      *temp = -275;
      *humidity = -1;
        }
break; 
  }}
Oraz kanały jakie mam utworzone:

Code: Select all

  
    // CHANNEL 0,1,2
    
    SuplaDevice.addDHT22(); // BME280 termp and humidity
    SuplaDevice.addAM2302();  // DHT22   
    SuplaDevice.addPressureSensor(); // BME280 pressure
 

Z góry dziękuje za pomoc
User avatar
shimano73
Posts: 753
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Tue Jul 09, 2019 4:04 pm

Wydaje mi się że masz źle przypisane kanały, np ciśnienie jest na kanale 2 a ty czytasz na 0
Asica10
Posts: 34
Joined: Thu Feb 28, 2019 8:12 pm

Tue Jul 09, 2019 6:20 pm

shimano73 wrote:
Tue Jul 09, 2019 4:04 pm
Wydaje mi się że masz źle przypisane kanały, np ciśnienie jest na kanale 2 a ty czytasz na 0
Racja, źle wkleiłem kod

Code: Select all

     SuplaDevice.addPressureSensor(); // BME280 pressure
    SuplaDevice.addDHT22(); // BME280 termp and humidity  
    SuplaDevice.addAM2302();  // DHT22   

Ale zmiana kanałów powoduje (inna kolejnośc) to że zawsze kanał nr 2 nie odświeza się. Próbowałem dodać kolejny kanał 3 i wtedy 2 i 3 się nie odświeża.

Chyba że w supla konkretne numery kanałów zawsze odnnoszą się do jednej rzeczy np kanał 2 to zawsze ciśnienie nie zależnie od kodu itp.
User avatar
shimano73
Posts: 753
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Tue Jul 09, 2019 6:40 pm

Sprawdź na cloudzie w szczegółach czujnika na którym jest kanale
Attachments
2833F7BD-1747-4D8A-A489-7F0572D46C58.png
2833F7BD-1747-4D8A-A489-7F0572D46C58.png (92.33 KiB) Viewed 128 times
Asica10
Posts: 34
Joined: Thu Feb 28, 2019 8:12 pm

Tue Jul 09, 2019 6:56 pm

Sprawdzone i kanały się zgadzają.

Ale jadnak brak ponownych odczytu na kanale 2... mam tylko 1 odczyt podczas inicjalizacji (wlaczenie modułu)
User avatar
shimano73
Posts: 753
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Tue Jul 09, 2019 7:07 pm

Asica10
Posts: 34
Joined: Thu Feb 28, 2019 8:12 pm

Tue Jul 09, 2019 7:17 pm

Dzięki wielkie, pomogło :)
Post Reply