Tak, BMEklew wrote: Mon Feb 24, 2020 11:06 am W bibliotece https://github.com/SUPLA/arduino/tree/develop pojawił się niedawno ultradźwiękowy sensor odległości HC-SR04. Obsługę sensora dostarczył @elmaya. Dorzuciłem też do niego obsługę błędów oraz zwiększyłem częstototliwość odczytów (teraz jest co pół sekundy - w przyszłości będzie można to sobie parametrem ustawić). Trzy błędne odczyty są ignorowane, następnie pojawią się w aplikacji "---" do czasu poprawnego odczytu.
Przykład jest dostępny tutaj:
https://github.com/SUPLA/arduino/blob/d ... sensor.ino
Poza tym od niedawna jest też dostępny następca "addSensorNO" - czyli sensor wykrywający stan wysoki/niski na danym GPIO. Do obsługi służy klasa Supla::Sensor::Binary oraz Supla::Sensor::NormallyOpen (można ich używać zamiennie w zależności od tego, która nazwa Wam bardziej pasuje).
Wkrótce zrobię BME*. Jeśli ktoś na coś bardzo czeka, to piszcie![]()
Czujniki w bibliotece SuplaDevice
-
lukfud
- Posts: 2480
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
- Has thanked: 13 times
- Been thanked: 11 times
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
-
Robert Błaszczak
- Posts: 5222
- Joined: Sat Dec 22, 2018 8:55 pm
- Location: Zielona Góra
- Has thanked: 37 times
- Been thanked: 27 times
Ciekawy ten czujnik. Nie znałem go wcześniej. Trzeba będzie pomyśleć i zastosować go w swojej stacji meteo.
Dzięki @Duch__
Dzięki @Duch__
Pozdrawiam
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
-
lukfud
- Posts: 2480
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
- Has thanked: 13 times
- Been thanked: 11 times
forumowicze,
Potrzebuję wstawić analogowy odczyt z czujnika gazu. Jak utworzyć klasę dla takiego odczytu?
Potrzebuję wstawić analogowy odczyt z czujnika gazu. Jak utworzyć klasę dla takiego odczytu?
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
Tu masz przykład, resztę musisz już dopisaćlukfud wrote: Mon Mar 02, 2020 8:44 pm forumowicze,
Potrzebuję wstawić analogowy odczyt z czujnika gazu. Jak utworzyć klasę dla takiego odczytu?
viewtopic.php?p=60917#p60917
https://gui-generic-builder.supla.io/
-
lukfud
- Posts: 2480
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
- Has thanked: 13 times
- Been thanked: 11 times
Próbuję na podstawie:krycha88 wrote: Mon Mar 02, 2020 9:05 pmTu masz przykład, resztę musisz już dopisaćlukfud wrote: Mon Mar 02, 2020 8:44 pm forumowicze,
Potrzebuję wstawić analogowy odczyt z czujnika gazu. Jak utworzyć klasę dla takiego odczytu?
viewtopic.php?p=60917#p60917
Code: Select all
class RssiChannel : public Supla::Sensor::Thermometer {
public: RssiChannel() {}
void onInit() { channel.setNewValue(getValue()); }
double getValue() { return WiFi.RSSI(); }
};https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
To zamień Supla::Sensor::Thermometer na Supla::Sensor::ThermHygroMeterlukfud wrote: Mon Mar 02, 2020 9:22 pm Próbuję na podstawie:ale niestety mi nie wychodzi. Chciałbym użyć ThermHygroMeter.Code: Select all
class RssiChannel : public Supla::Sensor::Thermometer { public: RssiChannel() {} void onInit() { channel.setNewValue(getValue()); } double getValue() { return WiFi.RSSI(); } };
I do pobierania wartości wykorzystaj metody getTemp() oraz getHumi()
https://gui-generic-builder.supla.io/
-
lukfud
- Posts: 2480
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
- Has thanked: 13 times
- Been thanked: 11 times
Dzięki za podpowiedzi.krycha88 wrote: Mon Mar 02, 2020 9:55 pm
To zamień Supla::Sensor::Thermometer na Supla::Sensor::ThermHygroMeter
I do pobierania wartości wykorzystaj metody getTemp() oraz getHumi()
Kombinowałem z Supla::Sensor::ThermHygroMeter, ale baran jestem i nie doczytałem ze zrozumieniem. Sypało błędami bo nie wstawiłem
Code: Select all
#include <supla/sensor/therm_hygro_meter.h>Code: Select all
class GasSensor : public Supla::Sensor::ThermHygroMeter {
public: GasSensor() {}
void onInit() {
channel.setNewValue(getValue());
}
double getHumi() {
return map(analogRead(A0), 0 ,1024, 0, 100);
}
};https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Czemu chcesz aby "Gas Sensor" czytał temperaturę z DSa?lukfud wrote: Mon Mar 02, 2020 10:09 pm
Udało się, działa
Kolejną zagadką jest wstawienie odczytu z DS'a do tej klasy..Code: Select all
class GasSensor : public Supla::Sensor::ThermHygroMeter { public: GasSensor() {} void onInit() { channel.setNewValue(getValue()); } double getHumi() { return map(analogRead(A0), 0 ,1024, 0, 100); } };
We wstawionym przez Ciebie kodzie jest błąd. W "onInit" powinieneś używać "getHumi" a nie "getValue".
W tym typie sensora (temperatura + wilgotność) powinieneś używać metody setNewValue z dwoma argumentami:
Code: Select all
channel.setNewValue(getTemp(), getHumi());
W onInit powinieneś też wstawić kod inicjalizujący GPIO do odczytu analogowego, a konstruktor powienien przyjmować nr GPIO do odczytu gazu - tak aby to A0 nie pojawiało się bezpośrednio w kodzie GasSensor'a.
Najlepsze suple dla Twojego domu 
-
lukfud
- Posts: 2480
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
- Has thanked: 13 times
- Been thanked: 11 times
Jak już używam kanału z dwiema wartościami to czemu nie, przy okazji będzie czujnik temperatury w kuchni.klew wrote: Mon Mar 02, 2020 10:59 pm Czemu chcesz aby "Gas Sensor" czytał temperaturę z DSa?
We wstawionym przez Ciebie kodzie jest błąd. W "onInit" powinieneś używać "getHumi" a nie "getValue".
W tym typie sensora (temperatura + wilgotność) powinieneś używać metody setNewValue z dwoma argumentami:
Ok, widzę błąd, ale odczyt jest poprawny. Zmienię
No dobrze, tylko nie wiem jaklukfud wrote: Mon Mar 02, 2020 10:09 pm W onInit powinieneś też wstawić kod inicjalizujący GPIO do odczytu analogowego, a konstruktor powienien przyjmować nr GPIO do odczytu gazu - tak aby to A0 nie pojawiało się bezpośrednio w kodzie GasSensor'a.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
