Supla-Device Arduino - jak pobierać dane np. do LCD

Marian1544
Posts: 64
Joined: Sat Aug 28, 2021 4:45 pm

Post

Cześć,
Jak zgodnie ze sztuką powinno się pobierać dane z czujników do obróbki, wyświetlania wewnątrz urządzenia?
Mam podłączone DHT11 + OLEDa i komunikacja czujnika z serwerem już działa.

Rozumiem że jest tam bufor, aktualizowany przez SuplaDevice.iterate(), więc niema sensu wywoływać pomiarów dodatkowo.
Jedyne co udąło mi się wykminić to:

Code: Select all

printf("TestBuffer: %d \n", Supla::Sensor::DHT(DHT1PIN, DHT1TYPE).getTemp());
co daje:

Code: Select all

TestBuffer: 1077280768
Czy to słuszna koncepcja, czy jakoś inaczej to się pobiera?
I w jakim formacie jest ta temperatura (22stC)?

Pozdrawiam
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

Marian1544 wrote: Sun Nov 17, 2024 6:33 pm Czy to słuszna koncepcja, czy jakoś inaczej to się pobiera?
I w jakim formacie jest ta temperatura (22stC)?
Tutaj odpaliłeś konstruktor i utworzyłeś nowy sensor temperatury i widocznie jakieś bzdury się wyświeliły ;)

Powienieneś sobie gdzieś trzymać wskaźnik na kanał temperatury i z niego odczytywać pomiar (a nie tworzyć nowy).

Jeśli chcesz pobrać ostatnio odczytaną temperaurę, to możesz to zrobić np. tak:

Code: Select all

Supla::Sensor::DHT *dht = nullptr;

// setup
dht = new Supla::Sensor::DHT(....);

// iterate
double temperature = dht->getChannel()->getValueDoubleFirst();
Najlepsze suple dla Twojego domu :mrgreen:
Marian1544
Posts: 64
Joined: Sat Aug 28, 2021 4:45 pm

Post

Dzięki za instrukcję, co prawda efekt był ten sam, ale dzięki temu zacząłem grzebać w sposobie wyświetlania.
Okazuje się, że printf z parametrem %d pokazuje taki efekt, a dla %f jest ok.
Także wygląda obydwa sposoby pobierania działają :)
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Marian1544 wrote: Mon Nov 18, 2024 6:00 pm Dzięki za instrukcję, co prawda efekt był ten sam, ale dzięki temu zacząłem grzebać w sposobie wyświetlania.
Okazuje się, że printf z parametrem %d pokazuje taki efekt, a dla %f jest ok.
Także wygląda obydwa sposoby pobierania działają :)
%d = decimal a nie double ;-)
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
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

Marian1544 wrote: Mon Nov 18, 2024 6:00 pm Dzięki za instrukcję, co prawda efekt był ten sam, ale dzięki temu zacząłem grzebać w sposobie wyświetlania.
Okazuje się, że printf z parametrem %d pokazuje taki efekt, a dla %f jest ok.
Także wygląda obydwa sposoby pobierania działają :)
To nie jest to samo. Ta Twoja wersja tworzy co chwilę nowy kanał, który czyta ten sam czujnik, a potem go usuwa.
Najlepsze suple dla Twojego domu :mrgreen:
Marian1544
Posts: 64
Joined: Sat Aug 28, 2021 4:45 pm

Post

@vajera
Tak, ale liczyłem że %d to ogarnie :)

@klew
Rozumiem, dzięki za wyjaśnienie.
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

klew wrote: Mon Nov 18, 2024 10:06 am
Marian1544 wrote: Sun Nov 17, 2024 6:33 pm Czy to słuszna koncepcja, czy jakoś inaczej to się pobiera?
I w jakim formacie jest ta temperatura (22stC)?
Tutaj odpaliłeś konstruktor i utworzyłeś nowy sensor temperatury i widocznie jakieś bzdury się wyświeliły ;)

Powienieneś sobie gdzieś trzymać wskaźnik na kanał temperatury i z niego odczytywać pomiar (a nie tworzyć nowy).

Jeśli chcesz pobrać ostatnio odczytaną temperaurę, to możesz to zrobić np. tak:

Code: Select all

Supla::Sensor::DHT *dht = nullptr;

// setup
dht = new Supla::Sensor::DHT(....);

// iterate
double temperature = dht->getChannel()->getValueDoubleFirst();
Tu jest mowa o pobraniu temperatury , a jakiej metody użyć do pobrania wartości wilgotności ?
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
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

getValueDoubleSecond
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Pomoc”