Raspberry Pi + barebone arduino + Domoticz czyli inteligentny dom dla każdego.

Raspberry Pi + barebone arduino + Domoticz czyli inteligentny dom dla każdego.

Raspberry Pi + barebone arduino + Domoticz czyli inteligentny dom dla każdego., 4.9 out of 5 based on 202 ratings

Witam wszystkich Majsterkowiczów!

Do napisania tego artykułu, który jest moim pierwszym na majsterkowo.pl, skłonił mnie temat obecnego konkursu czyli “Elektryka prąd nie tyka” – jako, że jest to jedna z moich ulubionych sentencji postanowiłem wziąć udział w tym konkursie i podzielić się z Wami moim projektem “inteligentnego domu”. Całość jest dość prosta do wykonania nawet przez początkujących elektroników hobbystów i jest nastawiona na tanie rozwiązania (największym kosztem jest Raspberry Pi, które możecie już posiadać lub ew. możecie zastąpić starym komputerem PC)

 

Słowo wstępne

Zdaję sobie również sprawę z tego, że część pomysłów, które zostaną użyte w tym artykule były już częściowo opisywane/poruszane na majsterkowie lub innych częściach internetu, ale myślę, że moja propozycja stanowi kompleksowe rozwiązanie uwzględniające wiele elementów i łączące je w jedną całość. Nie wymyślałem koła na nowo i bazuję w tym projekcie na dokonaniach innych ludzi (staram się linkować zawsze do źródeł). Moim zdaniem na tym opiera się postęp w dzisiejszym (i nie tylko) świecie i jest to dobre. Tyle słowem wstępu – czas na konkrety.

 

OSTRZEŻENIE – Mimo, że w tym projekcie nie będziemy pracować z wysokimi napięciami to ogólna ostrożność i zdrowy rozsądek są obowiązkowe. Projekt będzie wymagał lutowania tak więc ogólne obycie z elektroniką i jej zasadami jest zalecane.

 

Co to robi lub może robić?

Pojęcie “inteligentnego domu” jest bardzo szerokie i należałoby w tym miejscu określić co mój projekt ma do zaoferowania. Myślę, że prosta lista z wypisanymi funkcjami sprawdzi się tu najlepiej:

  • Zdalne włączanie/wyłączanie urządzeń  – manualne oraz programowalne
  • Odczyt i rejestrowanie zużycia energii w domu
  • Zdalny odczyt / rejestrowanie temperatury i wilgotności z różnych pomieszczeń w domu
  • Możliwość tworzenia scenariuszy dla naszego domu – np. jeśli temperatura w danym pokoju spadnie poniżej 18 stopni to włącz urządzenie X itd.
  • Centralny punkt wymiany danych w domu – aka dysk NAS – czyli możliwość udostępniania danych dla wszystkich urządzeń podłączonych do naszej sieci domowej + streaming muzyki, filmów itd.***
  • Sterowanie listwami RGB oświetlającymi pomieszczenia lub poszczególne punkty w domu ***
  • Bezprzewodowe sygnalizowanie konieczności podlewania kwiatków***

Oczywiście możliwości (i pomysłów) jest o wiele więcej, ale w związku z tym, że po pierwsze konkurs jest ograniczony czasowo a po drugie wpis byłby zdecydowanie za długi to ograniczyłem się do podstawowej funkcjonalności.

 

Jak to wszystko działa?

System składa się z kilku, dość prostych do wykonania, elementów (szczegółowy opis za chwilkę):

  • Sterownik oparty o Arduino, a właściwie “gołe” arduino
  • Przystawka do podłączenia cęgi Dietza do sterownika (część odpowiedzialna za odczyt zużycia energii)
  • Raspberry Pi + Domoticz – mózg naszego inteligentnego domu
  • Zdalne nody gromadzące dane typu temperatura, wilgotność itd, oparte o (bardzo!) tanie klony Arduino Pro Mini – koszt takiego Arduino to 7,5pln wraz z przesyłką z Chin (tak – nie ma się czego obawiać – paczki z Chin dochodzą :))
  • Zestaw gniazdek sieciowych sterowanych bezprzewodowo używające pasmo 433MHz

 

Etap pierwszy – Sterownik arduino

Dlaczego Arduino, a nie Raspberry Pi?

Raspberry Pi jest bardzo fajnym małym komputerkiem z systemem Linux, który dodatkowo posiada piny GPIO umożliwiające sterowanie wszelką elektroniką i początkowo był to mój plan aby użyć właśnie RPi jako sterownik. Jednak po testach okazało się, że użycie w tym celu Arduino jest znacznie lepszym rozwiązaniem. Wynikało to m.in. z faktu, że używam w tym projekcie taniego odbiornika 433MHz, którego jakość, delikatnie mówiąc, jest bardzo kiepska. Odbiornik ten generuje baaaardzo wiele szumów, które trafiały bezpośrednio do RPi znacząco obciążając i tak już obładowany procesor. Jednym z pomysłów na poradzenie sobie z szumami był filtr dolnoprzepustowy lub użycie mikropocka jako filtr i wysyłanie już czystego sygnału do RPi. Skoro już miałem używać mikroprocesora to postanowiłem ułatwić sobie życie (znacząco!) budując sterownik oparty o Arduino i wykorzystując jego zalety.

Sterownik – budowa

Do budowy sterownika potrzebne będą następujące elementy:

  • płytka uniwersalna lub płytka wytrawiona specjalnie na potrzeby projektu – ja w związku z brakiem narzędzi i odczynników zdecydowałem się na użycie płytki uniwersalnej. Tutaj mała uwaga – przy wyborze płytki sprawdźcie jakość wykonania samej płytki – ja użyłem taniej chińskiej płytki i w niektórych miejscach punkty lutownicze po prostu odpadały
  • mikroprocesor ATMega328(p) wraz z gniazdem DIN26 (podstawka)
  • kryształ (oscylator) 16MHz
  • 2x kondensator ceramiczny 22pF
  • 2x przycisk chwilowy
  • 1x przełącznik
  • 1x gniazdo 26pin – ja użyłem stare gniazdo od taśmy do dysków twardych – można np. wylutować ze starej płyty głównej
  • 2x konektor żeński – jeden 8pin i drugi 6pin – ja użyłem konektora z taśmy ATA (dyski twarde, cd) i pociąłem na odpowiednie kawałki
  • nadajniki odbiornik 433MHz
  • nadajniko-odbiornik nrf24l01+
  • dużo kabelków – np. odzyskanych z kabla sieciowego – skrętki – UTP 5

opcjonalnie:

  • gniazdo DC Jack lub inne gniazdo zasilania – ja użyłem gniazda z 2 śrubami
  • wyświetlacz LCD od Nokii 3310, 5110
  • regulator napięcia na 3.3V – można użyć regulatora wylutowanego ze starego napędu CD – AMS1117  lub diody Zenera 3v3… lub… 2 diod połączonych szeregowo (przy założeniu, że napięcie wejściowe wynosi 5V – z np. USB)

uff – myślę, że to wszystko :)

 

Schemat połączeniowy

