Spisu treści:

Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilania): 6 kroków
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilania): 6 kroków

Wideo: Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilania): 6 kroków

Wideo: Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilania): 6 kroków
Wideo: Zasilanie kopalni kryptowalut ze zdalnym restartem i pomiarem poboru prądu 2024, Listopad
Anonim
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilające)
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilające)
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilające)
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilające)
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilające)
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilające)
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilające)
Zdalnie sterowane gniazda sieciowe Raspberry Pi RF (wtyczki zasilające)

Kontroluj tanie gniazdka sieciowe 433MHz (gniazdka ścienne) za pomocą Raspberry Pi. Pi może nauczyć się kodów sterujących wyprowadzanych z pilota zdalnego sterowania gniazd i używać ich pod kontrolą programu do aktywacji dowolnego lub wszystkich zdalnych gniazd w całym domu.

Projekt nie opiera się na zewnętrznej łączności z Internetem (tj.) „Internet przedmiotów” i dlatego jest (IMHO) znacznie bezpieczniejszy niż kontrolery internetowe. To powiedziawszy, próbowałem integracji z Google Home, ale szybko straciłem wolę życia, gdy wykonanie poleceń czasami trwało kilkadziesiąt sekund lub wcale nie było wykonywane.

Oczywistym zastosowaniem w okresie Bożego Narodzenia jest sterowanie lampkami choinkowymi i (jeśli jesteś w ten sposób skłonny) oświetleniem zewnętrznym. Chociaż jest to proste zastosowanie, budując ten Instructable, otrzymasz super elastyczny kontroler gniazd, który może reagować na wejścia czujników i inne urządzenia w sieci domowej, takie jak Raspberry Pis z systemem Linux Motion.

Na przykład mam zestaw świateł kuchennych, które zapalają się, gdy kamera działająca w trybie „Ruch” wykryje ruch w kuchni, a następnie wyłączy je po pięciu minutach braku aktywności. Działa naprawdę dobrze!

Dzięki „Tasker” i „AutoTools SSH” ze sklepu Google Play możesz skonfigurować wszelkiego rodzaju fantazyjne piloty do telefonu.

Projekt opiera się na tanich płytkach odbiornika i nadajnika 433 MHz, które są szeroko dostępne w serwisie eBay. Są one kompatybilne z (przynajmniej w Wielkiej Brytanii) zdalnymi gniazdami sieciowymi 433 MHz sprzedawanymi z pilotami. Mój projekt obejmuje odbiornik, dzięki czemu nowe zestawy poleceń zdalnego sterowania można łatwo i szybko włączyć. Należy zwrócić uwagę - gniazda zdalne dostępne w Wielkiej Brytanii wydają się występować w dwóch wersjach - te z identyfikatorem zaprogramowanym za pomocą przełącznika na gnieździe i te oparte na programowaniu z pilota. Ten projekt jest kompatybilny z obydwoma, ale te pierwsze nie tracą swojej tożsamości w przypadku przerwy w dostawie prądu i dlatego są preferowane.

Projekt wykorzystuje starą obudowę routera - mam kilka takich i bardzo wygodnie mają większość niezbędnych złączy zewnętrznych, takich jak zasilanie, ethernet, USB i anteny. To, czego użyjesz, będzie zależeć od tego, co masz dostępne, więc ta instrukcja jest prawdopodobnie bardziej przydatna jako ogólny przewodnik niż zestaw instrukcji krok po kroku.

Chociaż nie jest to bezwzględnie konieczne w tym projekcie, dodałem również wentylator chłodzący i płytę kontrolera. Bez wentylatora Pi może się dość nagrzać (około 60°C). Szczegóły mogą być podane w późniejszej Instrukcji.

Powinienem wspomnieć, że nie jestem programistą. Oprogramowanie jest (w większości) napisane w Pythonie, a sprytne rzeczy są kopiowane od ludzi, którzy wiedzą, co robią. Uznałem źródła, gdzie mogę - jeśli jakieś pominąłem, daj mi znać, a poprawię tekst.

