DHT zwiecha na cloud/błędne wysyłanie 2z4 czujników

xkamil
Posts: 5
Joined: Sat May 02, 2020 1:31 pm

Post

Cześć,
mam problem z mają aplikacją na NodeMCU program w ArduinoIDE.
Mam 4 czujniki DHT11 kanały 0-3 i 2 dimmery na 4 i 5.
Program funkcjonuje w konsoli wyświetla się wszystko poprawnie.
Image

Ale w aplikacji tak jakby pomiary z 3 i 4 czujnika się zawieszają (nie aktualizują) kanał 2 i 3.
Pokazuje się albo ostatni wynik, albo zwiesza się tak jakby w wartości temp i wilgotności zapisał wynik wilgotności. W konsoli jest wszystko poprawnie.
- jeżeli wejdę w czujnik 3 lub 4 w cloudzie i zmienię funkcję na brak i później na czujnik temperatury i wilgotności to pobiera poprany wynik i wiesza się znowu. Dodam że pobierają się poprawnie oba pomiary z czujnika 3 i 4 zgodne z tym co wyświetla się w konsoli się znowu zawiesza.
Na początku miałem dimmery na kanałach 0 i 1. Zmiana na 4 i 5. Nic nie pomogła czujnikom.
Jedynie jeżeli podmienię 1 i 2 z 3 i 4 to sytuacja się odwraca i aktualizują się tylko 2 pierwsze czujniki(w zasadzie 2 pierwsze kanały z czujnikami).
Dodałem 2 kolejne czujniki za dimmerami i w kanału 6 i 7 próbowałem zapisywać nie odświeżające się czujniki ale sytuacja jest taka sama nadal tylko 2 pierwsze się aktualizują.
Dodam tylko że mam starszą bilbioteke supli.


Dodatkowe pytanie, bo szukałem, ale konkretnie nie znalazłem odpowiedzi.
Jak wysłać wartości z dimmera brightness na serwer supli.
Jedyne co najbliżej mnie naprowadziło to dimmer rgbw elmayahttps://en-forum.supla.org/viewtopic.php?p=53483#p53483.
Wydaje mi się ze wysyłane są wartości funkcją:
SuplaDevice.channelSetRGBWvalues(),
u mnie w bilbiotece istnieje bez s na końcu.
Jednak próbując wysłać SuplaDevice.channelSetRGBWvalue(5,0,0,0,0,100);

otrzymuje:
no matching function for call to 'SuplaDeviceClass::channelSetRGBWvalue(int, int, int, int, int, int)'
Sprawdziłem, że funkcja oczekuje kanału int i wartości zapisanej w tablicy char.


Nie wiele mam wspólnego z programowaniem, prosiłbym podpowiedź jak to zrobić, chciałbym wysłać na kanał 5 i brightness 100, pozostałych parametrów nie używam.

Image

Pozdrawiam Kamil
xkamil
Posts: 5
Joined: Sat May 02, 2020 1:31 pm

Post

Cześć, zmieniłem bibliotekę na nową od klew.
Mógłby mi ktoś podpowiedzieć jak dodać drugi dimmer.

Code: Select all

class RgbwLeds : public Supla::Control::DimmerBase {
 public:
  RgbwLeds(int redPin,
           int greenPin,
           int bluePin,
           int brightnessPin,
           int colorBrightnessPin)
      : redPin(redPin),
        greenPin(greenPin),
        bluePin(bluePin),
        brightnessPin(brightnessPin),
        colorBrightnessPin(colorBrightnessPin) {
  }

  void setRGBWValueOnDevice(uint8_t red,
                            uint8_t green,
                            uint8_t blue,
                            uint8_t colorBrightness,
                            uint8_t brightness) {
    dimN=(brightness * 255) / 100;
    analogWrite(colorBrightnessPin, (colorBrightness * 255) / 100);
    analogWrite(redPin, red);
    analogWrite(greenPin, green);
    analogWrite(bluePin, blue);
  }

 protected:
  int redPin;
  int greenPin;
  int bluePin;
  int brightnessPin;
  int colorBrightnessPin;
};
void setup() {

  Serial.begin(9600);

// Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = { };

// Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = { };

  
  // CHANNEL0 - DHT11 Sensor
  new Supla::Sensor::DHT(DHT_NAWIEW_PIN, DHTTYPE);

  // CHANNEL1 - DHT11 Sensor
  new Supla::Sensor::DHT(DHT_WYWIEW_PIN, DHTTYPE);

    // CHANNEL2 - DHT11 Sensor
  new Supla::Sensor::DHT(DHT_CZERPNIA_PIN, DHTTYPE);

    // CHANNEL3 - DHT11 Sensor
  new Supla::Sensor::DHT(DHT_WYRZUTNIA_PIN, DHTTYPE);

  // CHANNEL4 - RGB controller and dimmer (RGBW)
  new RgbwLeds(
      RED_PIN, GREEN_PIN, BLUE_PIN, COLOR_BRIGHTNESS_PIN, BRIGHTNESS_PIN);

   // CHANNEL5 - RGB controller and dimmer (RGBW)
 new RgbwLeds1(
      RED_PIN, GREEN_PIN, BLUE_PIN, COLOR_BRIGHTNESS_PIN, BRIGHTNESS_PIN2);

W ten sposób udało mi się w apce i na serwerze wyświetlić 2 dimmery.
Potrzebuje aby zmienne dimN i dimW przejmowały wartości brightness.
Oraz jak wywołać ewentualną zmianę na serwerze jeżeli zmienię wartość dimW lub dimN w programie.

Pozdrawiam Kamil
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

xkamil wrote: Tue May 05, 2020 5:51 am W ten sposób udało mi się w apce i na serwerze wyświetlić 2 dimmery.
Potrzebuje aby zmienne dimN i dimW przejmowały wartości brightness.
Oraz jak wywołać ewentualną zmianę na serwerze jeżeli zmienię wartość dimW lub dimN w programie.
Jak i do czego używasz tych zmiennych dimN i dimW? W jakich sytuacjach Twój program ma je modyfikować i wysyłac do serwera?
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Pomoc”