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.
czwartek, 20 kwietnia 2017
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ę.
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
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.
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.
Subskrybuj:
Posty (Atom)