W komentarzach do wpisu na blogu opisującym bezprzewodowy czujnik poziomu węgla w zasobniku -> Link Mac C napisał, że chciałby wykorzystać czujnik w Domoticz i aby wyświetlał ilość węgla w procentach.
Zrobiłem, to w następujący sposób, oczywiście wymagana jest bramka MySensors jako odbiornik, opis tu -> Link
Najpierw, aby przetestować czy wszystko działa napisałem kod programu, który wyświetla odległość w cm i podaje wartość w procentach, przy założeniu, że 100% to jest 60 cm.
Schemat podłączenia będzie taki sam, jak w opisie bezprzewodowego czujnika węgla z diodami led.
Trig - podłączamy do pinu 3
Echo - do pinu 4
Vcc - 5V
GND - do GND
Kod programu wygląda tak
Do pobrania jest stąd -> Link
Jeżeli włączymy serial monitor, to wyświetla się odległość w cm i podaje ile to jest procent, przy założeniu, że 60 cm, to jest 100 %.
W kodzie programu na początku definiujemy odległość max.
Program przelicza odległość na procenty, tylko w przypadku ilości węgla 100% będzie wtedy, gdy zbiornik będzie pełny, a odległość będzie wynosiła 0, czyli w powyższym kodzie należy od wartości 100% odjąć wartość w procentach zmierzonej odległości, czyli:
Definiujemy sobie nową zmienną ilosc (int ilosc;)
i wtedy ilość węgla w zasobniku w procentach będzie, to ilosc = 100 - procent
Kod programu teraz wygląda tak:
Kod do pobrania stąd -> Link
Teraz w serial monitorze program wyświetla procentową ilość węgla, przy założeniu, że 60 cm (definiujemy sobie to na początku programu przy int max = 60;) będzie to pusty zbiornik.
Teraz, aby przesyłać dane do Domoticz przez bramkę MySensors, należy dodać wpisy w kodzie programu, zgodnie z tym, co opisałem wcześniej w wpisie Prezentacja i przesyłanie danych w nadajnikach MySensors -> Link
Jako typ czujnika gw.present wykorzystam S_WEIGHT , a rodzaj zmiennej MyMessage - V_IMPEDANCE, zgodnie z opisem, na stronie MySensors dla wagi pod pozycją 12 -> Link
Kod programu jest do pobrania tu -> Link
Po wgraniu, w logach Domoticz -> Konfiuguracja -> Logi powinna się pojawić nazwa programu
Teraz już wystarczy wejść w Konfiguracja -> Urządzenia i powinien być widoczny czujnik
Wystarczy już kliknąć w zieloną strzałkę, wpisać nazwę i kliknąć Dodaj urzadzenie
Urządzenie będzie widoczne w zakładce Użytkowe
W kodzie programu do celów demonstracji ustawiłem na końcu delay(1000); - czas w milisekundach, ale myślę, że można go ustawić na czas aktualizacji np. co pół godziny, czyli na 1800000 milisekund.
Działanie czujnika widać na poniższym filmie
Świetne!!!
OdpowiedzUsuńSzkoda że twój blog tak topornie działa u mnie każda strona na rożnych łączach otwiera się ok 5-10min. Dzisiaj dojechało RPi wiec wieczorami zabieram się do roboty
OdpowiedzUsuńTak to super pomysł. Też wpadłem na dokładnie takie samo wykonanie pod koniec ub. roku). I od tamtego czasu działa ok. To był mój pierwszy działający na stałe czujnik w domoticzu :). Generalnie czasami przy pomiarach mam przekłamania (nie wiem z czego wynikają). Dalego wykonuje 60 pomiarów co 5 sekund i do domoticza wysyłam uśredniony wynik tj. co 5 minut.
Usuń"Jako typ czujnika gw.present wykorzystam S_WEIGHT , a rodzaj zmiennej MyMessage - V_IMPEDANCE, zgodnie z opisem, na stronie MySensors dla wagi pod pozycją 12 -> Link"
OdpowiedzUsuńWitam
Niestety ta część jest dla mnie nie zrozumiała. Nie działa link i nie wiem co gdzie mam uzupełnić proszę o podpowiedź.Używam biblioteki w wersji 2
Próbowałem przerobić na wersję bibliotek 2 nic mi nie wychodzi
OdpowiedzUsuńLink rzeczywiscie nie dziala. Na stronie MySensors cigle cos sie zmienia, ale opisy rodzaju uzywanych danych sa na stronie MySensors.
OdpowiedzUsuńJak znajde czas napisze Ci program do nowych bibliotek. Moze zrobie nowy wpis o przesylaniu i odbieraniu danych na nowych bibliotekach, ale na razie nie mam czasu.
OdpowiedzUsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuńSprawdziłem
OdpowiedzUsuńBramka na bibliotece 2 Obsługuje czujnik poziomu węgla na starszej bibliotece.
Tak działa. Kody programów pisane pod starsze wersje bibliotek działają z bramką na bibliotece 2.0.
UsuńJakby ktoś chciał, to napisałem program na czujnik węgla dla bibliotek 2.0
OdpowiedzUsuńhttps://www.dropbox.com/s/zj0rblexzh6nepl/Mysensors_czujnik_ilosci_wegla_2.rar?dl=0
Nie testowałem programu, ale powinien działać.
UsuńPrzetestowałem wszystko działa
UsuńFantastycznie dzięki. Jutro przetestuję
OdpowiedzUsuńDa się dorobić do poziomu węgla temperaturę na ds1820 ?
OdpowiedzUsuńDa sie w jakims wpisie opisalem jak odbywa sie komunikacja z odbiornikiem MySensors, poczytaj sobie to sobie dopiszesz kod na DS18B20.
UsuńDa sie w jakims wpisie opisalem jak odbywa sie komunikacja z odbiornikiem MySensors, poczytaj sobie to sobie dopiszesz kod na DS18B20.
Usuńjak zachowuje się czujnik po dłuższym użytkowaniu? chodzi mi o to czy pył z groszku nie powoduje złego działania czujnika
OdpowiedzUsuńPytanie.
OdpowiedzUsuńA jak ustawić aby pomiar robiony był powiedzmy co 30 minut.
Czytaj wyżej - cytat: W kodzie programu do celów demonstracji ustawiłem na końcu delay(1000); - czas w milisekundach, ale myślę, że można go ustawić na czas aktualizacji np. co pół godziny, czyli na 1800000 milisekund.
UsuńPo prostu zmień sobie na końcu kodu programu na:
Usuńdelay(1800000); // opóźnienie
Czas podajemy w milisekundach.
Pomocny przelicznik
https://www.jednostek-miary.info/przelicznik-jednostek.php?typ=czas
Pomroczność jasna.Czas na urlop bo głowa już chyba nie myśli jak trzeb.Dzięki wielki.Poszukuje jakiegoś sensownie napisanego (jak dla idioty :-) ) poradnika o odpaleniu termostatu na domoticz.Chodzi mi o zastąpieniu zwykłych termostatów w domu wersja elektroniczną.
OdpowiedzUsuńDo czego za każdym razem jest nrf24l01 nawet jak komunikujemy sie po eternecie albo usb to on i tak występuje ?
OdpowiedzUsuńOdbiornik komunikuje się bramką z NRF24L01, którą podłączona jest do Raspberry Pi do portu USB, tak więc jest jedna bramka z którą komunikują się odbiorniki bezprzewodowo.
UsuńNa demonstracji jest prototyp na płytce stykowej i podłączone jest tylko zasilanie USB do Arduino Nano. Normalnie używa się Arduino Mini Pro bez portu USB.
Usuń