Tutaj mała uwaga – musimy podjąć decyzję w jaki sposób zasilimy nasz układ. Ja wybrałem opcję zasilania układu sterownika bezpośrednio z portu USB Raspberry Pi. Jest to opcja bardzo wygodna jako iż sterownik jest i tak połączony z RPi poprzez port szeregowy. Nie polecam jednak zasilania sterownika z pinów GPIO – zdecydowanie lepiej i bezpieczniej jest użyć portu USB. Kolejna sprawa to napięcie na którym działa sam sterownik. Jako, że Raspberry Pi  na pinach GPIO używa poziomu napięć 3.3V oraz nadajniko-odbiornik nrf24l01+ również pracuje na 3.3V to musimy obniżyć napięcie wejściowe 5V do odpowiedniego poziomu. Dokonać tego możemy na kilka sposobów. Ja na początku wybrałem regulator AMS1117 wylutowany ze starego napędu CD jednak po testach pod obciążeniem okazało się, że regulator został najprawdopodobniej uszkodzony podczas demontażu/montażu i nie dostarczał wystarczająco stablinego napięcia więc musiałem na szybko wymyślić inny sposób na zasilenie układu. Jako, że nie posiadałem na stanie żadnej diody Zenera na 3.3V to postanowiłem zastosować 2 diody połączone szeregowo na linii +5V co obniżyło napięcie do ok 3.5V i dodatkowo zabezpieczyło układ przed odwrotną polaryzacją. Należy zwrócić uwagę na wartość prądu jaką nasza dioda wytrzyma – w moim przypadku były to popularne diody 1n4148 które wytrzymują 200mA stałego obciążenia czyli zdecydowanie ponad to co potrzebujemy do tego projektu. Zaznaczam jednak, że rozwiązanie to jest typowo “partyzanckie” i zdecydowanie lepiej jest użyć diody Zenera na 3.3V lub regulator z prawdziwego zdarzenia.

Wybaczcie kiepskiej jakości schemat ale była to moja pierwsza styczność z programem fritzing.

Schemat sterownika

 

Oprogramowanie sterownika

Na początek musimy pobrać i dodać niezbędne biblioteki do instalacji Arduino IDE.

Lista użytych bibliotek:

Poniżej znajduje się link do paczki ze spakowanymi wszystkimi niezbędnymi bibliotekami w wersjach, które użyłem w tym artykule.
https://www.dropbox.com/s/xaeoymegwiupxhu/biblioteki.zip

Wszystkie biblioteki należy pobrać i wgrać do katalogu Libraries w naszej instalacji Arduino IDE – domyślnie c:\Program Files\Arduino\Libraries

a następnie zrestartować aplikację Arduino IDE.

Po restarcie możecie przeprowadzić próbę kompilacji oprogramowania sterownika. Jeśli wszystko zakończyło się poprawnie to następnym krokiem będzie wgranie aplikacji do ATmegi. Można tego dokonać na wiele sposobów. Posiadacze standardowego Arduino UNO mogą wgrać aplikację do tego Arduino i następnie wyciągnąć układ ATmegi i włożyć do podstawki w sterowniku.

Można również (co polecam) wgrywać pliki HEX (pliki ze skompilowaną aplikacją) na ATmege (z wgranym bootloaderem Arduino) poprzez podłączone do sterownika Raspberry Pi – więcej o tym jak tego dokonać opiszę w dziale o Raspberry Pi.

Kodhttps://www.dropbox.com/s/u8kjw60ee603ddr/sterownik.zip

 Zdjęcia rzeczywiste układu.

Etap drugi – Przystawka do monitorowania zużycia energii

Do wykonania przystawki potrzebne są:

  • 2x rezystor 10kOhm
  • 1x rezystor 18Ohm dla zasilania 3.3V lub 35Ohm dla zasilania 5V
  • 1x kondensator 10uF
  • kawałek płytki uniwersalnej

opcjonalnie:

  • przełącznik do wyboru rezystora obciążającego – 18 lub 35 Ohm
  • gniazdo do podłączenia cęgi Dietza
  • piny do kabelków użytych do podłączenia przystawki do sterownika

Oprogramowanie do obsługi przystawki zostało “wbudowane” w oprogramowanie sterownika Arduino. Szczegóły kalibracji oraz

Schemat połączeniowy

źródło: http://openenergymonitor.org/emon/buildingblocks/how-to-build-an-arduino-energy-monitor-measuring-current-only

Przystawka

Zdjęcie

Przystawka

 

Etap trzeci – zdalne nody zbierające dane

Podstawą moich małych, bezprzewodowych czujników jest klon Arduino ProMini, które jak już wspomniałem wcześniej, zakupiłem na ebay’u za ok. 7.50pln/sztuka. Uważam, że jest to bardzo dobra cena i często koszt samych części użytych do budowy “gołego” arduino może być większy. Oprócz ProMini potrzebne będą jeszcze następujące elementy:

  • płytka uniwersalna
  • pojemnik na baterie – 3-4 baterie AA lub bateria 9V lub inne
  • nadajnik 433MHz lub nadajniko-odbiornik nrf24l01+ – możemy przygotować dwie różne wersje o czym za chwilę
  • czujnik temperatury i/lub wilgotności – ja akurat w użyłem czujnika temperatury Dallas DS18B20 ale można np. użyć DHT11 lub DHT22 itd.
  • elementy potrzebne do podłączenia naszego czujnika – w przypadku czujnika Dallas DS18B20 będzie to rezystor 4.7kOhm
  • piny żeńskie do podłączenia Arduino ProMini – dzięki temu będziemy mogli wyciągnąć arduino z płytki
  • kabelki
  • obudowa – można użyć gotowej obudowy kupionej w sklepie elektronicznym, użyć coś z odzysku lub wykonać obudowę samodzielnie

Jak wspomniałem wcześniej – możemy wykonać dwie wersje zdalnych czujników. W zaprezentowanej tutaj wersji użyłem nadajnika 433MHz, który dość dobrze sprawdza się jako nadajnik wysyłający dane periodycznie – czyli co np. 60 sekund. Minusem tego rozwiązania jest komunikacja jednokierunkowa czyli nasz zdalnych czujnik musi być skonfigurowany do wysyłania sygnału co jakiś czas. Dodatkowo nadajnik tego typu nie oczekuje potwierdzenia odebrania danych przez odbiornik a co za tym idzie nie wie czy transmisja się powiodła czy nie.

Rozwiązaniem tego problemu jest zastosowanie nadajniko-odbiorników nrf24l01+. Cena takiego elementu jest bardzo podobna do zestawu 433MHz a dzięki ich zastosowaniu zyskujemy komunikację dwukierunkowa – czyli możemy wysyłać komendy do naszych czujników, odbierać dane, itd. Jeśli temat będzie cieszył się powodzeniem na majsterkowo.pl to postaram się przygotować drugą część artykułu z taką właśnie wersją zdalnego czujnika.

Ważnym aspektem podczas projektowania zdalnego czujnika jest jego zużycie prądu. W związku z tym, że jest on zasilany bateryjnie to chcemy osiągnąć jak najniższy pobór prądu, żeby baterie starczyły na jak najdłużej. W przygotowanej przeze mnie wersji czujnika zużycie prądu wynosi około 0.2mA (tak – 200uA) w stanie uśpienia i ok 10-15mA w czasie pracy – czyli przez ok sekundę. W przypadku zastosowania 4 baterii AA daje to baaardzo długi czas pracy dlatego można rozważyć zastosowanie mniejszej pojemności baterii 9V lub nawet 2 baterii 3V od “zegarka”.

 

Schemat połączeniowy zdalnego czujnika

Oprogramowanie czujnika

Użyte biblioteki (znajdują się one już w paczce udostępnionej w sekcji o sterowniku)

Kod – https://www.dropbox.com/s/zvkw25sjovkvdk0/lowPowerNode.zip

 

 

Etap czwarty – zdalnie sterowane gniazdka sieciowe

Tutaj sprawa jest prosta – większość tanich zestawów dostępnych na rynku używa tego samego protokołu. Wykorzystując ten fakt ludzie zgromadzeni wokół Arduino przygotowali ogólnodostępne biblioteki dzięki którym możemy sterować tymi gniazdkami za pomocą nadajnika 433MHz – na to musicie zwrócić uwagę podczas zakupu – aby pasmo było właśnie 433MHz.

