Dzisiaj opiszę budowę miernika jakości połączenia odbiornika MySensors z wyświetlaczem LCD 16x2.
Pomysł został zaczerpnięty z forum MySensors, gdzie opisano budowę takiego miernika -> Link
Do budowy miernika będą potrzebne:
- wyświetlacz LCD 2x16 - koszt około 10 zł -> Link
- konwerter LCD I2C - koszt około 7 zł -> Link
- Arduino Pro Mini 5V - koszt około 14 zł -> Link
- moduł NRF24L01 - koszt około 5 zł -> Link lub moduł NRF24L01 z antenką -> Link
Do budowy miernika wykorzystałem gotowe płytki pod odbiornik MySensors.
Wykonałem prowizoryczną obudowę z małego kartonu, a zasilanie pobieram z powerbanku, wygląda, to tak.
Do płytki odbiornika MySensors wlutowałem gniazda pod goldpiny, aby wymieniać moduł NRF.
Podłączony wyświetlacz.
Ogólny schemat połączenia.
Po przylutowaniu konwertera LCD do wyświetlacza, mamy 4 wyjścia:
GND - podłaczamy do masy GND
Vcc - podłączamy do zasilania 5V
SDA - do pinu A4 Arduino
SCL - do pinu A5 Arduino
Należy pamiętać, że moduł NRF24L01 wymaga zasilania 3,3V i należy do modułu NRF na VCC i GND zamontować kondensator 4,7 uF.
Jeżeli nie mamy stabilizatora 3,3V możemy wykorzystać Arduino Nano, które posiada takie wyjście, tak jak na forum MySensors.
Konwertery LCD I2C są opisane tu -> Link
Ja akurat trafiłem na konwerter LCD z oznaczeniem MH i wtedy przy definicji adresu wyświetlacza wpisujemy adres 0x3F, a pozostałych przypadkach 0x27.
Kod programu do wgrania do Arduino jest do pobrania tu -> Link
W 87 linijce kodu, dla mojego konwertera z oznaczeniem MH musiałem uzyć zapisu:
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
Dla pozostałych konwerterów używamy adresu 0x27 lub wpisu:
LiquidCrystal_I2C lcd(0x27, 16, 2);
Do działania kodu programu wymagana będzie biblioteka LiquidCrystal, jeżeli jej nie mamy to dodajemy ja w programie Arduino, klikajac Szkic -> Dołacz bibliotekę -> Zarzadzaj bibliotekami.
Wpisujemy sobie w wyszukiwarce liqu i instalujemy bibliotekę jak niżej.
Po wgraniu kodu programu do Arduino, w Domoticz powinien zostać wykryty włącznik, zmieniamy go na Dimmer.
Arduino z wgranym kodem programu wysyła do bramki wartości zmienne w zakresie od 0 do 99, an wyświetlaczu pokazywane są dane:
p0 Fail - dane, które w ogóle nie docierają do bramki i d0 Miss, dane które nie powróciły.
Dla modułu NRF24L01 z antenką, w pomieszczeniu oddzielonym 2 ścianami od bramki, między bramką, a miernikiem, znajduje się kuchnia, a miernik znajduje się w drugim pokoju, wynik wyniósł Fail = 0 i Miss = 0, czyli praktycznie wszystkie dane docierają do bramki i nie gubi żadnych danych.
Dla modułu NRF jak pokazano niżej, dla tego samego pomieszczenia, wyniki są takie same.
Dla modułu jak pokazano niżej, nie posiada on białych obwódek wokół elementów i jest wykonany mniej starannie, wyniki już są gorsze, a niektóre z tych modułów nie działają w ogóle.
Wyniki dla tego modułu.
Dla modułu NRF z antenką w pomieszczeniu piwnicy (bramka na pietrze) wyniki wynosiły Fail 23% i Miss 21%, na parterze praktycznie nie gubiło żadnych danych.
Porównanie modułów NRF24L01.
Brak komentarzy:
Prześlij komentarz