Instructable zakłada pewną zdolność lutowania i przejściową znajomość Pythona, Bash i rozmawiania z twoim Pi przez SSH (chociaż postaram się, aby instrukcje były tak wyczerpujące, jak to możliwe). Jest również napisany w brytyjskim angielskim, więc jeśli czytasz po drugiej stronie stawu, zignoruj dodatkowe litery w słowach i dziwne nazwy rzeczy (takie jak „gniazdka sieciowe”, które będziesz znać jako coś w rodzaju gniazdek ściennych).

Wszelkie komentarze, sugestie ulepszeń i zastosowań itp. są również mile widziane!

Krok 1: Przygotowanie sprawy

Przygotowanie sprawy
Przygotowanie sprawy
Przygotowanie sprawy
Przygotowanie sprawy
Przygotowanie sprawy
Przygotowanie sprawy

Do tego projektu użyłem starego routera TP-Link TD-W8960N. To fajny rozmiar i kiedy już wymyśliłam, jak się w nim ubrać, całkiem łatwo się nad nim pracuje.

Zachowałem też zasilacz 12v @ 1A routera, który jest trochę za słaby, ale w praktyce jest OK dla tej aplikacji.

Otwarcie obudowy polega na odkręceniu dwóch śrub w dolnej części obudowy, a następnie użyciu narzędzia do podważania wokół krawędzi obudowy, aby ułatwić otwieranie klipsów. Dwie śruby znajdują się pod gumowymi nóżkami z tyłu obudowy (patrz czerwone strzałki). Najtrudniejsze do otwarcia są te z przodu, ale miałem wiarę i wygięły się pod moim narzędziem do podważania.

Po otwarciu obudowy odkręć dwie nakrętki na złączach antenowych, aby wyjąć płytkę drukowaną.

Ponieważ później będziesz używać obu anten, odlutuj przewody koncentryczne na płytce drukowanej i odłóż je na bok.

Jeśli czujesz się odważny (tak jak ja), możesz wyjąć przycisk, gniazdo dc i gniazda RJ45 z płytki drukowanej. Najlepszym sposobem, jaki znalazłem, aby to zrobić, jest zaciśnięcie płyty w imadle i nagrzanie opalarki podczas podważania odpowiednim narzędziem do otwierania cienkich pudełek lub śrubokrętem. Logika polega na tym, że wszystkie połączenia lutowane są topione w tym samym czasie, co zmniejsza ogólne naprężenie cieplne plastikowej obudowy komponentu w porównaniu z użyciem lutownicy na każdym złączu. Taka jest przynajmniej teoria. W praktyce w grę wchodzi trochę szczęścia! Ile ciepła należy zastosować, jest kwestią osądu, ale bądź ostrożny i błądź zbyt mało. Jeśli wszystko pójdzie dobrze, otrzymasz elementy użytkowe pokazane na zdjęciu (zauważysz jednak stopioną gałkę przełącznika i lekko zdeformowaną listwę gniazdową RJ45!).

W przeciwnym razie przejdź do Internetu, aby kupić swoje bity.

Krok 2: Lista części

Raspberry Pi - Podejrzewam, że sprawdzi się każdy smak, ale użyłem 3B+

Płytka nadajnika 433 MHz - wyszukaj w serwisie eBay „Nadajnik RF 433 MHz z zestawem odbiornika do Arduino Arm Mcu Wireless” lub podobny

Płytka odbiorcza 433MHz - jw. Zwykle 1,98 £ za parę

Regulator Buck LM2596 - eBay, zwykle 1,95 GBP. Aby przekonwertować moc 12 V na 5 V dla Pi

Światłowód - wyszukaj w serwisie eBay „Kabel światłowodowy - 0,25/0,5/0,75/1/1,5/2/2,5/3 mm średnicy - przewodnik światła” - Użyłem rury 2 mm, ale łatwiej byłoby z nią pracować 1,5 mm (zapłaciłem £ 2,95 za 1m)