Poniżej przedstawiam zdjęcia mojego zestawu – 5 gniazdek + pilot

Zestaw bezprzewodowych gniazdek

 

Etap piąty – Raspberry Pi

Ta część jest najbardziej rozbudowana i szczegółowy opis zająłby za dużo miejsca w i tak już przydługawym artykule, dlatego postaram się skupić tylko na najważniejszych aspektach przygotowania Raspberry do współpracy ze sterownikiem Arduino oraz podstawową konfigurację Domoticz – mózgu naszego inteligentnego domu oraz usług NAS.

 

Raspberry Pi -> Sterownik Arduino

Jedną z ważnych decyzji, które musiałem podjąć podczas projektowania całego systemu była kwestia komunikacji RPi z Arduino. Po przejrzeniu kilku możliwych rozwiązań zdecydowałem się użyć portu szeregowego UART.

Użycie portu szeregowego daje nam kilka ciekawych możliwości – np. możemy dzięki niemu aktualizować firmware (oprogramowanie) naszego sterownika bez rozłączania całości, podłączania zewnętrznych programatorów lub wyciągania ATmegi z podstawki. Warto tutaj zwrócić uwagę na użycie pinu 16 GPIO (licząc fizyczne piny) do resetowania ATmegi w odpowiednim momencie podczas wgrywania nowego pliku hex (skompilowane oprogramowanie). Wiem, że może to brzmieć jak “czarna magia” dla ludzi nie wtajemniczonych w programowanie układów AVR ale opiszę to dokładnie w dalszej części artykułu tak więc nie ma czego się obawiać :)

Dodatkową zaletą wykorzystania portu szeregowego jest to, że nie potrzebne nam są żadne dodatkowe elementy – RPi posiada wyprowadzenia portu szeregowego na złączu GPIO a ATmega z wgranym bootloaderem Arduino obsługuje port szeregowy na pinach 2 i 3.

 

Podłączenie RPi do Arduino

Do fizycznego podłączenia RPi do sterownika użyłem gotowej taśmy 26-żyłowej ale można również użyć taśmy z odzysku – np. taśma ATA którą odpowiednio przytniemy oraz kawałka kabla USB do zasilania sterownika bezpośrednio z RPi.

TUTAJ UWAGA – zwróćcie szczególną uwagę na kierunek podłączenia taśmy zarówno w złączu RPi jak i w sterowniku, żeby nie podłączyć na odwrót! Druga sprawa to obciążenie prądowe, które wytrzyma nasz RPi – w związku z tym, że sterownik nie powinien podczas pracy pobierać więcej niż 100mA to użycie zasilania z portu USB RPi powinno być bezpieczne – ja zasilam tak swój układ i całość działa bardzo stabilnie.

Jeśli wykonaliście wszystko poprawnie (sprawdzajcie zawsze wszystkie połączenia minimum 2 razy!) i zdecydowaliście się na użycie wyświetlacza LCD to powinniście zobaczyć ekran startowy i następnie ekran z temperaturami – na razie tylko temperatura i wilgotność otoczenia sterownika. Dodatkowo jeśli macie już uruchomiony zdalny czujnik temperatury powinien on po jakimś czasie przesłać temperaturę do sterownika i powinna ona pokazać się na wyświetlaczu.

rpi-duino

 

Część sprzętową mamy już za sobą! :)

Teraz czas na oprogramowanie.

 

Oprogramowanie RPi

Zakładam, że jeśli posiadacie RPi to macie już zainstalowany na nim system operacyjny – jaka to będzie wersja to nie powinno mieć znaczenia jednak ja skupię sie na Raspbianie. Jeśli jednak nie posiadacie Raspberry Pi i chcecie zacząć swoją przygodę to polecam użycie instalatora NOOBs. Używając go instalacja systemu Linux jest prostsza od instalacji Windowsa ;)

Programowanie sterownika z RPi

W sekcji poświęconej sterownikowi napisałem o możliwości programowania/wgrywania aplikacji sterownika poprzez RPi. Do tego celu potrzebujemy aplikację o nazwie “avrdude”.

Link do aplikacji w wersji na Raspberry: https://www.dropbox.com/s/3tpim960na7o7lj/avrdude_5.10-4_armhf.deb

Aplikację standardowo pobieramy, i instalujemy w następujący sposób:

Po zainstalowaniu avrdude jesteśmy gotowi do wgrywania aplikacji na ATmege. Jednak aby cały proces był jeszcze bardziej bezbolesny i automatyczny musimy nieco zmodyfikować naszą instalację avrdude.

Standardowo avrdude nie wykorzystuje tzw. opcji autoreset’u podczas wgrywania aplikacji na ATmege co powoduje, że musimy ręcznie naciskać przycisk reset w odpowiednim momencie. Po dojściu do wprawy nie jest to jakoś mocno uciążliwe ale jeśli planujemy postawić sterownik wraz z RPi w dalszej odległości od komputera to wtedy fizyczne naciśnięcie przycisku reset przy każdej próbie wgrania nowej wersji aplikacji byłoby niemożliwe. Dlatego zastosujemy tzw. wrapper na aplikację avrdude która wykona autoreset za nas.

Pobieramy paczkę z wrapperem z github’a: https://github.com/deanmao/avrdude-rpi

następnie rozpakowujemy ją i wgrywamy do /usr/bin

Następnie edytujemy plik /usr/bin/autoreset i ustawiamy zmienna PIN na pin = 16.

Od teraz podczas wgrywania aplikacji na sterownik avrdude wykona autoreset w odpowiednim momencie i wgra kod do sterownika.
Komenda którą używam do wgrywania nowego oprogramowania:

Należy zaznaczyć tutaj, że przed wgrywaniem nowej wersji oprogramowania wyłączyć należy serwer node.js, żeby odblokować dostęp do portu szeregowego /dev/ttyAMA0

Moje pliki HEX są do pobrania tutaj: https://www.dropbox.com/s/ea7zb3gu0s396kh/plikiHEX.zip

 

Domoticz – http://www.domoticz.com/

Domoticz jest to darmowy system zarządzania inteligentnym domem dostępnym na różne platformy w tym na RPi. Jest to potężna aplikacja dająca nam szerokie pole do popisu w kwestii konfiguracji czy wspieranego sprzętu. Jedynym minusem jest to, że w przypadku gdy sami budujemy swoje urządzenia to nie są one najczęściej zgodne z żadnym z komercyjnych protokołów i tak też jest w przypadku tego projektu. Jednak jak zawsze są metody na zhackowanie systemu :) dlatego też w tym projekcie używam Domoticz + skrypt napisany w node.js który jest pomostem pomiędzy Domoticz i sterownikiem Arduino. Rozwiązanie to daje nam dużą elastyczność i kontrole nad tym co konkretnie chcemy osiągnąć itd. A więc do rzeczy – jak to wszystko zainstalować?

Chciałem opisać tutaj wszystko po polsku ale jak zobaczyłem ile zajmuje już ten artykuł to myślę, że najlepiej będzie jeśli podam tutaj link do strony Wiki aplikacji Domoticz – jest tam wszystko opisane krok po kroku i nawet ludzie nie znający angielskiego nie powinni  mieć problemu z rozszyfrowaniem o co chodzi. Jeśli będziecie jednak chcieli abym opisał to po polsku szczegółowo to dajcie znać w komentarzach i przygotuję część drugą rozszerzoną ;)

