Strona 1 z 1

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

: wt lip 09, 2019 3:54 pm
autor: Asica10
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:

Kod: Zaznacz cały

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:

Kod: Zaznacz cały

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

Z góry dziękuje za pomoc

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

: wt lip 09, 2019 4:04 pm
autor: shimano73
Wydaje mi się że masz źle przypisane kanały, np ciśnienie jest na kanale 2 a ty czytasz na 0

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

: wt lip 09, 2019 6:20 pm
autor: Asica10
shimano73 pisze: wt lip 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

Kod: Zaznacz cały

     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.

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

: wt lip 09, 2019 6:40 pm
autor: shimano73
Sprawdź na cloudzie w szczegółach czujnika na którym jest kanale

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

: wt lip 09, 2019 6:56 pm
autor: Asica10
Sprawdzone i kanały się zgadzają.

Ale jadnak brak ponownych odczytu na kanale 2... mam tylko 1 odczyt podczas inicjalizacji (wlaczenie modułu)

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

: wt lip 09, 2019 7:07 pm
autor: shimano73

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

: wt lip 09, 2019 7:17 pm
autor: Asica10
Dzięki wielkie, pomogło :)