2-biegunowy miniaturowy przełącznik dwustabilny (miły mieć, ale opcjonalny)

Gniazdo USB typu A 180° do lutowania - przez eBay zapłaciłem 1,90 £ za dziesięć

Dwubiegunowy przełącznik wciskany (miły mieć, ale opcjonalny) - dostałem swój z płyty modemu / routera

Gniazdo(a) RJ45 - odzyskane z płyty modemu/routera

Gniazdo zasilania prądem stałym - za pośrednictwem serwisu eBay (10x gniazdo zasilania prądem stałym żeńskie złącze do montażu na panelu 5,5 x 2,1 mm 0,99)

Anteny 430MHz - konwertuj anteny 2GHz modemu/routera

Zasilacz 12V DC 12W (minimum) - najlepiej, gdy jest dostarczany z modemem/routerem. Jeśli nie, upewnij się, że powyższe gniazdo zasilania prądem stałym pasuje do tego, którego używasz. Wymaganie 12V jest określone przez nadajnik 433MHz

Części do modu wentylatora chłodzącego zostaną szczegółowo opisane w dalszej części instrukcji.

Krok 3: Materiały eksploatacyjne i narzędzia

Będziesz potrzebować następujących materiałów eksploatacyjnych:

Lutowane (zgodnie z wymaganiami)

Klej topliwy (w razie potrzeby)

Przewód połączeniowy - (np.) 22 i 24AWG (zgodnie z wymaganiami)

Rękaw termokurczliwy (zgodnie z wymaganiami)

Kot ofiarny. 5 kabli połączeniowych Ethernet

Sacrificial kabel połączeniowy USB 2.

Narzędzia:

Narzędzia do ściągania izolacji

Przecinaki do drutu (najlepiej przecinaki do płukania)

Narzędzie cenowe

Odpowiedni śrubokręt do demontażu obudowy.

Lutownica

Pistolet na klej

Suszarka do włosów (do zginania światłowodów i do wszelkich improwizowanych przerw fryzjerskich)

Odbiornik komunikacyjny FM 433 MHz (opcjonalnie - do rozwiązywania problemów z nadajnikiem) - (np.) AR1000

Krok 4: Montaż

montaż
montaż
montaż
montaż
montaż
montaż
montaż
montaż

Sposób montażu Pi i płytek pomocniczych zależy od używanej obudowy. Zdjęcia pokazują, co zrobiłem.

