Dotarły moje zamówione moduły Arduino Nano i NRF24L01 zakupione w sklepie Propox, w komplecie były kable USB, koszt 1 szt. Arduino Nano, to 30 zł i 4 zł moduł NRF24L01.
Zaraz na początku pojawiły się problemy z wykryciem Arduino w Windows na dołączonych kablach USB, musiałem użyć innych kabli mini USB.
Aby moduł został poprawnie wykryty wymagane są sterowniki FTDI w systemie, możemy je pobrać ze strony producenta, wybierając wersję odpowiednią do posiadanego systemu -> http://www.ftdichip.com/Drivers/D2XX.htm
Sterowniki można zainstalować automatycznie klikając program instalacyjny lub ręcznie po podłączeniu Arduino. Po zainstalowaniu w Menedżerze urządzeń powinien być widoczny nowy port COM, u mnie jest port COM10.
Gdy już mamy poprawnie zainstalowany sterownik i wykryty moduł Arduino zapamiętujemy nr portu COM.
Uruchamiamy program Arduino klimay Narzędzia i wybieramy Płyta Arduino Nano
Wybieramy procesor Atmega 328 i port COM jaki wykryło nam wcześniej w Mendżerze urządzeń
Teraz wybieramy z naszej biblioteki program do bramki SerialGateway, jak dodać bibloteki napisałem wcześniej w poście -> Instalacja bibliotek sensorów z mysenors
Plik -> Przykłady -> MySenosrs -> SerialGateway
Teraz wybieramy Zwerifkuj i Wgraj.
Bibliotek nie trzeba instalować, można je pobrać ze strony MySensors lub wgrać bezpośrednio na stronie-> http://www.mysensors.org/build/serial_gateway
Gdy już wgramy program bramki MySensors łączymy Arduino z modułem NRF24L01 zgodnie ze schematem
Na schemacie PIN2 nie jest podłączony, ja go jednak podłączyłem.
Gotowa bramka
Bramkę podłączamy kablem USB do wolnego portu USB w Rasberry Pi, uruchamiamy Domoticz, wchodzimy w Ustawienia -> Sprzęt i szukamy w Typ: My Sensors Gateway USB, Serial port powinno być /dev/ttyUSB0, wpisujemy nazwę, ja wpisałem MySenors i klikamy Dodaj.
Gdy wejdziemy w logi Ustawienia -> Logi zobaczymy, że nasza bramka została dodana
Teraz łączymy drugie Arduino Nano z NRF24L01 tak samo jak bramkę, będzie to odbiornik, gdzie podłącza się czujniki.
Ja podłączyłem czujnik DHT11
Moduł ten nie wymaga podłączenia rezystora podciągającego i ma diodę zasilania, w module są 3 piny GND, Data i VCC.
GND łączymy do GND w Arduino Nano, Data do pinu D3, a VCC do 5V.
Teraz trzeba jeszcze wgrać program do obsługi czujnika, będzie do program Humidity -> http://www.mysensors.org/build/humidity
Po wgraniu nasz odbiornik możemy zostawić podłączony do portu usb lub zasilić zewnętrznym zasilaczem.
Teraz w logach Domoticz powinniśmy zobaczyć, że wykryło nasz odbiornik
Jeżeli nie wykryje, to trzeba wcisnąć przycisk reset na module Arduino. Gdy wykryje nasz odbiornik z czujnikiem zobaczymy, to w logach oraz nowy czujnik w Urządzeniach, wybieramy go klikamy zieloną strzałkę wpisujemy nazwę i już mamy widoczny odczyt.
Odczyt z czujnika DHT11
Ponieważ pojawia się problem z obsługą nowych i starych bibliotek i programy nie chcą się kompilować, proponuję wypakować i skopiować do folderu:
Program Files -> Arduino -> libriares ten zestaw bibliotek -> Link
Do folderu Moje Dokumenty -> Arduino -> libraries wypakować i skopiować ten zestaw plików -> Link
W katalogu Moje Dokumenty -> Arduino -> libriares -> MySensors-master -> examples mamy większość kodów programów do obsługi czujników MySensors.
sprawdzałeś może, bądź wiesz ile maksymalnie czujników ogarnie 1 bramka przy raspberry? czy mozna słuchać większej ilości czujników, i nie tylko DHT11
OdpowiedzUsuńNo nie sprawdzałem, ale zastanawia mnie jak skleję z np. 3 programów jeden program i wrzucę do odbiornika na Arduino, to czy będzie działać, ale powinno i wtedy wykorzystam np. 3 piny na czujniki. Bo chcę zrobić do jednego Arduino Mini czujnik DHT22 i ciśnienia, zamknąć w jakimś pudełku z bateriami i umieścić za oknem.
Usuńskleisz bez problemu, mało tego nawet udało mi sie odczytywać wartość napięcia akumulatora. Nie wiem czy tez to zauważyłeś, ale przy samym DHT11 nadajnik wysyła do domoticza tylko jedna wartość, np wilgotnosc, ponieważ temperatura się nie zmieniła. u mnie doprowadzalo to do sytuacji w ktorej domoticz uwazal urzadzenie za martwe. musialem zmodyfikowac kod, by dht wysyłał go nawet jesli temperatura byla rowna poprzedniej wartosci
UsuńMożesz wrzucić kod np, na Dropbox i udostępnić?
UsuńNa pewno przyda mi się i innym.
http://pastebin.com/GkqJVGmP
Usuńmocno zmodyfikowany (wywaliłem sporo kodu), mi działa :p
Dzięki za kod
Usuńhttp://pastebin.com/hKrFYMJi
Usuńnowa wersja, zawiera również obsługę barometru BMP180 u mnie działa wspaniale: http://images67.fotosik.pl/1237/37860eda5975a8c2gen.png
Super, fajnie to wygląda, też czekam na czujnik BMP180. Dzięki :)
UsuńDHT11 jest zdefiniowane w tym kodzie na pin 3, a BMP180 na który pin?
UsuńSDA/SCL A5/A4 na Arduino nano, sprawdź dla pewności na pinoucie. Na czujniku masz Vcc, gnd sda scl i 3,3v, vcc nie podłączaj, zasilaj 3v3V
UsuńDzięki właśnie zauważyłem, że do BMP180 używa się pinów analogowych.
Usuńoh, i przy okazji, jak by ktos mial problem z sygnałem nawet pomimo niewielkiej odległości zalecam wlutowanie do NRF kondensatora 4,7uF (vcc i gnd)
OdpowiedzUsuńDzięki za cenne uwagi :)
UsuńCześć,
OdpowiedzUsuńGdzie kupujesz elektronikę ?
Dzkięki
Piotrek
Propox albo Telmal na Allegro, obydwa sklepu mają duży wybór.
UsuńPanowie może wy jesteście mi w stanie pomóc. Mam RaspberryPi z modułem RaZberry do kontroli urządzeń w technologii z-wave (np. fibaro). Płytka wpięta w port GPIO w praktyce wykluczyła w prosty, bez kosztowy sposób podpięcia czegoś więcej. Ponieważ apetyt rośnie w miarę jedzenia ;-) pomyślałem o sterowaniu przez Domoticz swojego systemu alarmowego (poprzez magistralę X10 i RF 433MHz, tak uogólniając). Najszybciej i najprościej okazało się, że da się to zrobić na Arduino Mega. Tak więc do pinów D16 i D19 mam podpięty receiver a do pinów D14 i D15 transmitter, plus obydwa piny GND (to tak informacyjnie aby wiadomo było, które piny mam już zajęte). O ile z Raspberry jestem za pan brat i przerobiłem na nim kilkanaście projektów o tyle Arduino Mega używam od dwóch dni. Moje pytanie brzmi, jak podpiąć (do których pinów) do niego (Arduino Mega) jeszcze moduł PIR, czujnik temperatury i wilgotności DHT11, taki sam jat ten opisany powyżej oraz czujnik ciśnienia BMP 180? Oraz jak doinstalować odpowiednie biblioteki MySensors. Znam stronę MySensors i znam te projekty ale wszystkie opierają się na Mini Arduino Pro albo jak tutaj Arduino Nano a ja chcę podpiąć wszystko do jednej płytki Arduino MEGA. Ponieważ nie znam się zupełnie na Arduino to nie mam pojęcia, do których pinów oraz jak je wysterować. Arduino Mega mam spięte kablem USB z Raspberry, na którym stoi serwer Domoticz. Raspberry i Arduino mają swoje zasilanie po 2A tak więc mocy jest dość, dodatkowo nie mam potrzeby aby te czujniki działały bezprzewodowo więc moduły NRF24L01 są mi zbędne, no może poza PIR ale to już ogarnę ze strony MySensors, ale nie wierze, że wszystkiego nie da się połączyć i sczytać stany do wypasionej bądź co bądź Arduino Mega.
OdpowiedzUsuńZasadniczo wybór płytki arduino nie ma większego znaczenia. Dht, ds11 itd wpadasz do dowolnego wolnego pinu w arduino mega (swoją drogą a to co potrzebujesz to i tak za dużo) kwestia tylko odpowiedniego sketcha w arduino. Musisz połączyć kilka kodów że sobą by działało jak trzeba. Ni wiem jak odbywa si e komunikacja arduino rpi bez mysensors więc nie pomogę. Swoją drogą odseparowanie płytek od siebie jest logiczne w przypadku np zwarcia
UsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuńTen komentarz został usunięty przez autora.
UsuńWitam, ja mam pytanie odnośnie wykrywania bramki w domoticzu.
OdpowiedzUsuńOd kilku dni próbuję ustawić bramkę z leonardo jak i nano ale za nic w swiecie domoticz postwiony na raspberry nie widzi.
Wgrywam przez ide plik/przyklady/MySensors/SerialGateway i proces konczy sie sukcesem zapisu ale po podlaczeniu do raspberry i probie dodania jej w domoticzu przy wersji widze znak zapytania.
Co może być tego przyczyną?
Dodam jeszcze, że nie mam dostępnego w liscie wyboru /dev/ttyUSB0, jest tylko dev/ttyAMA0
a żadnego innego portu USB nie masz do wyboru? co Ci pokazuje ls /dev/ |grep ttyUSB masz cos innego proc arduino podłączone do rpi?
OdpowiedzUsuńMam jeszcze ttyAMA0 ( tylko te dwa ).
OdpowiedzUsuńŻadnego innego sprzetu nie mam wpietego.
Co pokazuje komenda podam za godzinke bo jestem poza domem.
Ale z tego co pamietam to w lokalizacji dev nie ma żadnych USB.
Witam, udało się komuś ogarnąć podłączenie obojętnie jakiego czujnika, wyłącznika itp. podłączonego bezpośrednio do Arduino ale samo połączenie arduino z Domoticzem odbywa się po ethernet z pominięciem wszelkich modułów bezprzewodowych. Szukam już 3 dzień informacji jak to pożenić :) lecz praktycznie wszystko co znajduje to bramki ethernet bądź USB do transmisji bezprzewodowej.
OdpowiedzUsuńDrugie pytanie-prośba, może ktoś mnie naprowadzi jak wygląda komunikacja między Domoticzem a Arduino via ethernet
Witam,
Usuńczy w temacie obsługi czujników przez Arduino komunikującej się z Domoticzem przez Ethernet macie jakieś sukcesy ?
Zrobiłem wszystko tak jak opisywałeś i mam problem po podłączeniu bramki portem usb i dodaniu jej w domoticz wszystko wariuje i rozsypuje się domoticz.
OdpowiedzUsuńZainstaluj na nowo Domoticz, jak działa nieprawidłowo.
UsuńWitajcie,
OdpowiedzUsuńto ja się dolacze do tematu. Mam problem podobnej masci do kolega Krychu K. Mianowicie Domoticz na RPi3 nie widzi Adruino UNO, żadnego urzadzenia TTYUSB :(
Logi domoticza:
...
MySensors: Using serial port: /dev/ttyACM0
Error: MySensors: Error opening serial port!
...
user@rpi:~/domoticz$ sudo ls /dev/ | grep ttyUSB
user@rpi:~/domoticz$
...
Jak moge zweryfikowac, dlaczego RPI nie widzi UNO?
pozdrawiam
Wpisz w konsoli polecenie: lsusb
UsuńWtedy zobaczysz urządzenia podłączone do USB.
Powinno być widoczne UNO, oczywiście po wgraniu programu bramki MySensors.
U mnie po podłączeniu UNO mam:
Bus 001 Device 007: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Masz coś jeszcze podłączone do portu USB? Jeżeli tak to odłącz.
Witaj,
Usuńzrobiłem niewielki postep, mianowicie, Serial Gateway jest już widoczny w Domoticz :)
2016-09-12 21:11:41.280 MySensors: Using serial port: /dev/ttyACM0
2016-09-12 21:11:42.918 MySensors: Gateway Ready...
2016-09-12 21:11:42.994 MySensors: Gateway Version: 2.0.0
Wyglada na to, ze RPi 3 urzadzenia USB sa wykrywane pod:
/dev/ttyACM0
Jednak to by było na tyle:(
Serial gateway stoi na Arduino UNO, do niego podlaczony NRF24L01 zgodnie z opisem powyzej (bez kondensatora 47µF miedzy 3.3V and GND).
Node jest na Anduino Leonardo (zamiennik). NRF24L01 podlaczony tak samo jak na UNO, jednak domoticz nie widzi zadnego podlaczonego czujnika :(
Probowalem np szkicu "libraies -> MySensors ->RelayAcutator", gdzie przekazniki wpiete sa w piny D3, 4.
Jakies porady, jak sprawdzić gdzie moze lezec problem?
Załóż kondensator 4,7 uF i zobacz w logach Domoticz, czy wykrywa odbiornik.
UsuńElektrolity zalozone, jednak bez rezultatu - nie widzi odbiornika. Uzywam Anduino Leonardo - moze tu lezy problem. Zamowilem Arduino nano, zobaczymy co bedzie jak zmienie.
UsuńCiąg dalszy pasjonującej historii :)
UsuńTemat nie daje mi spokoju, zatem znalazłem ciekawe narzędzie - "MYSController", oto logi jakie dostaje z Serial Gateway:
[2016-09-14 20:08:57.789 Info] INFO *** Logging START ***
[2016-09-14 20:08:57.790 Info] VERSION MYSController 0.1.2.282
[2016-09-14 20:08:57.790 Info] STARTUP INI file loaded
[2016-09-14 20:08:57.790 Info] STARTUP Loading FW repository...
[2016-09-14 20:08:57.831 Info] REPO FW "Blink" loaded. t=10, v=1, blocks=72, crc=0xD098
[2016-09-14 20:08:57.861 Info] REPO FW "TimeReporter" loaded. t=20, v=1, blocks=840, crc=0x4AC5
[2016-09-14 20:08:57.920 Info] REPO FW "Sensebender Micro" loaded. t=100, v=1, blocks=1344, crc=0x3482
[2016-09-14 20:08:57.940 Info] REPO FW "Sensebender Blink" loaded. t=110, v=1, blocks=768, crc=0x1314
[2016-09-14 20:08:57.940 Info] REPO FW repository loaded. Items=4
[2016-09-14 20:08:57.941 Info] STARTUP Initialize message types
[2016-09-14 20:08:57.941 Info] NODE New node discovered, node id=0
[2016-09-14 20:08:57.941 Info] NODE New node discovered, node id=255
[2016-09-14 20:09:05.336 Info] INFO Flushing FIFO
[2016-09-14 20:09:05.336 Info] INFO Connected to COM16
[2016-09-14 20:09:07.175 Info] UPDATE 281474976713970
[2016-09-14 20:09:07.221 Info] CHILD New child discovered, node id=0, child id=internal
[2016-09-14 20:09:07.222 Info] RX 0;255;3;0;9;Starting gateway (RNNGA-, 2.0.0)
[2016-09-14 20:09:07.222 Info] RX 0;255;3;0;9;TSM:INIT
[2016-09-14 20:09:07.223 Info] RX 0;255;3;0;9;TSM:RADIO:OK
[2016-09-14 20:09:07.223 Info] RX 0;255;3;0;9;TSM:GW MODE
[2016-09-14 20:09:07.224 Info] RX 0;255;3;0;9;TSM:READY
[2016-09-14 20:09:07.224 Info] RX 0;255;3;0;14;Gateway startup complete.
[2016-09-14 20:09:07.224 Info] DEBUG Update child id=255, type=ARDUINO_RELAY
[2016-09-14 20:09:07.225 Info] RX 0;255;0;0;18;2.0.0
[2016-09-14 20:09:07.225 Info] RX 0;255;3;0;9;No registration required
[2016-09-14 20:09:07.226 Info] RX 0;255;3;0;9;Init complete, id=0, parent=0, distance=0, registration=1
[2016-09-14 20:09:07.226 Info] RX 0;255;3;0;9;TSP:MSG:READ 0-0-0 s=255,c=3,t=14,pt=0,l=25,sg=0:Gateway startup complete.
[2016-09-14 20:09:07.227 Info] RX 0;255;3;0;9;!TSP:MSG:PVER mismatch
[2016-09-14 20:09:07.227 Info] RX 0;255;3;0;9;TSP:MSG:READ 0-0-0 s=255,c=3,t=14,pt=0,l=25,sg=0:Gateway startup complete.
[2016-09-14 20:09:07.227 Info] RX 0;255;3;0;9;!TSP:MSG:PVER mismatch
[2016-09-14 20:09:07.228 Info] RX 0;255;3;0;9;TSP:MSG:READ 0-0-0 s=255,c=3,t=14,pt=0,l=25,sg=0:Gateway startup complete.
[2016-09-14 20:09:07.229 Info] RX 0;255;3;0;9;!TSP:MSG:PVER mismatch
...
i tak dalej - ktos moze cos dopomoze?
Zresetuj odbiornik i zobacz w logach Domoticz, co się pokazuje, jak dalej nie wykryje, to próbuj z innym kodem programu do bramki lub odbiornika. Są na stronie MySensors.
UsuńWitam :)
Usuńpodejrzewałem Andurino Leonardo - i słusznie :)
Przyszły Arduino nano, podłączyłem, wgrałem przykładowy szkic "noda", Radio (NRF24L01) podłączone przez osobne zasilanie i elektrolit 47uF wstało :) W domoticzu widoczne - reszta poszła gładko.
Myślę, że to "nodów" w przyszłości będę stosował Arduino Pro mini 5v, radio NRF24L01 zasilane przez przetwornicę np. DC/DC MP230. Planuje również dodać moduł pomiaru natężenia prądu ACS712.
dzięki za zainteresowanie tematem i świetne posty BTW :)
pozdr.
witam. jestem pod wrazeniem calego projektu i mialem nadzieje wykorzystac wskazowki to analizy pogody na dzialce lecz u mnie mysensors i domoticz nie dziala... log domoticz konczy sie na:
OdpowiedzUsuń2016-09-28 19:51:42.890 MySensors: Using serial port: /dev/ttyUSB0
2016-09-28 19:51:44.379 MySensors: Gateway Ready...
2016-09-28 19:51:44.458 MySensors: Gateway Version: 2.0.0
serial monitor (Arduino Uno z DHT11) pokazuje
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 1-1-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
co robie nie tak? Dzieki za pomoc...
Czyli nie wykrywa Ci odbiornika z DHT11. A dałeś kondensator 4,7 uF do modułów NRF24L01?
UsuńDziala:)) Kondensator (1 uF) po stronie z DHT zle byl zamocowany.
OdpowiedzUsuńDzieki za pomoc... Rozwijam wiec moja stacje dalej... Czy probowales moze z DIY czujnikiem predkosci, kierunku wiatru, deszczu i domoticz?
Nie interesowałem się tym, nie mam za bardzo wolnego czasu, a wiele rzeczy chciałbym jeszcze zrobić.
UsuńWitam,
OdpowiedzUsuńMa ktos może pomysł dlaczego nie chce się skompilować Humidity?
Nie chce się skompilować, więc wgrać też nie można :(
sketch_oct09e:73: error: no matching function for call to 'DHT::DHT()'
DHT dht;
^
C:\Users\admin\AppData\Local\Temp\untitled1488161327.tmp\sketch_oct09e\sketch_oct09e.ino:73:5: note: candidates are:
In file included from C:\Users\admin\AppData\Local\Temp\untitled1488161327.tmp\sketch_oct09e\sketch_oct09e.ino:44:0:
C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master/DHT.h:40:4: note: DHT::DHT(uint8_t, uint8_t, uint8_t)
DHT(uint8_t pin, uint8_t type, uint8_t count=6);
^
C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master/DHT.h:40:4: note: candidate expects 3 arguments, 0 provided
C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master/DHT.h:38:7: note: constexpr DHT::DHT(const DHT&)
class DHT {
^
C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master/DHT.h:38:7: note: candidate expects 1 argument, 0 provided
C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master/DHT.h:38:7: note: constexpr DHT::DHT(DHT&&)
C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master/DHT.h:38:7: note: candidate expects 1 argument, 0 provided
C:\Users\admin\AppData\Local\Temp\untitled1488161327.tmp\sketch_oct09e\sketch_oct09e.ino: In function 'void setup()':
sketch_oct09e:91: error: 'class DHT' has no member named 'setup'
dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor
^
sketch_oct09e:92: error: 'class DHT' has no member named 'getMinimumSamplingPeriod'
if (UPDATE_INTERVAL <= dht.getMinimumSamplingPeriod()) {
^
sketch_oct09e:97: error: 'class DHT' has no member named 'getMinimumSamplingPeriod'
sleep(dht.getMinimumSamplingPeriod());
^
C:\Users\admin\AppData\Local\Temp\untitled1488161327.tmp\sketch_oct09e\sketch_oct09e.ino: In function 'void loop()':
sketch_oct09e:104: error: 'class DHT' has no member named 'readSensor'
dht.readSensor(true);
^
sketch_oct09e:107: error: 'class DHT' has no member named 'getTemperature'
float temperature = dht.getTemperature();
^
sketch_oct09e:114: error: 'class DHT' has no member named 'toFahrenheit'
temperature = dht.toFahrenheit(temperature);
^
sketch_oct09e:131: error: 'class DHT' has no member named 'getHumidity'
float humidity = dht.getHumidity();
^
exit status 1
no matching function for call to 'DHT::DHT()'
Masz coś nie tak z bibloteką DHT, zainstaluj ją poprawnie.
UsuńNa końcu dodałem opis jak poparawnie zainstalować nowe i stare biblioteki MySensors, ponieważ pojawiają się problemy z kompilacją.
OdpowiedzUsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuńWitam czy w ten sposób mogę dodać moje arduino co steruje roletami podnoszenie i opuszczanie
OdpowiedzUsuńZalezy jakie masz rolety?
OdpowiedzUsuńZalezy jakie masz rolety?
OdpowiedzUsuńRolety są zwykłe przerobie dodane są napędy które arduino nano steruje nimi
OdpowiedzUsuńwidzę że nie uzyskam tu odpowiedzi no szkoda
UsuńCzy do działania tego rozwiązania potrzebna jest jakaś sieć wifi, czy oba arduino "gadają" ze sobą bezpośrednio?
OdpowiedzUsuńModuły NRF komunikują się bezpośrednio ze sobą.
OdpowiedzUsuńSuper, dzięki za szybką odpowiedź. Jestem na etapie "wymyślania" co mi jest potrzebne, a potem przejdę do samej budowy systemu czujników w domu. Chodzi mi o pomiar temperatury i wilgotności w każdym z pomieszczeń w mieszkaniu (3 pokoje, korytarz, łazienka, kuchnia, schowek) a więc pomiary będę w 7 punktach. Do części z nich mam doprowadzoną skrętkę i chcę ją wykorzystać. Ale np. w kuchni czy łazience nie mam więc muszę wykorzystać coś bezprzewodowego. Natomiast nie chcę, aby czujniki wykorzystywały moją sieć wifi, bo ją wyłączam na noc.
OdpowiedzUsuńW tej chwili do testów mam jedno Arduino UNO i RPi2. Obecnie na czas testów mam podłączone 3 x DS18B20 bezpośrednio do RPi2 z domoticzem i wszystko działa. A czy tak samo mogę bezpośrednio do RPi2 podłączyć np. DHT11, czy lepiej do tego wykorzystać Arduino?
Czy Arduino wpięte przez USB do RPi2 robi tylko za gateway, czy mogę do niego również przewodowo podpiąć np. DS18B20 czy DHT11?
Ja osobiście mam zrobioną bramkę ethernet https://www.mysensors.org/build/ethernet_gateway (pod ręką była mega2560 z modułem wiznet W5100 w postaci nakładki). Bezpośrednio do Maliny mam podpięty nieprodukowany już konwerter USB-1Wire http://www.meraprojekt.com.pl/files/mp00200.pdf do tego kilka czujników DS18B20. Kolejny czujnik podpięty do arduino z modułem NRF, tak samo kilka przekaźników. Na innym jeszcze barometr i na kolejnym czujnik Sensiriona SHT11 do którego musiałem trochę kodu dopisać. Pozostałe elementy praktycznie zaprogramowane kodem z przykładów.
UsuńZ samą bramką ethernet miałem kilka dni walki ale w tym wypadku wina leżała po stronie menedżera płytek Arduino - działa wersja 1.6.11 w nowszych nie chodziło ale najnowszych nie sprawdzałem bo zdążyły wyjść po mojej "walce" ;)
Co do podpinania czujników bezpośrednio pod moduł bramki to z opisów wynika że można to zrobić.
Tak samo bezpośrednie podpięcie modułu NRF pod Malinę jest możliwe, nie potrzeba wtedy bramki na Arduino - przetestowane przez kumpla, choć wiem że też nie bez problemów. Aktualnie nie pamiętam dokładnie w czym był problem.
Tak samo można podłączyć czujniki pod gpio maliny.
Ogólnie polecam wczytać się w biblioteki mysensors ;) mi kilkudniowa analiza bardzo rozświetliła pogląd na to jak to wszystko działa;) Choć wiem że nie jest to łatwe, tym bardziej że jest to bardzo rozbudowane oprogramowanie.
Chwilowo mam mały zastój, trochę chęci i czasu brak ale w głowie mam tyle pomysłów że nie wiadomo od czego zacząć.
Ps. nie testowałem połączeń przewodowych po RS485, może ktoś się wypowie jak wygląda zrobienie bramki RS485 sprzęgniętej z modułem radiowym, tak żeby informacje pojawiające się w segmencie "RS" były przekazywane do części radiowej?
Powrócę do tematu i ponownie zapytam, tym razem już nieco więcej udało mi się uruchomić, ale zatrzymałem się na pewnym etapie.
OdpowiedzUsuńDo RPi2 po USB mam wpięte Arduino z nRF24L01 jako SerialGateway. Mam też drugie arduino z nRF24L01 i tam wpięty DHT11, czyli układ opisany w powyższym artykule i wszystko działa.
Chciałem pójść krok dalej, i do arduino poza DHT11 podpiąć też DS18B20 (a najlepiej kilka po 1-Wire) i również przesyłać te dane do bramki a nastepnie do Domoticza który stoi na RPi.
Jak osiągnąć takie coś? Próbowałem grzebać w kodzie, udaje mi się odczytywać temperaturę z DS18B20 w monitorze portu szeregowe, ale jak to wysłać do drugiego arduino a tym samym do domoticza? Ktoś pomoże?
Na stronie MySensors masz kod do wgrania do odbiornika z DS18B20.
Usuńhttps://www.mysensors.org/build/temp
UsuńDzięki, o to własnie chodziło. Co prawda jeszcze wczoraj udało mi się podłączyć naraz DHT11 i DS18B20 i wysłać dane do domoticza, ale problem pojawił się z kodem w momencie gdy chciałem uruchomić kilka DS18B20. Teraz już wszystko powinno zadziałać, po południu przetestuję.
UsuńMożesz podzielić się kodem połączonych DHT11 DS18b20
UsuńWpadłem na tego bloga przypadkowo. SUPER robota. Dziękuje.
OdpowiedzUsuńMam mały problem: mam RPI3 i Andruino Mega. W żaden sposób RPI nie wykrywa mi Arduino po USB. Coś pozmieniali czy czegoś nie wiem? W/g tego projektu na Andruino wszystko działa jak nalezy, ale chcialem to wpiąc do RPI3 (bramkę mam na nrf24l01). Jeśli można - proszę o pomoc. Będę wdzięczny za każdą podpowiedź.
Ogólnie nie działają Arduino na sterowniku CH340.
UsuńPowinno działać Mega 2560 R3 na ATmega16U2.
UsuńAle ja mam własnie 2560 R3
OdpowiedzUsuńNapiszę tutaj, może ktoś pomoże.
OdpowiedzUsuńJak zmodyfikować ten kod: https://www.mysensors.org/build/binary
na 2 czujniki? Jeden jak w kodzie działa extra.
Pytanie brzmi: jak dodać drugi? Np. na pinie 2
Pozdrawiam
witam. można zaktualizować linki.
OdpowiedzUsuńfolderu Moje Dokumenty -> Arduino -> libraries wypakować i skopiować ten zestaw plików błąd 404
Nowe i stare biblioteki są na stronie MySensors https://www.mysensors.org/download
UsuńProponuje pobrać z Githuba
Witam. Po lekturze strony zastanawiam się czy bramka na arduino jest to w ogóle potrzebna. Jak rozumiem można wgrać soft do maliny podłączyć radio czy RS485 i powinno tak samo działać jak zewnętrzna bramka?
OdpowiedzUsuńhttps://www.mysensors.org/build/raspberry
OdpowiedzUsuńTak będzie działać tak samo, tylko mamy zajęte piny RPi i dodanie bramki z Arduino do Domoticz jest bardzo proste.
OdpowiedzUsuńRoman, a idąc dalej, skoro Bramkę z czujnikiem można połączyć przez RS485, to czy nie można zrobić tego przez SPI? Wojtek
UsuńWitam mam nadzieję że jeszcze odpowiadasz na pytania jestem nowy i mam mały problem. Mianowicie stworzyłem bramkę MySensors potem według twojego przykładu w drugim urządzeniu DHT22 i wszystko działa prawidłowo na Domoticzu. Teraz chciałem zrobić czujnik zewnętrzny w oparciu o Dallas DS18B20, nadmienię że czyjnik na przykładzie działa prawidłowo. Robię tak wgrywam na UNO SerialGetway a następnie kod:
OdpowiedzUsuń// Enable debug prints to serial monitor
//#define MY_DEBUG
// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
#include
#include
#include
#include
#define COMPARE_TEMP 1 // Send temperature only if changed? 1 = Yes 0 = No
#define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected
unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
DallasTemperature sensors(&oneWire); // Pass the oneWire reference to Dallas Temperature.
int numSensors=0;
bool receivedConfig = false;
bool metric = true;
// Initialize temperature message
MyMessage msg(0,V_TEMP);
void before()
{
// Startup up the OneWire library
sensors.begin();
}
void setup()
{
// requestTemperatures() will not block current thread
sensors.setWaitForConversion(false);
}
void presentation() {
// Send the sketch version information to the gateway and Controller
sendSketchInfo("Temperature Sensor", "1.1");
// Fetch the number of attached temperature sensors
numSensors = sensors.getDeviceCount();
}
void loop()
{
// Fetch temperatures from Dallas sensors
sensors.requestTemperatures();
// query conversion time and sleep until conversion completed
int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
// sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater)
sleep(conversionTime);
// Only send data if temperature has changed and no error
#if COMPARE_TEMP == 1
#else
if (temperature != -127.00 && temperature != 85.00) {
#endif
// Send in the new temperature
send(msg.setSensor(i).set(temperature,1));
// Save new temperatures for next compare
lastTemperature[i]=temperature;
}
}
sleep(SLEEP_TIME);
}
Wszystko się prawidłowo kompiluje natomiast serial monitor milczy lub pokazuje MY SENSORSO 2.2.0 i tyle. Pewnie robię jakiś głupi błąd tylko że nie wiem gdzie za pomoc był bym wdzięczny.