W tym artykule pokaże, jak używać Raspberry Pi i przełącznika przekaźnika 5V, aby włączyć i wyłączać żarówkę z urządzenia mobilnego. Artykuł zawiera aplikację internetową, do której można uzyskać dostęp z dowolnego urządzenia w sieci i kontrolować dowolne urządzenia domowe AC w domu bezprzewodowo. Zacznijmy więc z naszym prostym eksperymentem automatyki domowej Raspberry Pi.
Rzeczy, których będziesz potrzebować
Jeśli chcesz użyć Raspberry Pi bez głowy (przez SSH lub VNC), będziesz potrzebować następujących rzeczy:
1) Raspberry Pi 3 lub Raspberry Pi 4.
2) przełącznik przekaźnika 5 V.
3) przewody elektryczne.
4) 3 przewody łączące kobiety do kobiet.
5) AC Lightbulb.
6) uchwyt na żarówkę AC.
7) Wtyczka AC.
8) narzędzie do wiatru i striptizerki.
9) śrubokręta CR-V 3.
10) Micro-USB (Raspberry Pi 3) lub USB Type-C (Raspberry Pi 4) Adapter.
11) 16 GB lub 32 GB karta microSD z błyskiem Raspberry Pi.
12) Łączność sieciowa na Raspberry Pi.
13) Laptop lub komputer stacjonarny do dostępu do zdalnego pulpitu VNC lub dostęp do Raspberry Pi.
Jeśli nie chcesz zdalnie uzyskiwać dostępu do Raspberry Pi za pośrednictwem SSH lub VNC, potrzebujesz również następujących czynności:
14) Monitor.
15) HDMI lub kabel Micro-HDMI.
16) klawiatura.
17) Mysz.
Jeśli potrzebujesz pomocy w flashowaniu obrazu Raspberry Pi OS na karcie MicroSD, sprawdź artykuł, jak zainstalować i użyć Raspberry Pi Imager.
Jeśli jesteś początkującym Raspberry Pi i potrzebujesz pomocy w instalacji Raspberry Pi OS na Raspberry Pi, sprawdź artykuł, jak zainstalować Raspberry Pi OS na Raspberry Pi 4.
Ponadto, jeśli potrzebujesz pomocy w bezgłowej konfiguracji Raspberry Pi, sprawdź artykuł, jak zainstalować i skonfigurować system OS Raspberry Pi na Raspberry Pi 4 bez monitora zewnętrznego.
Obrazy wszystkich wymaganych narzędzi podano poniżej.
Zasilanie Raspberry Pi
Następnie podłącz kabel zasilający do Raspberry Pi i zasilaj na Raspberry Pi.
Po włączeniu Raspberry Pi możesz połączyć się z Raspberry Pi przez VNC lub SSH. Lub możesz podłączyć klawiaturę, mysz i monitor do Raspberry Pi, aby uzyskać bezpośredni dostęp.
Pinoty przekaźników 5 V
Przekaźnik to zasadniczo przełącznik. Ale w przeciwieństwie do tradycyjnego przełącznika, przekaźnik może być kontrolowany przez niewielką ilość napięcia prądu stałego.
Przekaźnik 5V jest bardzo łatwy w użyciu. Ma dwie strony: jedna strona służy do kontrolowania przekaźnika za pomocą DC o niskim napięciu (z Raspberry Pi), a druga strona służy do kontrolowania prądu przemiennego wysokiego napięcia (i.mi., żarówka), w zależności od stanu przekaźnika.
Z jednej strony przekaźnik ma dwie diody LED (jeden czerwony i jeden zielony) i trzy szpilki (W, GND, I VCC). Te trzy szpilki są używane do kontrolowania przekaźnika z Raspberry Pi.
Pierwsze dwa szpilki po drugiej stronie są używane do kontrolowania urządzenia domowego AC.
Łączenie przekaźnika 5 V z Raspberry Pi
Aby podłączyć przekaźnik 5 V z Raspberry Pi, będziesz potrzebować trzech przewodów łączących żeńs.
Podłącz jedną stronę przewodów łączących do W (żółty drut), GND (czarny drut) i VCC (czerwony drut) szpilki w przekaźniku 5 V, jak pokazano poniżej.
Druga strona przewodów trafia do pinów nagłówka GPIO z Raspberry Pi, jak pokazano na poniższym obrazku.
Czerwony drut powinien przejść do Pin 2 (VCC) Raspberry Pi.
Czarny drut powinien przejść do Pin 6 (GND) Raspberry Pi.
Żółty drut powinien przejść do Pin 7 (GPIO 4) Raspberry Pi.
Po podłączeniu przekaźnika 5 V z Raspberry Pi, powinien wyglądać jak pokazano na poniższym obrazku.
Umożliwienie GPIO dostęp do użytkownika logowania
Aby umożliwić dostęp do pinów GPIO, domyślny użytkownik logowania Raspberry Pi OS Liczba Pi należy dodać do GPIO Grupa.
Możesz dodać Liczba Pi użytkownik do GPIO grupa z następującym poleceniem:
$ sudo Usermod -Ag gpio $ (whoami)
Aby zmienić zmiany, ponownie uruchom Raspberry Pi z następującym poleceniem:
$ sudo restart
Tworzenie katalogu projektów
Dobrym pomysłem jest również zorganizowanie wszystkich plików projektu.
Aby utrzymać zorganizowane pliki projektu, utwórz katalog projektu ~/www oraz wymagane podkatalog z następującym poleceniem:
$ mkdir -pv ~/www/szablony, static
Po utworzeniu katalogu projektu przejdź do katalogu projektu w następujący sposób:
$ cd ~/www
Przełączanie przekaźnika 5 V z Raspberry Pi
Teraz, gdy podłączyłeś przekaźnik 5 V do Raspberry Pi, przekażesz przekaźnik z Raspberry Pi za pomocą języka programowania Python.
Uwaga: Przełączanie to termin używany w elektronice. Przełączanie oznacza kontrolowanie (i.mi. włączanie/wyłączenie) pewne urządzenie elektroniczne.
Aby eksperymentować z przeniesieniem przekaźnika za pomocą języka programowania Pythona, utwórz nowy test skryptu Python.PY w katalogu projektu w następujący sposób:
Test $ nano.py
Wpisz następujące linie kodów w teście.Py Python skrypt.
Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować test.py Skrypt Pythona.
Tutaj Import linii 1 PROWADZONY z GPiOZERO biblioteka i linia 2 importuje spać funkcja z czas biblioteka.
Linie 6-14 znajdują się w nieskończonej pętli.
Linia 6 inicjuje diodę LED w GPIO 4 z Raspberry Pi, który jest połączony z W Pin of the Relay.
Wiersz 8 obraca się przekaźnik za pomocą NA() metoda.
Wiersz 9 drukuje wiadomość w konsoli za pomocą wydrukować() funkcjonować.
Wiersz 10 opóźnia wykonanie następnego wiersza kodu przez pięć sekund za pomocą spać() funkcjonować.
Linia 12 wyłącza przekaźnik za pomocą zamknąć() metoda.
W ten sam sposób wiersz 9 drukuje wiadomość na konsoli za pomocą wydrukować() Funkcja i wiersz 10 opóźnia wykonanie następnego wiersza kodu przez 5 sekund za pomocą spać() funkcjonować.
Następnie uruchom test.py Skrypt Pythona w następujący sposób:
$ Python3 Test.py
test.py Skrypt Python powinien zacząć przełączać przekaźnik 5V. Powinieneś usłyszeć dźwięk kliknięcia co pięć sekund. Gdy przekaźnik przełącza się (od włączania na wyłączenie lub od wyłączenia), hałas kliknięcia. Oznacza to, że przekaźnik działa poprawnie.
Gdy przekaźnik znajduje się w stanie poza Stanem (normalne obciążenie AC jest odłączone), tylko czerwony Dioda LED powinna się rozjaśnić, jak widać na poniższym obrazku.
Gdy przekaźnik znajduje się w stanie (obciążenie prądu przemiennego), oba zielony LED i czerwony Dioda LED powinna się rozjaśnić, jak widać na poniższym obrazku.
Po zakończeniu testu naciśnij + C zakończyć test.py scenariusz.
Łączenie AC Lightbulb z przekaźnikiem 5V
Przekaźnik 5V powinien teraz działać poprawnie. Teraz podłączysz swoje urządzenie domowe AC (w tym przypadku żarówka) do przekaźnika 5V.
Najpierw wytnij czarny przewód elektryczny podłączony do żarówki za pomocą wirus.
Po odcięciu czarnego przewodu elektrycznego podłączonego do żarówki z wiatrem, powinien wyglądać jak pokazano na poniższym obrazku.
Następnie zdejmij warstwę zewnętrzną, aby odsłonić około ½ cala drutu elektrycznego, jak pokazano na poniższym obrazku.
Następnie złóż odsłonięte przewody, jak pokazano na poniższym obrazku.
Poluzuj oznaczone śruby przekaźnika za pomocą śrubokręta CV-3.
Włóż odsłonięte przewody, które pozbawiłeś i złożyłeś wcześniej w dwóch zaciskach śrubowych i dokręć śruby śrubokrętem CV-3.
Testowanie przełączania przekaźnika po podłączeniu ładunku prądu przemiennego
Po podłączeniu ładunku prądu przemiennego do przekaźnika 5 V, podłącz wtyczkę żarówki do gniazda ściennego.
Uruchom test.py Skrypt Pythona z katalogu projektu w następujący sposób:
$ Python3 Test.py
test.py Skrypt Pythona powinien rozpocząć przełączanie przekaźnika 5 V, który z kolei przełączy żarówkę AC o wysokim napięciu w odstępach pięciosekundowych. AC Lighbulb powinna pozostać na pięć sekund, a następnie pozostać z dala przez pięć sekund i tak dalej.
Żarówka jest wyłączona na poniższym obrazku.
Żarówka jest włączona na poniższym obrazku.
Jak widać, możemy zmienić przekaźnik i kontrolować żarówkę AC o wysokim napięciu za pomocą języka programowania Python. Więc naciśnij + C zakończyć test.py scenariusz.
Przejdźmy teraz do następnej sekcji.
Pisanie aplikacji internetowej Automation Home Automation
W tej sekcji pokażę, jak napisać aplikację internetową opartą na interfejsie API za pomocą języka programowania Python. Możesz użyć aplikacji internetowej do kontrolowania przekaźnika i urządzeń (urządzeń) AC lub urządzeń elektrycznych podłączonych do przekaźnika z przeglądarki internetowej.
NOTATKA: Wszystkie kody pokazane w tej sekcji są dostępne w moim repozytorium Github Shovon8/Raspberry-Pi-Home-Automation. Jeśli chcesz, możesz sklonować moje repozytorium Github i pominąć wszystkie kody.
Utwórz serwer.Skrypt PY Python w katalogu projektu w następujący sposób:
$ Nano Server.py
Wpisz następujące wiersze kodów w serwer.py Skrypt Pythona.
Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować serwer.py Skrypt Pythona.
Tutaj wiersze 1-3 importuj wszystkie niezbędne komponenty z odpowiednich bibliotek.
Linia 5 tworzy puste pokoje słownik. W tym słowniku będziemy przechowywać wszystkie szczegóły urządzenia AC, które chcemy kontrolować z aplikacji internetowej.
pokoje Szczegóły są przechowywane w wierszach 7-29.
Omówmy strukturę danych jednego z pokoi.
Tutaj nazwa pokoju będzie Pokój 1. Więc, Pokój 1 jest kluczem do pokoje słownik.
Pokój 1 Klucz przechowuje tablicę jako wartość. Liczba elementów tablicy jest równa liczbie urządzeń domowych AC, które masz w tym pokoju, które chcesz również kontrolować z aplikacji internetowej. W tym przypadku mamy dwa urządzenia domowe AC, które chcemy kontrolować: Światło 1 I Fan 1.
Każda definicja urządzenia domowego ma ID. ID jest losowo generowanym UUID. Służy to do określenia, który pokój chcemy kontrolować za pomocą interfejsu API.
Urządzenie domowe ma również wszystkie następujące:
Linia 31 inicjuje serwer WWW Python Flask Python.
Wiersz 32 konfiguruje serwer WWW Fled.
Linie 34-36 Wyślij indeks.html plik z szablony/ Katalog podczas wizyty w aplikacji internetowej Automation Home Automation.
Kolba używa Jinja2 szablonów języka, aby renderować indeks.html plik. Więc minąłem pokoje słownik do indeks.html plik. Jinja2 renderuje stronę główną za pomocą pokoje dane.
Funkcja toggle_appliance_status () W wierszach 39-52 służy do włączenia urządzenia domowego, jeśli jest on wyłączone i wyłączanie urządzenia domowego, jeśli jest ono na korzystaniu z urządzenia ID.
Wraca PRAWDA Jeśli operacja przełączania zakończy się powodzeniem. Jeśli wystąpi błąd, powróci FAŁSZ.
Linie 55-57 służą do przełączania urządzenia domowego za pomocą /urządzenie/przełącz/ Punkt końcowy interfejsu API WebServer. Tutaj, ID to identyfikator urządzenia domowego.
Utwórz indeks.html plik w szablony/ Katalog twojego projektu w następujący sposób:
$ nano szablony/indeks.html
Wpisz następujące wiersze kodów w indeks.html scenariusz.
pokój
Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować indeks.html plik.
Stwórz styl.CSS plik w statyczny/ Katalog twojego projektu w następujący sposób:
$ nano statyczny/styl.CSS
Wpisz następujące wiersze kodów w styl.CSS plik.
Po zakończeniu naciśnij + X śledzony przez Y I Aby uratować styl.CSS plik.
Stworzyć App.JS plik w statyczny/ Katalog twojego projektu w następujący sposób:
$ nano static/app.JS
Wpisz następujące wiersze kodów w App.JS plik.
Po zakończeniu naciśnij + X śledzony przez Y i uratować App.JS plik.
Tutaj linia 1 działa główny() Funkcja, gdy strona internetowa kończy ładowanie.
w indeks.html plik, każde urządzenie domowe jest zamknięte w urządzenie klasa. Linie 26-29 służą do wyboru każdego urządzenia domowego ze strony internetowej i dołączania Kliknij zdarzenie urządzenia. Kiedy ktoś kliknie urządzenie domowe ze strony internetowej, toggleappliancestate () funkcja będzie działać.
W wierszach 4-23, toggleappliancestate () funkcja służy do żądania /urządzenie/przełącz/ punkt końcowy WebServer w celu zmiany stanu klikniętego urządzenia domowego. Żądanie jest składane w tle za pośrednictwem Ajax. Po otrzymaniu odpowiedzi strona internetowa jest odpowiednio aktualizowana.
Przejść do statyczny/ Katalog w katalogu projektu w następujący sposób:
$ cd statyczny/
Pobierz czcionkę niesamowitą z następującym poleceniem:
$ wget https: // użyj.Fontawesome.com/wydania/v5.15.1/Fontawesome-5.15.1-Web.zamek błyskawiczny
Po pobraniu Font Awesome, należy znaleźć nowy plik zip Fontawesome-5.15.1-Web.zamek błyskawiczny w statyczny/ informator.
$ ls -lh
Rozpakuj Fontawesome-5.15.1-Web.zamek błyskawiczny Plik z następującym poleceniem:
$ Unzip Fontawesome-Free-5.15.1-Web.zamek błyskawiczny
Fontawesome-5.15.1-Web.zamek błyskawiczny Plik należy teraz rozpakować.
Nowy katalog Fontawesome-5.15.1-Web/ należy utworzyć w katalogu statycznym/.
$ ls -lh
Zmień nazwę katalogu Fontawesome-5.15.1-Web/ Do fontawesome/ Z następującym poleceniem:
$ mv -v fontawesome-fre-5.15.1-WEB Fontawesome
Teraz nie potrzebujesz już Fontawesome-5.15.1-Web.zamek błyskawiczny plik. Więc usuń Fontawesome-5.15.1-Web.zamek błyskawiczny Plik z następującym poleceniem:
$ rm -v fontawesome-fre-5.15.1-Web.zamek błyskawiczny
statyczny/ Struktura katalogu powinna wyglądać jak pokazano na zrzucie ekranu poniżej.
$ ls -lh
Wróć do katalogu projektu ~/www następująco:
$ CD…
Testowanie aplikacji internetowej Automation Home Automation
Aby przetestować aplikację internetową Automation Home Automation, uruchom następujące polecenie w katalogu projektu:
$ Flask_app = serwer.Py Flask Run
Aplikacja internetowa powinna być dostępna na porcie 5000 z Raspberry Pi.
Z przeglądarki internetowej Chromium odwiedź http: // localhost: 5000. Aplikacja internetowa Home Automation powinna załadować.
Kliknij ikonę żarówki, wskazaną na poniższym obrazku.
AC Lightbulb należy teraz włączyć. Kolor ikony powinien również zmienić się na zielony, co wskazuje, że żarówka jest włączona.
Tak więc aplikacja internetowa Home Automation działa. Naciskać + C Aby zakończyć serwer Web.
Tworzenie usługi SystemD dla aplikacji internetowej Automation Home Automation
W tej sekcji pokażę, jak utworzyć plik serwisowy SystemD dla aplikacji internetowej Automation Home Automation, aby automatycznie uruchomiła się od rozruchu.
Najpierw stwórz Raspi-Home-Automation.praca Plik w katalogu projektu w następujący sposób:
$ Nano Raspi-Home-Automation.praca
Wpisz następujące wiersze w automacji Raspi-Home.plik serwisowy.
[Jednostka]
Opis = Raspberry Pi Home Automation Service
Po = sieć.cel
[Praca]
WorkingDirectory =/home/pi/www
Środowisko = flask_app = serwer.py
Środowisko = flask_env = produkcja
ExecStart =/usr/bin/folask Run - -Host = 0.0.0.0
Standardoutput = dziedzictwo
Standarderror = dziedzictwo
Restart = zawsze
Użytkownik = PI
[Zainstalować]
Wantby = Multi-User.cel
Po zakończeniu naciśnij + X śledzony przez Y i uratować Raspi-Home-Automation.praca plik.
Skopiuj Raspi-Home-Automation.praca plik do /etc/systemd/system/ Katalog z następującym poleceniem:
$ sudo cp -v raspi-home-automation.serwis/etc/systemd/system/
Załaduj ponownie demony systemowe, aby zmiany w następują w następujący sposób:
$ sudo systemctl demon-powód
Dodaj Raspi-Home-Automation Obsługa uruchamiania systemu Raspberry Pi OS z następującym poleceniem:
$ sudo systemCtl włącza Raspi-home-automation.praca
Uruchom ponownie Raspberry Pi z następującym poleceniem:
$ sudo restart
Kiedyś Raspberry Pi buty, Raspi-Home-Automation usługa powinna być aktywna/działająca, jak widać na zrzucie ekranu poniżej.
$ sudo systemCtl Status Raspi-home-automation.praca
Dostęp do aplikacji internetowej Automation Home Automation z innych urządzeń
Aby uzyskać dostęp do aplikacji internetowej Automation z innych urządzeń w sieci domowej, musisz znać adres IP swojego urządzenia Raspberry Pi.
Adres IP swojego urządzenia Raspberry Pi 4 z interfejsu zarządzania internetem routera domowego. W moim przypadku adres IP to 192.168.0.103. To będzie inne dla Ciebie. Pamiętaj więc, aby odtąd zastąpić moją IP swoją.
Jeśli masz dostęp do konsoli Raspberry Pi, możesz również uruchomić następujące polecenie, aby znaleźć adres IP,.
$ hostName -i
Gdy znasz adres IP swojego urządzenia Raspberry Pi, możesz uzyskać do niego dostęp z dowolnego urządzenia w sieci domowej.
Jak widać na zrzucie ekranu poniżej, uzyskałem dostęp do aplikacji internetowej Home Automation z mojego smartfona z Androidem.
Pamiętaj, aby podłączyć wtyczkę żarówki do wylotu zasilania ściany.
Żarówka powinna być domyślnie wyłączona.
Jeśli dotkniesz ikonę żarówki z aplikacji internetowej Automation Home Automation, kolor żarówki powinien zmienić się na zielony, co wskazuje, że żarówka jest włączona.
Jak widać na poniższym obrazku, żarówka jest włączona.
Wniosek
W tym artykule pokazano, jak użyć przekaźnika 5 V do kontrolowania urządzenia elektrycznego AC o wysokim napięciu z Raspberry Pi za pomocą języka programowania Python. Artykuł pokazał również, jak napisać aplikację internetową Python Flask opartą na API, aby kontrolować przekaźnik z przeglądarki internetowej. Ten artykuł powinien pomóc Ci zacząć od automatyzacji domowej za pomocą Raspberry Pi.