Pi znajduje się mniej więcej pośrodku obudowy, zapewniając wystarczająco dużo miejsca na użycie różnych złączy (zauważ, że HDMI nie jest używane, ponieważ Pi jest komunikowane przez SSH (tj.) „bezgłowe”.

Przymocowałem Pi do podstawy za pomocą kilku uratowanych plastikowych łączników (patrz zdjęcie). Ponieważ pudełko nie jest przeznaczone do użytku przenośnego, wystarczy użyć dwóch zapięć. Możesz z łatwością użyć śrub 2,5 mm z podkładkami lub nawet kleju termotopliwego (którym używałem w przeszłości - pamiętaj tylko, aby nie używać zbyt dużo i unikać jakichkolwiek elementów do montażu powierzchniowego na spodzie, ponieważ nieuchronnie będziesz mieć usunąć deskę za jakiś czas (pierwsze prawo budowy - będziesz musiał ją rozebrać)).

Użyłem gorącego kleju, aby przymocować różne deski do boków obudowy. Obowiązują te same uwagi, co powyżej.

Gdy wszystko jest na swoim miejscu, możesz wszystko połączyć.

Schemat blokowy pokazuje schemat okablowania, którego użyłem. Zwróć uwagę, że używam opcjonalnego przełącznika do przełączania zasilania między płytami nadajnika i odbiornika – prawdopodobnie jest to niewielkie ryzyko, ale nie chciałem smażyć odbiornika podczas transmisji.

Przyszło mi również do głowy, że przełącznik wciskany mógł zostać użyty do wdzięcznego wyłączenia Pi (w Internecie dostępnych jest wiele projektów). Nie zawracałem sobie głowy - w tym przypadku działa jak zwykły włącznik/wyłącznik zasilania. Muszę tylko uważać, aby wyłączyć Pi przez SSH przed naciśnięciem przełącznika.

Zauważysz, że światłowód używany do kierowania światła z dwóch diod LED na Pi i od diody LED stanu zasilania do przodu obudowy. Do wygięcia rurek użyłem ciepła z suszarki do włosów (zdecydowanie NIE WOLNO używać opalarki!). To bardzo próba i błąd, ale w końcu warto, ponieważ możesz bezpośrednio zobaczyć, co sygnalizują diody LED, zamiast polegać na oprogramowaniu i zewnętrznych diodach LED. To oczywiście twój wybór. Cięcie rur wykonuje się za pomocą ostrej pary przecinaków do drutu (najlepsze są przecinaki płaskie), ale można również użyć ostrych nożyczek. Ponownie, do mocowania rur można użyć kleju termotopliwego, ale należy uważać, aby użyć tylko niewielkiej ilości - która szybko się ochładza - ponieważ klej może zniekształcić rury.

Idealnie powinieneś zmodyfikować anteny. Zazwyczaj będą one przystosowane do pracy z częstotliwością 2 GHz i będą bardzo nieefektywne, gdy będą używane przy 433 MHz.

W tym celu należy najpierw zdjąć osłonę anteny, aby odsłonić przewód anteny. Myślę, że miałem szczęście, bo osłona z każdej anteny zdarła się z niewielką ilością buntu.

Wytnij w pokazanym miejscu, aby usunąć oryginalną antenę 2GHz i odsłonić współosiowy. Ostrożnie uzyskaj dostęp do wewnętrznego rdzenia, usuwając oplot i przylutuj go do nowego kawałka drutu, jak pokazano. Długość nowego przewodu wynosi w przybliżeniu 1/4 długości fali 433 MHz (tj.) długość = 0,25 * 3E8/433E6 = 17 cm. Dolną część można zwinąć za pomocą małego wiertła lub podobnego narzędzia, aby cała długość zmieściła się w osłonie anteny.

Przed ponownym montażem sprawdź, czy nie ma zwarcia między stykami anteny wewnętrznej i zewnętrznej.

Zmodyfikowałem tylko antenę nadajnika, ponieważ „głuchy” odbiornik jest prawdopodobnie korzystny podczas uczenia się kodów zdalnego sterowania RF (patrz dalej).

Połączenie Ethernet jest realizowane przez okablowanie Cat. 5 kabel połączeniowy do gniazda RJ45 uratowany z modemu. Przytnij kabel tak, aby pasował do odległości między gniazdem Ethernet Pi a gniazdem RJ45 obudowy i odsłoń wszystkie osiem przewodów. Użyj testera ciągłości, aby upewnić się, że połączysz pin 1 kabla z pinem 1 gniazda itd. Prostym sposobem na to jest podłączenie złącza do gniazda, do którego podłączasz przewody, i pierścień między stykami gniazda a gołymi końcami kabla. Ponieważ używane jest tylko jedno z czterech zewnętrznych gniazd RJ45, należy odpowiednio oznaczyć gniazdo przewodowe, aby uniknąć późniejszych kłopotliwych błędów.

Podobnie, złącze USB jest okablowane za pomocą protektorowego kabla połączeniowego USB 2, podłączonego między pinem 1 a pinem 1 itd. Złącze USB zewnętrznego świata jest przyklejane na gorąco do obudowy, wykorzystując otwór w obudowie pozostawiony po gnieździe linii telefonicznej.

Krok 5: Uwagi dotyczące nadajnika

Uwagi dotyczące nadajnika
Uwagi dotyczące nadajnika
Uwagi dotyczące nadajnika
Uwagi dotyczące nadajnika
Uwagi dotyczące nadajnika
Uwagi dotyczące nadajnika

Karty nadawczo-odbiorcze 433 MHz, których użyłem, są wszechobecne w Internecie, a ponieważ są tak tanie, zamówiłem dwie pary każdej (aby umożliwić eksperymentalne podróbki). Odkryłem, że odbiorniki są niezawodne, ale nadajnik, którego użyłem, wymagał modyfikacji, aby działał niezawodnie.

Schemat zakupionego przeze mnie nadajnika FS1000A* przedstawia schemat. Metodą prób i błędów odkryłem, że kondensator 3pF wymagał zainstalowania w pozycji C1 SoT (wybierz podczas testu), aby działał. Ponieważ mam szerokopasmowy odbiornik, który obejmuje 430 MHz, stosunkowo łatwo było rozwiązać ten problem. Jak możesz testować bez odbiornika, to ciekawe pytanie….

*Uwaga: kupiłem drugą partię nadajników po tym, jak nie mogłem uruchomić dwóch pierwszych. Wszystkim tym brakowało cewki kolektora. Hmmm!

Miałem kondensator 3pF w mojej skrzynce na śmieci, ale myślę, że dla większości ludzi tak nie będzie, a w każdym razie potrzebna wartość może być większa, powiedzmy 7pF. Prymitywne zastąpienie można wykonać za pomocą dwóch kawałków skręconego drutu (skrętka mojego znajomego ma pojemność około 100 pF na stopę, co daje wskazówkę dotyczącą długości), ale nie jest to zalecane, ponieważ mogą pojawić się inne problemy. Mam nadzieję, że będziesz miał szczęście i nie będziesz miał takiego problemu. Zawsze można było kupić droższy (a więc prawdopodobnie) lepiej wykonany nadajnik.

Należy również zauważyć, że częstotliwość nadajnika nie jest zbyt dokładna ani stabilna, ale w praktyce jest wystarczająco dobra, aby niezawodnie obsługiwać zdalne gniazda.

Należy również zwrócić uwagę, że otwór przelotowy obok napisu „ANT” na nadajniku NIE jest złączem antenowym – to ten w rogu bez oznaczenia (patrz zdjęcie). To był pierwszy błąd, który popełniłem….

Połączenie pinów, oznaczone jako „ATAD”, powinno oczywiście brzmieć „DATA”.

Krok 6: Przegląd oprogramowania

Przegląd oprogramowania
Przegląd oprogramowania

Proszę pamiętać, że nie jestem programistą. Jak wspomniano wcześniej, sprytne rzeczy to kod innych ludzi, ale wiem wystarczająco dużo, aby go uszczypnąć i dostosować, aby działał razem. Jest to również pierwszy Instructable, który opublikowałem z kodem, więc przepraszam, jeśli zrobiłem to źle! Jeśli masz jakieś pytania, miej to na uwadze…

Podstawowe oprogramowanie, z którego korzystałem, to:

  • Raspbian Stretch Lite
  • PiGPIO (fantastyczna biblioteka do sterowania serwami itp.)
  • Kod _433.py (do kodowania i dekodowania kodów sterujących RF) - link do strony internetowej PiGPIO.
  • Python3 (dostarczany z Raspbianem)

Dodatkowe oprogramowanie, z którego korzystam:

  • pyefem (oblicza czas świtu i zmierzchu - przydatne przy włączaniu światła)
  • Znakomity 'Tasker' i 'AutoTools SSH' do tworzenia pilota na moim telefonie z Androidem - patrz zdjęcie (oba dostępne w sklepie Google Play). [Jak stworzyć „scenę” Taskera wykracza poza zakres tego Instruktażu, ponieważ jest to dość stroma krzywa uczenia się, ale z przyjemnością omówię to, co zrobiłem]

Mój własny kod (w Pythonie). Surowe, ale funkcjonalne:

  • tx.py - menu i/lub oprogramowanie argumentu wiersza poleceń, które wysyła odpowiedni kod do nadajnika 433MHz.
  • dawn-dusk - oblicza czasy świtu i zmierzchu w mojej lokalizacji i aktualizuje crontab użytkownika (używany do lampek choinkowych itp.)

Powyższy kod osobisty można uzyskać za pośrednictwem GitHub:

Funkcjonalność projektu zapewnia kod PiGPIO oraz _433.py. Ten ostatni ma funkcję odbioru, która nasłuchuje poleceń zdalnego sterowania z pilota RF 433 MHz i dekoduje impulsy czasowe, tworząc wyjście, które można zapisać do późniejszego wykorzystania przez funkcję nadawania. Dzięki temu system może nauczyć się dowolnego „normalnego” pilota RF 433 MHz. Zasadniczo można go również użyć do nauki pilotów RF sąsiada. Zdecydowanie odradzałbym to, ponieważ sąsiedzi rzadko widzą zabawną stronę przypadkowo dzwoniących dzwonków do drzwi. Nie zrobiłbym tego.

Ustawiać

Ponieważ Pi w tej aplikacji jest uruchamiane „bezgłowo” (tj.) bez monitora lub klawiatury, musisz rozmawiać z nim przez ssh. Dostępnych jest wiele przewodników opisujących, jak skonfigurować Pi bezgłowe, ale aby wszystko było proste, zakładam, że najpierw uruchomisz Pi z monitorem i klawiaturą. Po uruchomieniu uruchom terminal i wpisz „sudo raspi-config”. Wybierz '5. Opcje interfejsu”, a następnie „P2 SSH”. Włącz serwer ssh i zamknij raspi-config (co prawdopodobnie zakończy się ponownym uruchomieniem).

Kolejna komunikacja z Pi może być następnie prowadzona ze zdalnego terminala przez ssh. Zauważ, że kod nie wymaga stałego adresu IP LAN dla Pi, ale z pewnością pomaga (i jest to z pewnością konieczne, jeśli zagłębisz się w kontrolę Tasker). Ponownie, istnieje wiele samouczków online, które opisują, jak to zrobić. Mój router domowy pozwala mi przypisać stały adres IP do adresu MAC Pi, więc robię to w ten sposób, zamiast edytować konfigurację Pi.

Instalacja PiGPIO:

ssh do Pi i wprowadź następujące polecenia:

aktualizacja sudo apt

sudo apt zainstaluj pigpio python-pigpio python3-pigpio

sudo apt zainstaluj git

Klon Gita

sudo apt install python3-RPi. GPIO

Aby uruchomić PiGPIO przy starcie:

crontab -e

dodaj następujący wiersz:

@reboot /usr/local/bin/pigpiod

Uzyskaj kod Pythona do przesyłania i dekodowania zdalnych kodów RF 433 MHz:

wget

rozpakuj _433_py.zip

Przenieś rozpakowany plik _433.py do odpowiedniego katalogu (np.) ~/software/apps

Wpisywanie (w tym katalogu)

_433.py

ustawia Pi w trybie 433 rx, czekając na zdemodulowane kody zdalnego sterowania RF na pinie 38 GPIO.

Przy podłączonym odbiorniku 433MHz, gdy w pobliżu używany jest pilot 433MHz, na ekranie pojawi się coś takiego jak następujące dane:

kod=5330005 bitów=24 (przerwa=12780 t0=422 t1=1236)

Te dane są używane w twoim programie w Pythonie do regeneracji transmisji z pilota.

Aby przesłać te dane do pliku w celu późniejszego wykorzystania, uruchom:

_433.py > ~/software/apps/remotedata.txt

Gdy już masz dane, następnym krokiem jest użycie ich do edycji kodu 'tx.py', który możesz skopiować z mojego repozytorium GitHub. Ten kod wykorzystuje dane do generowania przebiegów rozumianych przez zdalne gniazda, które mają być transmitowane przez nadajnik 433 MHz. Mam nadzieję, że wymagane zmiany będą dość oczywiste, a reszta zależy od Ciebie…..

Zalecana: