niedziela, 16 kwietnia 2017

Budowa miernika jakości połączenia odbiornika MySensors

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