Najtańszy sposób sterowania wieloma gniazdami zasilania (lampami) przez Wi-Fi

41

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ł?

Rick Hoving
źródło
Istnieje gniazdko kontrolowane przez WiFi, które ktoś wykonał za około 20 USD w częściach (nie licząc Raspberry Pi) ProvoTronics.com
Ty Jones

Odpowiedzi:

22

Używam tych przedmiotów:

  • Odbiorniki ON-OFF do sterowania moimi światłami (zwykle umieszczasz urządzenie w walloutlet lub zamiast walloutlet). Pracują w paśmie 433 MHz (ISM).

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ę:

  • Utworzono witrynę HTML na moim Raspberry Pi ( /switch.html)
  • Dzwonię na tę stronę w moim smartfonie
  • Na stronie znajdują się cztery przyciski (steruję czterema urządzeniami / lampkami)
  • Kiedy klikam przycisk, asynchronicznie uruchamia wywołanie do /switch.php(.php jest na Raspberry Pi)
  • switch.phpWywołuje switch.pyprogram, który steruje nadawcę 433 MHz (patrz niżej)
  • Nadajnik 433 MHz robi to samo, co gotowy pilot.

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.gpiobibliotekę.

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.gpiobiblioteką, 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:

sudo python switchelro.py 2 1

co oznacza „włącz B” (zgodnie z tym schematem: A = 1, B = 2, C = 4, D = 8, E = 16dla pierwszego numeru, a 1 = włączony, 0 = wyłączony dla drugiego).

Zmieniłem repeat = 10na line 30celu repeat = 20na początku (nie pamiętam dlaczego) i że działa. Nigdy nie próbowałem tego z ustawieniem „10”.

Michel
źródło
1
aha, a cena .. tutaj w Holandii zestaw 3 odbiorników portfela (który klikniesz w portfelu, a światło trafi do odbiornika) z pilotem kosztuje 15 euro. Nadawca o częstotliwości 433 MHz kosztuje około 5 USD
Michel
Brzmi dokładnie to, czego szukam! Czy możesz przesłać mi pliki projektu? (Switch.html, switch.php i, switch.py) Mój e-mail zawiera powyższą odpowiedź. Gdzie mogę również kupić odbiornik on-off2 w Holandii? Podana strona internetowa nie podaje żadnych cen.
Rick Hoving
Doskonały post - Czy możesz dodać, gdzie znalazłeś źródło poleceń wysyłanych szeregowo? Czy korzystasz z biblioteki? Jak celujesz w urządzenia? +1
Piotr Kula
1
@Nitin W moim systemie możesz ustawić przełącznik DIP na odbiorniku (5 przełączników on / off) i 5 liter (A .. E). Tak więc za pomocą kodu default_key = [1,0,0,0,1]z kodu pastebin.com/aRipYrZ6 kontrolujesz przełączniki DIP, a pinwłaściwością w def __init__(self, device, key=[1,1,1,1,1], pin=4):kodzie kontrolujesz A .. E (a = 1 .. e = 16)
Michel
1
@Nitin Nie wiem jak to kontrolować za pomocą C #. Z niecierpliwością czekamy na to, ponieważ najnowszy PI będzie uruchamiał Win10 i mam nadzieję, że będzie również działał w C #. To powiedziawszy, gdy jestem programistą C #, Python jest łatwy do nauczenia
Michel
6

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.

Lenik
źródło
6

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:

  • Wspólna podstawa (wspólna dla wszystkich przekaźników), która łączy się z RPi
  • Oddzielne wejścia zasilane pojedynczymi liniami RPi GPIO (do wyzwalania przekaźników)
  • Wejście wysokiego napięcia
  • Wyjście wysokiego napięcia

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.

Alexander
źródło
Jak mogę odmówić NIESAMOWITEmu programowi. Chociaż C nie ma w moim repertuarze języków, mogę przynajmniej z czasem przyjrzeć się kodowi.
Rick Hoving
Czy możesz wysłać to [email protected]? Z góry dziękuję!
Rick Hoving
Jeśli odpowiedź na twoje pytanie, kliknij znacznik wyboru pod strzałkami do głosowania.
Alexander
@XAleXOwnZX Czy mogę również zobaczyć ten niesamowity kod? Być może powinieneś otworzyć pytanie „Czy ktoś ma NIESAMOWITY program C do zdalnego przełączania pinów GPIO przez SSH”, a następnie odpowiedz na nie.
puk
Potrzebuję twojego adresu e-mail, wyślę go i opublikuję pytanie + odpowiedź jutro
Alexander
2

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 )

sparkie
źródło
0

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).

Ilya Haykinson
źródło
0

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

Paulo Lima
źródło