Link do instrukcji Domoticz: http://www.domoticz.com/wiki/Installing_and_running_Domoticz_on_a_Raspberry_PI

Gdy mamy już zainstalowany Domoticz czas na instalację node.js i konfigurację skryptu.

Na początek zalecam pobranie przygotowanej przeze mnie paczki zawierającej skrypt, instalacje node.js, moduły potrzebne do skryptu (serial, itd). Będzie to najwygodniejsze bo node.js występuje w bardzo wielu różnych wersjach na RPi i często występują problemy ze zgodnością poszczególnych modułów – np. ja miałem problem z uruchomieniem modułu serial.

1) Pobieramy paczkę

2) rozpakowujemy paczkę

3) instalujemy, a właściwie kopiujemy cały katalog node (znajdujący się w katalogu homeautomation) do katalogu docelowego /opt – w tym miejscu upewnijcie się, że nie macie node.js zainstalowanego w systemie – jeśli macie i nie używacie go do czegoś szczególnego to odinstalujcie

Jeśli nie wiecie jak przekopiować dane w systemie linux to polecam użyć programu “mc” – jest to odpowiednik starego dobrego Norton Commandera i znacznie ułatwia pracę z plikami

4) dodajemy instalację node.js do ścieżki (path) systemowej oraz odświeżamy sesję

5) testujemy instalacje node.js

Jeśli widzicie coś takiego:

to znaczy, że poprawnie zainstalowaliście node.js. Gratulacje :)

 

Etap szósty – Uruchomienie systemu

Jeśli macie już wszystko zainstalowane i podłączone zgodnie z wcześniejszym opisem to jesteście gotowi do pierwszego uruchomienia systemu.

1) przechodzimy do katalogu ze skryptem serwera node.js

2) uruchamiamy serwer (nie ‘demonizujemy’ procesu tylko zostawiamy go aktywny w  konsoli)

W tym momencie powinniście widzieć, że serwer uruchomił się i otworzył port szeregowy – połączenie ze sterownikiem Arduino.

Jeśli tak się stało to jesteśmy gotowi do sprawdzenia poprawności działania systemu, a właściwie połączenia pomiędzy RPi a Arduino.

Najłatwiej dokonać tego używając skryptu testującego o nazwie “rpiduinotest”:

Po uruchomieniu skryptu powinniśmy zobaczyć ustawioną temperaturę na wyświetlaczu LCD sterownika (o ile takowy mamy). Zabijamy proces naciskając CTRL+C.

Możemy teraz przekopiować plik uruchamiający homeserver do katalogu /etc/init.d (zakładam, że wciąż znajdujemy się w katalogu w którym rozpakowaliśmy paczkę z plikami) oraz skonfigurować uruchamianie sterownika przy starcie RPi:

Po uruchomieniu serwera node.js należy przejść do panelu www Domoticz i dodać nasze urządzenia. W tym celu należy wykonać następujące kroki:

Dla zdalnie sterowanych gniazdek:

1) otwórz przeglądarkę internetową i otwórz adres http://ip_twojego_rpi:9090/

Dashboard

2) po załadowaniu strony głównej Domoticz kliknij przycisk “Setup” a następnie Hardware

Menu

3) na stronie Hardware pod tabelka znajduję się pole do wybrania typu i wpisania nazwy urządzenia – wpisz np. RF Control i wybierz typ “RFXCOM – RFXLAN Transceiver 433.92 MHz with LAN interface” a następnie kliknij przycisk Add. Po dodaniu przycisku trafi on do tabelki na gorze.

Hardware

4) Kliknij “Switches” w menu a następnie “Manual/Light Switch”. W formularzu podaj nazwę np. “Lampka” oraz zaznacz typ Hardware jako RF Control. Switch type zostaw na On/Off. Reszta ustawień nie ma dla nas znaczenia. Na koniec kliknij “Add Device” i przełącznik powinien zostać dodany do listy i wyświetlać się na stronie.

Lampka - switch

5) w kolejnym kroku kliknij przycisk “Edit” przy nowododanym przycisku. Otworzy się nowe okno z polami “On Action” i “Off Action”. Należy je wypełnić używając adresu naszego serwera node.js. Przykład dla gniazdka numer 4:

On: http://192.168.1.6:8088/?cmd=switch4on

Off: http://192.168.1.6:8088/?cmd=switch4off

Edycja switcha

6) kliknij przycisk “Save”

7) jeśli wszystko przebiegło poprawnie to w tym momencie możesz kliknąć ikonkę żarówki i gniazdko numer 4 powinno się włączyć. Gratulacje!

Powyższe kroki powtórz dla wszystkich gniazdek.

 

Dla czujników temperatury:

1) otwórz przeglądarkę internetową i otwórz adres http://ip_twojego_rpi:9090/

2) po załadowaniu strony głównej Domoticz kliknij przycisk “Setup” a następnie Hardware

3) na stronie Hardware pod tabelka znajduję się pole do wybrania typu i wpisania nazwy urządzenia – wpisz np. Temperatura wybierz typ “Dummy (Does nothing, use for virtual switches only)” a następnie kliknij przycisk Add. Po dodaniu urządzenie trafi on do tabelki na gorze.

4) Kliknij przycisk “Create Virtual Sensors” znajdujący się przy nowododanym urządzeniu. Następnie wybierz typ “Temperature” i kliknij “OK”

Virtual Switch

5) Kliknij przycisk “Setup” w menu a następnie “Devices”. Na liście urządzeń odnajdź wpis dotyczący nowododanego sensoru temperatury i zapisz jego IDX czyli identyfikator. Następnie kliknij zieloną ikonkę strzałki w prawo znajdującą się po prawej stronie ekranu (jak najedziecie na nią myszką to wyświetli się chmurka – Add Device). Po tym zabiegu nasz czujnik powinien pojawić się na stronie “Temperature”.

Add device

6) Ok – mamy dodany sensor i teraz trzeba zmodyfikować skrypt naszego serwera i ustawić prawidłowe IDX sensoru temperatury. (np. SYPIALNIA = 18). Następnie zrestartuj serwer node.js.

7) jeśli wszystko przebiegło poprawnie to w tym momencie możesz sprawdzić poprawność konfiguracji wywołując polecenie aktualizujące temperaturę.

8) kliknij zakładkę “Temperature” w manu panelu Domoticz. Temperatura sypialni powinna być zaktualizowana. Gratulacje!

 

Dla miernika zużycia energii

Procedura wygląda bardzo podobnie do tych powyżej – dummy sensor. Jedynie należy zwrócić uwagę na wybór Electricity zamiast Temperature przy tworzeniu virtual sensoru.

 

Hura! To już jest koniec! – spokojnie – nie tak szybko ;)

Jeśli wszystko udało Wam się skonfigurować poprawnie powinniście być w stanie włączać i wyłączać gniazdka, temperatura powinna aktualizować się w panelu Domoticz itd. Jednak aby wykorzystać możliwości drzemiące w naszym systemie trzeba by dodać trochę “inteligencji” do całości. Aby tego dokonać stworzymy scenariusze postępowania – jeśli -> to. if -> then oraz opcję Timer znajdujące się przy przełącznikach w panelu Domoticz.

Opcja Timer czyli włączanie/wyłączanie urządzenia o zadanych porach

1) Kliknij zakładkę “Switches”

2) Wybierz które urządzenie chcesz włączać/wyłączać o zadanej porze i kliknij przycisk “Timers”

3) W nowym oknie wypełnij pola kiedy chcesz aby wykonywała się dana komenda i kliknij przycisk Add.

Timer

Opcja Events czyli zdarzenia – schematy postępowań jeśli->to (if -> then)

