Chciałbym zobaczyć najtańszy możliwy sposób sterowania oświetleniem za pomocą mojego Raspberry Pi.
To, co wyobrażam sobie, to kontrolować
Na swoim smartfonie buduję interfejs, za pomocą którego mogę wysyłać polecenia do mojego Raspberry Pi. Raspberry Pi wysyła wtedy paczkę (lub coś innego) do rzeczy, którą mogę umieścić w gnieździe zasilającym (więc jej nie widzę). Zauważ, że ta rzecz powinna być połączona przez Wi-Fi (jak inaczej ma odbierać wiadomość z mojego Raspberry Pi?).
Czym jest ta rzecz, a co jest najtańszym możliwym sposobem możliwe, ponieważ mam zamiar połączyć kilkanaście świateł?
wifi
home-automation
Rick Hoving
źródło
źródło
Odpowiedzi:
Używam tych przedmiotów:
Po wyjęciu z pudełka masz pilota, który wysyła sygnał do urządzenia odbiorczego i włącza go lub wyłącza.
W moim przypadku stworzyłem tę sytuację:
/switch.html
)/switch.php
(.php jest na Raspberry Pi)switch.php
Wywołujeswitch.py
program, który steruje nadawcę 433 MHz (patrz niżej)To jest nadawca, czyli zamiennik standardowego pilota: Superregeneracja bezprzewodowego modułu nadajnika 433 MHz dla Arduino
Stworzyłem również scenariusz do użytku poza domem.
Nie chciałem podłączać mojego Raspberry Pi przez mój homerouter bezpośrednio do Internetu, więc zbudowałem sobie inną stronę internetową (w mojej własnej domenie), która nie kontroluje bezpośrednio Raspberry Pi, ale wysyła wiadomość e-mail na adres (znany tylko z ja) adres e-mail ( Gmail ).
Raspberry Pi sprawdza to konto e-mail co 10 minut, aby sprawdzić, czy jest jakiś e-mail. W tym e-mailu mówię na przykład A włączone lub B wyłączone.
Więc kiedy wrócimy do domu późno i światła są już wyłączone, nawigujemy do strony na moim telefonie komórkowym (planujemy uczynić ją aplikacją na Androida), kliknij przycisk, strona zostanie opublikowana, a na serwerze zostanie wysłany e-mail, i w ciągu następnych 0-10 minut Raspberry Pi sprawdza pocztę, widzi cztery nowe e-maile (A włączone, B włączone, C włączone i D włączone) i włącza światła.
Jak zacząć
Tak więc, aby zacząć, to są rzeczy, które zrobiłem, aby wszystko działało. W moim przypadku zaprogramowałem sterowanie nadajnikiem 433 MHz w Pythonie (który jest łatwym językiem, jeśli już wiesz, jak programować).
Najpierw zainstaluj
rpi.gpio
bibliotekę.Ta biblioteka służy do sterowania małymi pinami na twoim Raspberry Pi ze skryptu Python. Zobacz Instalowanie biblioteki Python RPi.GPIO .
Następnie możesz opcjonalnie przeczytać artykuł Samouczek: jak używać Raspberry Pi jak Arduino , chodzi o to, co możesz zrobić z
rpi.gpio
biblioteką, na przykład migające diody LED .Jednak włączanie światła Elro nie jest obowiązkowe.
Następnie dostajesz niesamowity kod dla Elro dowodzonego przez HeikoHeiko, pod adresem http://pastebin.com/aRipYrZ6 . Wklej ten kod w pliku o nazwie „
switchelro.py
”.Następnie zmień ciąg w linii 94 na własne ustawienia zworek (tak jak ustawiłeś w pilocie i urządzeniu walloutlet. Sprawdź, czy połączenie urządzenia zdalnego walloutlet działa przed wypróbowaniem go z Raspberry Pi. Jeśli to nie działa ze standardowymi komponentami prawdopodobnie również zawiedzie z Raspberry Pi).
Następnie zmieniasz numer PIN, do którego jest podłączony nadawca w linii 97.
Numer pinu można uzyskać z niskopoziomowych urządzeń peryferyjnych RPi oraz w pliku: RPi P1 header.png .
Musisz użyć liczby 1..26 (czarny obraz), a nie GPIO34, GPIO24 itp. (Zielony obraz).
Następnie wpisz to w wierszu polecenia:
co oznacza „włącz B” (zgodnie z tym schematem:
A = 1, B = 2, C = 4, D = 8, E = 16
dla pierwszego numeru, a 1 = włączony, 0 = wyłączony dla drugiego).Zmieniłem
repeat = 10
naline 30
celurepeat = 20
na początku (nie pamiętam dlaczego) i że działa. Nigdy nie próbowałem tego z ustawieniem „10”.źródło
default_key = [1,0,0,0,1]
z kodu pastebin.com/aRipYrZ6 kontrolujesz przełączniki DIP, apin
właściwością wdef __init__(self, device, key=[1,1,1,1,1], pin=4):
kodzie kontrolujesz A .. E (a = 1 .. e = 16)Rzeczą jest nazywany X10 , jest to standard dla większości zadań automatyki domowej, w tym świateł sterujących. Sygnał sterujący jest przesyłany tą samą linią energetyczną, do której podłączone są urządzenia.
Aby móc kontrolować wszystko z komputera, możesz przeczytać o interfejsach komputerowych X10 ze strony internetowej OpenRemote. Model, którego najprawdopodobniej szukasz, to CM15A z interfejsem USB, który obsługuje Linux.
Dobrym pomysłem może być sprawdzenie na eBayu gniazdek ściennych z obsługą X10 i wkręcenie modułów lamp, które można kupić dość tanio, w przedziale 10-20 USD.
źródło
To, czego szukasz, to przekaźnik półprzewodnikowy lub przekaźnik mechaniczny . Chodzi o to, że niewielką ilość prądu przy niskim napięciu (np. Z twojego RPi) można wykorzystać do uruchomienia przepływu większej ilości prądu przy wyższym napięciu (np. Lampa).
Polecam moduł przekaźnikowy SainSmart z 8 kanałami DC 5 V o wartości 12 USD dla Arduino Raspberry Pi , ponieważ został już wyprodukowany w płytkę z gotowymi do użycia zaciskami śrubowymi. Ma wbudowane tranzystory polowe do pozyskiwania dodatkowego prądu wymaganego do uruchomienia przekaźników mechanicznych. Istnieją różne płytki z tej samej firmy, w szerokiej gamie układów / liczby przekaźników. Ten, który wysłałem, to 8 kanałów, więc może nie być wystarczający dla twoich potrzeb, chociaż dostępnych jest 16 wersji kanałów . Są na ogół tańsze niż kupowanie wielu przekaźników osobno i ułatwianie ich podłączania.
Wymagane są 4 połączenia:
Wejścia / wyjścia wysokiego napięcia to połączenia, które są wykonane lub przerwane przez przekaźniki zgodnie z ich liniami wejściowymi.
Mam już NIESAMOWITY program C do zdalnego przełączania pinów GPIO przez SSH. Jeśli chcesz, mogę podać kod źródłowy lub nawet wyjaśnić, jak to działa.
źródło
mój system jest tani: 43 EUR - (odbiornik + nadajnik) patrz poniżej.
w przypadku automatyki domowej po prostu podłączam do RPI kompatybilny przetwornik FS20 o częstotliwości 868,35 MHz:
http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html
ten nadajnik łączy się bezpośrednio (tylko za pomocą 4 przewodów) z portami GPIO RPI (3,3 V, GND, TXD, RXD) i jest po prostu sterowany przez interfejs linii szeregowej.
teraz możesz kontrolować szeroką gamę urządzeń FS20, takich jak przełączniki, przełączniki, ściemniacze, timery, radia. odbiorniki wielokanałowe itp., przesyłając niektóre bajty przez interfejs szeregowy RPART UART.
Przegląd systemu FS20:
http://www.elv.de/fs20-funkschaltsystem.html
(niestety strona jest dostępna tylko w języku niemieckim)
Osobiście wolę zwykły interfejs CLI do kontrolowania moich urządzeń domowych. Jeśli wolisz jakieś GUI, możesz zajrzeć tutaj:
http://fhem.de/fhem.html
na szczęście po angielsku :-)
Chociaż bardzo elastyczny system FS20 jest bardzo tani. Przykładowe koszty prostego włącznika / wyłącznika:
sam przełącznik: http://www.elv.de/elv-funk-schaltsteckdose-fs20-st.html 22,95 EUR
Nadajnik UART: http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html 19,95 EUR
Polecam kontrolować sam RPI za pomocą klawiatury bezprzewodowej. W tym celu możesz opcjonalnie kupić tę genialną rzecz:
RT-MWK03 [Wireless 2.4 Ghz] ( http://www.riitek.com/en/product-detail-428.html )
źródło
Napisałem szczegółowy post na blogu, w jaki sposób bezprzewodowo kontrolować gniazda za pomocą raspberry pi. Sprawdź to: http://timleland.com/wireless-power-outlets/
źródło
Chociaż nie do końca tanie, oto moje rozwiązanie:
http://www.everyhue.com/?page_id=38#/discussion/707/raspberry-touchpad-some-success
Zasadniczo używasz Philips Hue (kontrolowane przez Wi-Fi, programowalne wielokolorowe światła LED) wraz z RPi i touchpadem. Powierzchnia touchpada USB działa na wymiary koloru i jasności, a przyciski myszy włączają i wyłączają światła. Koszt to RPi + klucz Wi-Fi (11 USD) + tani touchpad USB (15 USD) + zestaw Philips Hue (200 USD za mostek i 3 światła, a następnie 60 USD / światło).
źródło
Mam inne podejście: używam klucza USB CUL firmy Busware (obsługuje FS20 + HMS + FHT + inne protokoły i urządzenia) i zaimplementowałem własny interfejs API języka Java w celu wyodrębnienia urządzeń i umożliwienia łatwej automatyzacji za pośrednictwem aplikacji Java.
Na wypadek, gdyby ktoś zainteresował się moim małym projektem: http://www.paulo-lima.org/hans
źródło