czwartek, 20 kwietnia 2017

Ściemniacz pasków led na odbiorniku MySensors

Dzisiaj krótki wpis o ściemniaczu pasków led sterowanym z odbiornika MySensors.

Opis, schemat połączeń i kod programu jest na stronie MySensors -> Link

Do budowy zakupiłem jedynie tranzystor mofset IRLZ44N za około 3 zł na Allegro.

Ja dodatkowo do zasilania odbiornika MySensors zastosowałem stabilizator napięcia 7805 5V zgodnie z schematem.


Kod programu do wgrania do Arduino znajduje się na stronie MySensors lub do pobrania tu -> Link

Po wgraniu do Arduino zobaczymy w logach Domoticz nowe urządzenie i bedzie widoczne w Urządzeniach jako zwykły włącznik, zmieniamy go na Dimmer.


Krótki filmik z działania ściemniacza.

poniedziałek, 17 kwietnia 2017

Bramka Ethernet MySensors

Jeżeli nie mamy możliwości podłączenia bramki MySensors do portu USB w Rasberry Pi, możemy zbudować bramkę Ethernet podłączaną do domowej sieci lan za pomocą skrętki.

Budowa bramki MySensors Ethernet opisana jest na stronie MySensors -> Link

Ja do budowy bramki wykorzystałem Arduino Uno i Ethernet Shield z czytnikiem kart microSD, widoczny niżej.


Schemat podłączenia modułu NRF24L01 do Ethernet Shield.


Do Arduino Uno wgrywamy kod -> Link

W 35 linijce kodu wpisujemy adres ip bramki, ja akurat mam Ip z zakresi 192.168.3.1 do 200, więc wpisałem sobie:

#define MY_IP_ADDRESS 192,168,3,160 // wpisz adres ip bramki

W 39 linijce kodu wpisujemy numer portu bramki, ja wpisałem sobie:

#define MY_PORT 9003 //wpisz numer portu bramki, wcześniej zdefiniowany w kodzie programu.

Po wgraniu dodajemy bramkę w Domoticz -> Konfiguracja -> Sprzęt jak niżej, wpisując adres Ip i port bramki.


W logach Domoticz -> Konfiguracja -> Logi powinno się pojawić:

MySensors: connected to: 192.168.3.160:9003
MySensors: Gateway Ready...
MySensors: Gateway Version: 2.1.1

Jeżeli mamy jakieś odbiorniki MySensors powinny wkrótce pojawić się w logach i pokazać w Urządzeniach, dodajemy je klikając w zieloną strzałkę.

niedziela, 16 kwietnia 2017

MySensors - komunikacja przewodowa RS485

Jeżeli nie chcemy korzystać z komunikacji bezprzewodowej za pomocą modułów NRF24L01 pomiędzy bramką MySensors, a odbiornikami MySensors możemy wykorzystać bramkę np. na Arduino Uno z podłączonym modułem RS485 i przekazywać i odbierać dane do kolejnych Arduino z modułami RS485.

Moduł RS485 wygląda i posiada takie sygnały jak pokazano niżej.


Więcej o komunikacji RS485 można poczytać tu -> Link

Moduły do komunikacji używają gniazd oznaczonych jako A i B, łączymy je ze sobą, od pierwszego modułu do drugiego, od drugiego do trzeciego itd...

Moduły RS485 wymagają zasilania 5V, pin RO łączymy do pinu 8 Arduino, DI do pinu 9, a RE i DE łączymy razem do pinu 2 Arduino.

Ja bramkę zbudowałem na Arduino Uno, a odbiornik na Arduino Mini Pro 5V i schemat połączenia wygląda tak.


Zgodnie z tym, co napisali na stronie Mysensors -> Link, do poprawnego działania wymagana jest biblioteka AltSoftSerial, do pobrania tu -> Link, wypakowujemy ją do: Moje dokumenty\Arduino\libraries.

Do bramki wgrywamy kod -> Link

Do odbiornika przykładowy kod ze strony MySensors na czujnik ruchu PIR -> Link

Czujnik ruchu PIR podłączamy do pinu 3 Arduino w odbiorniku i VCC oraz GND do Arduino.

Po wgraniu kodu do bramki podłączamy ją do Raspberry Pi do portu USB i dodajemy bramkę Mysensors jak niżej.


U mnie bramka działa na porcie ACM0.

Po dodaniu bramki i połączeniu odbiornika zgłosi się nam w logach Domoticz (Konfiguracja -> Logi) bramka i czujnik ruchu PIR.


Dodajemy go w Konfiguracja -> Urządzenia klikając w zieloną strzałkę, pojawi się w menu Przełączniki.

Zmieniamy jeszcze rodzaj na Motion Sensor i już powinno działać wykrywanie ruchu.




Inne kody programów do odbiorników z RS485.

Kod programu do odbiornika na przekażnik -> Link


Kod programu dla czujnika temperatury i wilgotności DHT11 lub DHT22 -> Link

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.