1) Kliknij zakładkę “Setup”, następnie “More options” i później “Events”

2) z menu po lewej stronie możesz wybierać elementy logiczne typu “if”, “if, else”, elementy dotyczące czasu, urządzeń itd. Składasz z tego schemat postępowania np. jeśli temperatura w sypialni spadnie poniżej 17 stopni to włącz gniazdko numer 5.

3) Na koniec wypełnij pole “Event name”, zaznacz “ptaszka” przy “Event active” i kliknij przycisk Save. Twój event powinien znaleźć się na liście “Saved events”

Events

 

Zdaję sobie sprawę z tego, że opis konfiguracji Domoticz nie jest zbyt dokładny, ale polecam gorąco zapoznanie się z ich Wiki oraz manualem. Wszystko jest tam dokładnie opisane a tutaj zajęło by to zdecydowanie za dużo miejsca.

 

Na koniec dodamy skrypty aktualizujące temperatury oraz zużycie energii do crontab’a (zaplanowane zadania znane z Windowsów)

1) uruchom edytor crontab’a

2) dodaj skrypty które chcesz żeby się wykonywały co minutę – np. dla temperatury w sypialni:

3) zapisz zmiany i wyjdź z edytora crontab’a wciskając kombinacje klawiszy: Ctrl+x a następnie zgadzając się na zapisanie zmian “Y”

 

Słowo końcowe*** i podsumowanie

Na początku artykułu w części opisującej możliwości systemu napisałem o opcji stworzenia domowego punktu wymiany danych dla wszystkich urządzeń podpiętych do sieci. Jako, że artykuł ten i tak jest już bardzo długi to postanowiłem pominąć szczegółowy opis jak skonfigurować RPi do bycia serwerem multimediów i danych zwłaszcza, że inni już przygotowali podobne artykuły nawet na majsterkowo.pl -> przykładowy link: https://majsterkowo.pl/raspberry-pi-serwer-samba-mpd-dac/

Polecam zapoznanie się z tym artykułem – dzięki niemu będziecie wiedzieć jak skonfigurować RPi wraz z sambą (wymiana danych) oraz jak sterować odtwarzaniem muzyki z tabletu.

Kolejnymi gwiazdkami (***) zostały objęte funkcje sygnalizowania konieczności podlania kwiatków oraz sterowanie oświetleniem za pomocą listw LED RGB. Niestety nie bylem w stanie dodać tych funkcjonalności w tej wersji systemu. Jednak do budowy tych elementów użyję dokładnie tego samego układu co do bezprzewodowych czujników tylko zamiast czujnika temperatury zostanie użyty czujnik rezystancyjny do badania wilgotności gleby itd.

Jeśli spodoba Wam się mój artykuł i będziecie chcieli więcej to postaram się przygotować szczegółowy opis konfiguracji mojego RPi  jako prosty serwer UPnP udostępniający multimedia dla komputerów, smartfonów i tabletów, itd. oraz opis budowy i konfiguracji zdalnego czujnika konieczności podlania kwiatów.

Mam nadzieję, że opisy przygotowane przeze mnie są wystarczająco czytelne i nie będziecie mieli problemu z odtworzeniem tego wszystkiego u siebie w domu – jeśli jednak napotkacie jakieś problemy to piszcie śmiało w komentarzach a postaram się pomóc.

W związku z tym, że artykuł ten powstał głównie dzięki inspiracji hasłem konkursowym i mojej chęci udziału w nim będe bardzo wdzięczny jeśli pomożecie mi i zagłosujecie na plus abym zdążył wyjśc z poczekalni przed końcem miesiąca :) z góry dzięki!

PS: Zamawianie tanich części

Jeśli zastanawiacie się skąd zamawiać tanie części elektroniczne to polecam ebay i wyszukiwanie produktów z Chin. Osobiście zamówiłem już baaardzo wiele paczek i wszystkie dotarły bez problemu. Oczywiście należy liczyć się z długim czasem dostawy (średnio ok 2 tygodni ale czasem nawet 3-4) natomiast ceny rekompensują nam to z nawiązką. Warto też zamawiać więcej sztuk np. 10 danej rzeczy bo ceny miedzy 1-2 sztukami a 10 często są bardzo małe. Gdybyście mieli jakieś pytania odnośnie tego sposobu zamawiania części to znów – piszcie w komentarzach a postaram się odpowiedzieć :)

 

Pozdrawiam serdecznie wszystkich którzy dotrwali do końca!

GD Star Rating
Ładowanie...

Podobne posty

Lokalizator GPS GSM

Lokalizator GPS GSM

Kilka miesięcy temu narodził się w mojej głowie pomysł aby zrobić urządzenie lokalizujące które mogę…

