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
Witam potrzebuję przykładu programu do odbiornika rs485 do sterowania 2 przekaźnikami ale żeby można było sterować jeszcze włącznikami. Czy da się to załatwić ?
OdpowiedzUsuńZobacz w komentarzach w tym wpisie http://projektpimalina.blogspot.com/2016/09/odbiornik-mysensors-i-sterowanie.html
UsuńTylko zamiast definicji NRF dajesz:
// Enable RS485 transport layer
#define MY_RS485
// Define this to enables DE-pin management on defined pin
#define MY_RS485_DE_PIN 2
// Set RS485 baud rate to use
#define MY_RS485_BAUD_RATE 9600
A w arduino uno to ma być podłączone do pinu 12 czy 2 ?? bo w nano do 2
OdpowiedzUsuńNa schemacie wkradł się błąd. Ma być tak jak napisałem: RE i DE łączymy razem do pinu 2 Arduino, czyli do UNO ma być podłączone do pinu 2.
UsuńJuż poprawiłem schemat.
OdpowiedzUsuńCoś mi nie działa to rs485 Wykrywa bramke ale jak podłącze czujnik to mi go nie wykrywa.
OdpowiedzUsuńCzy mógł by mi ktoś z tym pomóc ?
UsuńJaki czujnik i jaki kod wgrywasz?
UsuńWgrywam przykłady z biblioteki mysensors 2.1.1 na czujnik ruchu
UsuńTen komentarz został usunięty przez autora.
UsuńWyreguluj dobrze czujnik pir albo podaj 5 v na pin 3 i zobacz czy wykryje.
UsuńW logach Domoticz cos sie pokazuje?
UsuńW logach wykrywa tylko bramke. Zaraz podepne do pinu 3 to 5V
UsuńNIe działa :( a ta biblioteka AltSoftSerial jest potrzebna ?
UsuńWitam, mam ten sam problem. bramka widoczna i nic więcej, czy możesz ponownie udostępnić kod bramki?
OdpowiedzUsuńWszystko testowałem i działa. Kod do bramki i inne są na stronie MySensors.
UsuńWszystkie kody są tu
https://github.com/mysensors/MySensors/tree/master/examples
A podpięcie pod arduino mega jest takie samo ?
UsuńNie wiem, czytajcie wiecej na stronie MySensors. Testowalem na Uno i Pro Mini.
UsuńNie wiem, czytajcie wiecej na stronie MySensors. Testowalem na Uno i Pro Mini.
UsuńWgrywałeś kod ze strony MySensors
Usuńhttps://www.mysensors.org/build/rs485 i działało,
czy wprowadzałeś jakieś zmiany lub coś dodawałeś?
Szczególnie jeśli chodzi o kod bramki.
Wklejam żywcem kod bramki jak i czujnika i niestety nie gadają ze sobą
Nie pamiętam, a jakimś sposobem usunęło mi ten plik z dropbox i go teraz nie mam.
UsuńJest to napewno wina softu lub biblioteki bo wgrałem program nie na mysensors na świecenie diody led przyciskiem i działało.
UsuńWitam, też miałem problem z widocznością czujników. Rozwiązaniem było dodanie #define MY_NODE_ID 1 przed #include MySensors.h, tylko w nodach (nie bramce). Jeśli posiadacie więcej czujników to każdemu przypisujecie kolejny numer.
OdpowiedzUsuńCzy komuś udało się uruchomić to na RS485?
OdpowiedzUsuńCzy da się to ożenić z adapterm USB 485 pod malinę i pominąć bramkę ?
OdpowiedzUsuńPolecam nasz projekt open hardware na ten temat:
OdpowiedzUsuńhttps://www.openhardware.io/view/639/RS485-MCU-Module
Jest już moduł procesorowy, kilka shieldów i gateway. Do tego całkiem działające oprogramowanie.
Hej.
OdpowiedzUsuńCzy można zmienić domyślne piny komunikacji D8 i D9 na D0 i D1 czyli sprzętowy UART?