82 komentarzy do “Raspberry Pi + barebone arduino + Domoticz czyli inteligentny dom dla każdego.

  • Opisz jeszcze proszę (zdjęcia chętnie widziane) w jaki sposób podłaczyłeś cęgi Dietza. I gdzie – pomiędzy licznikiem pradu a korkami? Musiałeś w takim razie w jakiś sposób dobrać się do głównego przewodu zasilajacego mieszkanie – skuwałeś ścianę?

    Odpowiedz
    • Podłączenie cęgi nie było w moim przypadku trudne ze względu na to, że główny kabel zasilający jest dość łatwo dostępny tak więc mogłem zapiąć klamrę na tym kablu bez kłopotu. Mój licznik jest elektroniczny, dwu-taryfowy. Nie jestem pewien jak wygląda sytuacja w przypadku „normalnych” liczników.
      Widziałem, że @LukaszW:disqus nabył również komplet takich sensorów więc może będzie mógł napisać jak sytuacja wygląda u niego. Pozdrawiam.

      Odpowiedz
  • Używam Domoticza już jakiś czas i również jestem zdania, że to oprogramowanie ma bardzo duży potencjał.

    BTW. Aktualnie uczestniczę w projekcie tłumaczenia Domoticza. Niestety z braku chętnych do testowania, tłumaczenie wygląda jak wygląda :/ Zapraszam do pomocy twórcom tego oprogramowania.
    Pozdrawiam

    Odpowiedz
  • Rewelacja! Normalnie z nieba mi spadłeś:) Bardzo ciekawy projekt. Sam ostatnio przeglądam różne systemu automatyki domowej – Domoticz, OpenHAB, AgoControl. Najbardziej pasował mi Domoticz, ale niestety z braku pieniędzy i umiejętności miałem podłączone jedynie 2 czujniki temperatury po 1-Wire. Bardzo poproszę o wersję z nrf24l01+. Mam 11 sztuk, w czym jedna z zewnętrzną antenką(taka jakby na centralny sterownik). Czy spotkałeś się może ze stroną http://www.mysensors.org/ ? Chłopaki odwalili tam kawał dobrej roboty z biblioteką do komunikacji właśnie po nrf24l01+ i świetnie jest tam opisane jak podłączyć czujniki różnego rodzaju, jest też taki jakby mini sklepik z odsyłaczami do ebaya właśnie. Cały czas rozwijają temat i planują właśnie kontroller na Raspberry Pi, ale na chwilę obecną to jest największym problemem że nie ma żadnego sensownego kontrolera. Z tych testowanych systemów odpowiada mi najbardziej Domoticz, ale tam na forum niestety nie poradzili sobie z komunikacją obustronną czujników i Domoticza. Proszę, kontynuuj rozwój i opisywanie tego projektu:) Czy rozważasz możliwość podłączenia np. czujnika deszczu, czujników ruchu?

    Jak to czytam to chyba trochę chaotycznie to opisałem, ale zdaje się że to przez podekscytowanie:)

    Ps. Dobrze by było oczywiście oprócz zastosowania nrf24l01+ zostawić moduł 433MHz do sterowania gniazdkami.

    Odpowiedz
    • Jak ktoś chce zamawiać z ebaya andoidowe części to mogę polecić paru sprzedawców od których już parę razy szybko dostałem przesyłki.

      Bardzo polcić mogę sprzedawców alice1101983 i comelili. Od nich chyba każdą przesyłkę dostałem szybko jak na standardy przesyłek z chin, często też wyrabiali się przed 2 tygodniami.

      Odpowiedz
    • Cieszę się, że projekt wywołał u Ciebie pozytywne emocje! :) Z kolejnych dobrych wiadomości to pracuję obecnie nad wersją z nrf24l01+. Na początek tylko zwracanie temperatury + wilgotność ale z czasem na pewno dołożę inne funkcje. Strony mysensors.org wcześniej nie widziałem ale wygląda bardzo interesująco! Thx! Muszę się w nią zagłębić. Jeśli chodzi o inne rodzaje czujników to jak najbardziej mam w planach czujniki ruchu (do oświetlenia itd) oraz wilgotności gleby (do kwiatków) tak więc z czasem na pewno podzielę się z Wami wynikami :) Pozdrawiam!

      Odpowiedz
      • Podoba mi się opcja z dodatkowym wyświetlaczem podającym najważniejsze dla nas dane bez wchodzenie w przeglądarkę. Co mogę dodać od siebie – chętnie bym zobaczył moduł do pomiaru energii łączony bezprzewodowo. BTW niektóre zdjęcia mają odnośniki nie do swoich większych zdjęć, tylko do samej strony z artykułem. Ogólnie to mam prawie wszystkie części, więc niedługo się zabiorę za budowanie według Twojego projektu:)

        Odpowiedz
        • Docelowo wyświetlacz będzie bezprzewodowy – przenośny z porządnym menu itd. Natomiast moduł do pomiaru energii zostanie raczej przy liczniku gdyż będę robił kolejną przystawke – tym razem będzie to wizualny dekoder stanu licznika… no ale to już na następny artykuł albo dwa ;) PS: Zdjęcia postaram się poprawić, nie wiem czemu tak się stało…

          Odpowiedz
          • Tzn ja też myślę że powinien zostać przy liczniku, tylko akurat w moim przypadku chciał bym bezprzewodowo bo licznik mam w zupełnie innym miejscu niż bym chciał umieścić raspberry pi. Pisząc o wizualnym dekoderze stanu licznika myślisz o zliczaniu impulsów diody licznika?

            Odpowiedz
            • Zliczanie impulsów odpuściłem bo to pokrywało by się z mierzeniem zużycia energii za pomocą cęgi. Natomiast dekoder chciałbym użyć do odczytu fizycznego stanu licznika – w tym celu wykorzystam właśnie Raspberry Pi i kamerkę na USB dlatego w moim przypadku całość zostanie przy liczniku :)

              Odpowiedz
              • No to ja chyba zrobię na razie tak że będę miał pomiar tylko swojego komputera, albo może urządzeń podłączonych do tego gniazdka – komputer, router, switch. Ewentualnie później może uda się uzyskać pomiar całkowity z licznika, może właśnie za pomocą impulsów. Chciałem już dziś zacząć majstrować, ale przeliczyłem się nieco z możliwościami sklepu w okolicy i musiałem złożyć parę zamówień przez internet. Także prace zaczynam w przyszłym tygodniu jak przyjdą mi niezbędne części.

                Odpowiedz
                • Znam ten ból – ja muszę (prawie) wszystko zamawiać przez internet bo dostać cokolwiek lokalnie to albo bardzo drogo albo w ogóle nie dostępne. Ale całe szczęście jest ebay ;)

                  Jedna kwestia dotycząca cęgi Dietza – możliwe, że to już wiesz, ale może innym się przyda – musisz ją założyć na przewód fazowy (pojedyńczy kabel) – nie na np. kabel od przedłużacza.

                  Odpowiedz
                  • Nie zagłębiałem się jeszcze w temat cęgi, jedynie patrzyłem po cenach, więc wielkie dzięki za tę informację. Dziś poszukując dobrego miejsca do kupna brakujących elementów trafiłem na całkiem ciekawy sklep z w miarę dobrymi cenami – lispol.com. Co ciekawe wydaje mi się że np. koszyk na 4 bateria AA jest tańszy niż na Ebayu.

                    Odpowiedz
      • Chciał bym jeszcze wrócić do sprawy mysensors.org. Świetnie było by zintegrować to z Domoticzem. Biblioteka obsługuje ogromną ilość czujników różnego rodzaju. Tylko kwestia jest taka że wiele osób, które próbowały się za to wziąć twierdzi że nie jest łatwo bo API Domoticza jest po prostu kiepskie. Przydał by się jakiś zdolny programista, który był by w stanie napisać oprogramowanie które połączyło by gateway z mysensors z domoticzem w taki sposób by domoticz automatycznie wykrywał nowo włączone sensory jak to jest przy rfxcom. Ja niestety nie posiadam takich zdolności:(

        Odpowiedz
        • Myślę, że twórcy mysensors.org docelowo dodadzą wsparcie dla Domoticza na RPi. Wczoraj przeglądałem forum i widziałem, że pojawiają się już takie posty więc to raczej tylko kwestia czasu. Można by również samemu zabrać się za tworzenie „bramki” ale to rzeczywiście ciężka sprawa. Widzę co prawda w miarę prostą drogę to zintegrowania mysensors.org z Domoticzem ale to bardziej „partyzanckie” rozwiązanie niż takie nadające się do publikacji. Niemniej jednak jak ktoś chce (a nie chce czekać na zespół mysensors.org) to można by próbować zrobić odbiornik danych z mysensors.org i przekazywać je do Domoticza przez API – czyli akutalizować poszczególne IDX. Ale o opcjach typu auto-uczenie się to raczej trzeba poczekać na profesjonalistów :)

          Odpowiedz
          • Czy możesz się ze mną skontaktować mailowo, ewentualnie w jakiś inny bezpośredni sposób?

            No wiadomo że próbują, ale nie wiem czy faktycznie się to uda tak niedługo, zwłaszcza że mysensors zamierza wypuścić własny kontroler.

            W takim razie czy mógł byś nieco bardziej przybliżyć ogólne dodawanie nowych czujników przez API? Tak jak przykładowo chciał bym dodać czujnik ruchu, albo deszczu(na dobrą sprawę przekazywanie 0, albo 1, więc pewnie jako light/switch)?

            Odpowiedz
            • Najlepiej będzie jeśli napiszesz do mnie z formularza na http://pwiatrowski.com/

              Myślę, że się uda bo sporo ludzi się o to dopytuje… no ale niczego nie można być pewnym na 100%.

              Nowe czujniki do Domoticza musisz dodać sam ręcznie – dummy virtual switch. Następnie tworzysz nowe urządzenie w tej nowododanej kategorii i określasz jego typ – tam możesz określić co to dokładnie będzie. Później w „Devices” masz to nowe urządzenie i możesz je dodać do listy – znów wybierając podtyp. Spisujesz IDX tego urządzenia i aktualizujesz jego stan przez zewnętrzną „bramkę” i już.
              Tak to po krótce by wyglądało… nie wiem czy jest to wystarczająco składnie napisane ale jak będziesz po kolei dodawał w Domoticzu to powinno być łatwiej.

              Odpowiedz
              • Ale dodając nowe czujniki(szczególnie nowe typy) to w Twoim oprogramowaniu do „bramki” też trzeba będzie chyba co nieco pozmieniać. Mam nadzieję że jutro do mnie dotrą wszystkie potrzebne części to chciał bym już to uruchomić i pokombinować z dodatkowymi czujnikami:)

                Odpowiedz
                • dokładnie – jak dodasz nowe czujniki, urządzenia w Domoticzu to musisz przerobić skrypt „bramki” tak aby pasował do Twoich IDX, typu urządzeń (dane) itd. Ale generalnie to nie powinno być trudne bo w większości przypadków przestawiasz tylko IDX i kolejność danych (param1 i 2).

                  Odpowiedz
  • Mam takie pytanie bo już nie wiem czy nie mogę tego znaleźć na schemacie czy tych paru rzeczy po prostu nie ma ?

    Chodzi mi tutaj o czujnik temperatury DHT11 którego nie widzę na schemacie oraz o przełącznik którego również nie mogę znaleźć na schemacie a obie te rzeczy widzę na zdjęciach gotowej płytki.

    Odpowiedz
    • Rzeczywiście DHT11 „uciekł” ze schematu :( Z nim sprawa jest identyczna jak z podłączeniem przystawki „AC meter” na schemacie. Po prostu data pin podłączony jest do pinu A2, skrajny lewy pin to VCC a skrajny prawy to GND (ale zawsze sprawdź pinout w internecie bo możesz patrzeć na czujnik „od tyłu” i wyprowadzenia będą odwrotnie). W kodzie aplikacji czujnik ten jest już obsłużony.

      Odpowiedz
  • mam jedno pytanie, a czy samym domoticzem, byłoby możliwe odczytywanie stanów z arduino podpiętego tylko do sieci, np jak w projekcie z majsterkowa „lampka zapalana przez internet”, tyle że zamiast stanu 0-1 np można by było odczytać temperaturę bądż wartość pinu analogowego??? Bardzo by ułatwiło to wykorzystyanie systemu

    Zasłużone pięć, oraz wiele inspiracji do innych projektów. Wydaje mi się że dla zakupów, z Chin (i innej zagranicy) powinno się utworzyć jakiś dział na forum, żeby tu skupić się na poradach technicznych.

    Odpowiedz
    • Generalnie można spokojnie użyć arduino z ethernet shieldem zamiast połączenia przez port szeregowy. Musiałbyś tylko stworzyć „bramkę” – gatewaya – która by odbierała sygnały/komendy/dane z arduino i przekazywała do Domoticza. Część dotycząca Domoticza pozostała by wtedy bez zmian.

      Odpowiedz
      • Zastanawiałem się czy w opcjach serwera, jest taka możliwość, czy po prostu nie mogę jej znaleźć? Udało mi się tylko dotrzeć, do wirtualnych stacji pogodowych. Czyli przewidziano możliwość odczytu przez sieć, niestety nie można (albo jeszcze nie znalazłem) jak dokonać odczytu ze swoje Arduino. Ułatwiłoby to np montowanie czujników w różnych częściach domu/posesji.

        Odpowiedz
        • No właśnie takiej opcji nie ma – stąd potrzeba bramki. W Domoticzu tworzysz sobie wirtualne (dummy) sensory i „bramką” która odbiera dane od Arduino – aktualizujesz dane w Domoticzu.

          Odpowiedz
            • Generalnie jesteś już blisko :)
              właśnie API/JSON musisz użyć do komunikacji pomiędzy „bramką” a Domoticzem. Bramka odbiera dane od arduino i przekazuje poprzez API do Domoticza.

              Odpowiedz
    • Bardzo dobra! RPi to bardzo fajne urządzenie. Nie tylko do sterowania domem ale również jako mediacenter itd. A przy tym jest baaardzo energooszczędne!

      Odpowiedz
  • Oczywiście ode mnie 5. Jak do tego rozwiązania dołożyć sterowanie po Ethernecie (w5100)? Jak realizowany jest zapis energii. Jak się zorientowałem to zliczać trzeba na nodzie, tylko co jak node się restartuje to dane są tracone?

    Odpowiedz
    • Sterowanie po ethernecie jest jakby w standardzie bo obsługujesz Domoticza przez panel www. Chyba, że chodzi Ci o coś innego. Zapis zużycia energii jest natomiast realizowany przez noda i przekazywany bezpośrednio do Domoticza, który zapisuje to w bazie danych – tak więc nawet po zresetowaniu noda i tak historia zostaje.

      Odpowiedz
      • Chodziło mi dokładnie czy masz przykładowy kod do arduino , oraz co się dzieje gdy pakiet nie dotrze do arduino? Domotic pokaże że jest coś załączone a arduino tego nie wykona? Oraz czy jest coś takiego jak wysyłanie stanu co jakiś czas aby ja urządzenie wykonawcze się zresetuje to wróciło do zadanego stanu.

        Odpowiedz
        • Cały kod jest udostępniony na tej stronie. Domoticz wysyła komendy do Arduino przez port szeregowy…szanse na to, że coś nie dojdzie są znikome. Natomiast jeśli w panelu Domoticz klikniesz włączenie światła a transmiter 433MHz będzie odłączony od sterownika to mimo wszystko w Domoticzu będzie się wyświetlało, że urządzenie jest włączone. Niestety tutaj nie ma informacji zwrotnej więc niejako system wierzy, że urządzenie jest włączone lub wyłączone po klikniięciu. Żeby zminimalizować błędy np. w czasie transmisji wysyłam komendy (zwłaszcza te które są zaprogramowane) wiele razy.

          Odpowiedz
          • Widziałem ale ja pytam czy masz może kod do komunikacji nie po rs tylko po lan taki przykładowy? Lub czy mógłbyś pomóc w stworzeniu czegoś takiego na w5100

            Odpowiedz
            • takiego kodu nie posiadam… nie posiadam nawet takiego shielda więc ciężko mi będzie pomóc. Ale generalnie zasada będzie taka: uruchamiasz shielda – konfigurujesz go do swojej sieci (ip itd) i później w pętli zbierasz dane z czujnika i wysyłasz do Domoticza przez API Json – przykład jakiego użyć URL masz w moim kodzie „bramki” w node.js. Mam nadzieję, że to Ci troche pomoże :)

              Odpowiedz
  • Jestem pod wrażeniem włożonej pracy. Gratulacje!
    Mam pytanie jeśli chodzi o zdalne nody, czemu akurat Arduino ProMini na 5V a nie na 3V? Można wtedy zasilać je mniejszą ilością AA :) Czym kierowałeś się przy wyborze?

    Odpowiedz
    • Dziękuję :)
      wersje arduino dyktowała dostępność i cena :) wersje 5V są znacznie tańsze niż 3.3V. Natomiast z mojego doświadczenia wynika, że nawet wersję 5V możesz zasilić 2x AA i będzie działać – mimo iż jesteś na granicy zalecanego napięcia z noty katalogowej ATmegi 328 przy 16MHz.

      Odpowiedz
  • Po komentarzach widzę że niewiele osób spróbowało faktycznie zbudować taki projekt. Osobiście odkryłem parę niedopowiedzeń(jak chociażby sterowanie gniazdkami – trzeba odczytać kody swoich, bo każde gniazdko ma inne). Oczywiście autor bardzo dobrze odpowiadał na pytania, ale po prostu nikt oficjalnie nie pytał.

    Odpowiedz
  • Świetny artyuł!
    Czy mógłbyś napisać jakie wyprowadzenie pinów jest na tym konkretnym wyświetlaczu?
    Bo zmontowałem wszystko wg artykułu i wyswietlacz swieci na poczatku przez ok. sekunde a nastepnie gasnie, ale nic sie na nim nie wyswietla.
    Kombinuje z pinami i nic sie nie dzieje.
    Dla sprawdzenia wrzucilem przykladowy program pcdtest i wyswietlacz dziala, wiec problemem musi byc kwestia pinow. Jak poszukalem w sieci to sa rozne wersje z roznym rozplanowaniem…

    Mam jeszcze pytanie odnosnie obnizenia napiecia z USB 5V na 3,3 stosujac diode zenera 3v3. Otoz wlutowalem ja na linii VCC i za linia jest 2.4V i nic nie startuje. Na płytce prototypowej sama dioda wlaczona w obwod 5V faktycznie obniza napiecie do ok. 3.7V, ale po zbudowaniu calego ukladu napiecie spada do wspomnianego 2.4V.
    Probowalem wlutowac ja odwrotnie ;) Spadek napiecia byl minimalny, do ok. 4,4V

    Odpowiedz
    • W przypadku wyswietlacza najprawdopodobniej chodzi o kontrast – ja w swoim programie zmodyfikowalem biblioteke pcd8544 do obslugi mojego wyswietlacza – niestety ustawienia kontrastu roznia sie znaczaco pomiedzy poszczegolnymi wyswietlaczami (fizycznymi egzemplarzami). Zmian dokonalem w linijce 92 w pliku PCD8544.cpp zmieniajac wartosc domyslna na 0x98 ( domyslnie bylo 0xc2).

      Jesli chodzi o diode Zenera to zawsze uzywa sie jej zaporowo (w innym przypadku bedzie sie ona zachowywala jak zwykla dioda). Najlepiej jak poszukasz sobie w google schematy na regulatory oparte o diode zenera. Jest wiele wersji od najprostszych z uzyciem diody i rezystora do wersji z tranzystorami regulujacymi napiecie, prad.

      Odpowiedz
  • Witam. Rozwiń proszę temat jak sterować gniazdami o których wspominałeś za pomocą nadajnika RF 433 (np takiego jaki użył Łukasz w skrzynce na listy). Czy można przy pomocy takiego nadajnika i odpowiednio zaprogramowanej atmegi sterować tymi gniazdami?

    Odpowiedz
    • Oczywiscie gniazdka moga byc sterowane za pomoca RF433. Ja uzylem biblioteki RC Switch w ktorej znajduje sie program o nazwie Sniffer – pozwala on odczytac kod jaki wysyla Twoj pilot od gniazdek i dzieki temu mozesz zaprogramowac nadajnik RF do wysylania takiego wlasnie kodu. Na stronie biblioteki RC Switch i w opisie mojego projektu powinienes znalezc wszystkie niezbedne informacje jak to zrobic.

      Odpowiedz
  • Utknąłem przy programowaniu ATMEGi przy uzyciu Raspberry, dostaję błąd:

    pi@raspberrypi ~ $ sudo avrdude -C /etc/avrdude.conf -v -v -v -p atmega328p -c arduino -P /dev/ttyAMA0 -b 115200 -D -U flash:w:homeautomation.cpp.hex:i

    avrdude-original: Version 5.10, compiled on Jun 18 2012 at 12:38:29

    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is „/etc/avrdude.conf”

    User configuration file is „/root/.avrduderc”

    User configuration file does not exist or is not a regular file, skipping

    Using Port : /dev/ttyAMA0

    Using Programmer : arduino

    Overriding Baud Rate : 115200

    done with autoreset

    avrdude-original: ser_recv(): programmer is not responding

    avrdude-original: stk500_recv(): programmer is not responding

    uważam, że hardware jest podłączony prawidłowo, zastanawiam się, czy Atmega328p musi miec wcześniej wgranego bootladera?

    Odpowiedz
    • Stoję w tym samym miejscu :) MISO MOSI potrafię zaprogramować atmegę a przez UARTa nie ciągle wywala ten błąd:
      pi@raspberrypi ~ $ avrdude -v -c arduino -p ATMEGA328P -P /
      avrdude-original: stk500_recv(): programmer is not responding

      przypuszczam że to wina braku resetu ale ręcznie też nie pomaga :/

      Odpowiedz
  • Chciałem zapytać… Mam Raspberry PI B+ i czy jest szansa aby na tym odpalić taki nadajnik i odbiornik 433MHz i aby działał on w Domoticz ?

    http://allegro.pl/modul-nadajnik-odbiornik-433mhz-rf-arm-avr-arduino-i4740743409.html

    Szukam po internecie ale nie mogę znaleźć… I jak on bedzie działać czy w miarę OK ?

    Sorry ale jestem bardzo początkujący z Raspberry i ogólnie w tych sprawch… Ale każdy kiedyś zaczyna :)
    Na obecną chwilę udało mi się na Raspberry i w Domoticz odpalić Adapter na USB DS9490R z czujnikami temperatury DS18B20. Teraz czekam na czujniki DHT 22 i też gdyby ktoś powiedział mi krok po kroku jak to odpalić w Domoticz na Raspberry będe wdzięczny.

    Odpowiedz
  • Witam

    Chciałem poruszyć kwestię sterowania poszczególnymi gniazdami elektrycznymi w twoim projekcie .

    Odczytuje kody RCSWITCH SNIFFER dla każdego gniazdka , wszystko jasne
    Mam już kody do wszystkich gniazdek .

    Co dalej, jaki plik edytować aby dopisać dane poszczególnych gniazdek

    Switch4on musi się równać kodowi odczytanemu Snifferem

    Pozdrawiam
    RADO

    Odpowiedz
  • Witam
    Chciałem spytać czy ktoś uruchomił ten sterownik?
    Zmontowałem cały układ i sam sterownik działa prawidłowo tzn. pokazuje temperaturę i wilgotność, łączy i wyświetla temperaturę ze zdalnego czujnika, Natomiast nie łączy się z Raspberry. Z samego sterownika mogę odczytać temperatury, wilgotność i napięcie baterii na porcie szeregowym.
    Łącząc Raspberry przez port szeregowy z uruchomionym minicomem, dane testowe przesyłane są prawidłowo, czyli port szeregowy Raspberry jest sprawny.
    Sądzę, że mam źle skonfigurowaną instalację Domoticza i Node
    Proszę o pomoc bo z Linuksem słabo sobie radzę.
    Jeśli ktoś może dokładniej opisać instalacje, będę bardzo wdzięczny.
    Pozdrawiam
    Marian

    Odpowiedz
  • Prośb ado autora tekstu: Jakiś przykład z pod którego kupowałeś klona Arduino Pro Mini. 7.5 to jakieś grosze … u nas AtMega328 goła kosztuje 10pln :)

    Odpowiedz
  • Witam czy jest możliwość zastosowania dodatkowo jeszcze 2 cegi dietza ?
    I więcej czujników? Czy jak użyję banna p lub innego kkomputera który ma więcej pinow do wystrowania protokoly będą też współpracować

    Odpowiedz
  • Witam

    Mam pytanie co do RPi, czy ma znaczenie jaki model 2; A+; B+\
    Może to dla nie których głupie pytanie ale dopiero zaczynam zabawę z tymi „klockami” a chciałbym zrobić w oparciu a „gołe” ARDUINO i RPi sterownik akwarystyczny. Bardzo spodobała mi się opcja zdalnego ( WiFi) zarządzania – nadzorowania.

    Odpowiedz
  • Czy można kupić gdzieś gotowe moduły oparte o tą technologię? Lutowanie tego wszystkiego zajmie trochę czasu. Lepiej zlecić to specjaliście a samemu zająć się montażem.

    Odpowiedz

Odpowiedz

Twój adres e-mail nie zostanie opublikowany. Required fields are marked *

head-19901_640

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!