Skonfiguruj automatykę domową Raspberry Pi

Set Up Raspberry Pi Home Automation



Jedną z najważniejszych rzeczy dla automatyki domowej jest sterowanie wysokim napięciem AC za pomocą niskiego napięcia DC. Do sterowania wysokim napięciem AC z Raspberry Pi potrzebny jest przełącznik przekaźnika 5V. Przełącznikiem przekaźnika można sterować za pomocą pinów GPIO Raspberry Pi. Przełącznik przekaźnikowy może następnie sterować urządzeniami gospodarstwa domowego AC za pośrednictwem Raspberry Pi.

W tym artykule dowiesz się, jak używać Raspberry Pi i przełącznika przekaźnika 5 V do włączania i wyłączania żarówki na urządzeniu mobilnym. Artykuł zawiera aplikację internetową, do której można uzyskać dostęp z dowolnego urządzenia w sieci i bezprzewodowo sterować dowolnymi urządzeniami gospodarstwa domowego AC w ​​domu. Zacznijmy więc od naszego prostego eksperymentu automatyki domowej Raspberry Pi.







Rzeczy, których będziesz potrzebować

Jeśli chcesz używać bezgłowego Raspberry Pi (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 żeńsko-żeńskie.
5) Żarówka AC.
6) Uchwyt żarówki AC.
7) Wtyczka AC.
8) Narzędzie do cięcia drutu i ściągacza izolacji.
9) Wkrętak CR-V 3.
10) Zasilacz Micro-USB (Raspberry Pi 3) lub USB Type-C (Raspberry Pi 4).
11) Karta microSD 16 GB lub 32 GB z flashowanym systemem Raspberry Pi.
12) Łączność sieciowa na Raspberry Pi.
13) Laptop lub komputer stacjonarny do zdalnego dostępu do pulpitu VNC lub dostępu SSH do Raspberry Pi.



Jeśli nie chcesz uzyskać zdalnego dostępu do Raspberry Pi przez SSH lub VNC, będziesz potrzebować również:





14) Monitor.
15) Kabel HDMI lub micro-HDMI.
16) Klawiatura.
17) Mysz.

Jeśli potrzebujesz pomocy przy flashowaniu obrazu Raspberry Pi OS na kartę microSD, zapoznaj się z artykułem Jak zainstalować i używać Raspberry Pi Imager.



Jeśli jesteś początkującym Raspberry Pi i potrzebujesz pomocy przy instalacji Raspberry Pi OS na Raspberry Pi, zapoznaj się z artykułem Jak zainstalować system operacyjny Raspberry Pi na Raspberry Pi 4.

Ponadto, jeśli potrzebujesz pomocy z bezgłową konfiguracją Raspberry Pi, zapoznaj się z artykułem Jak zainstalować i skonfigurować Raspberry Pi OS na Raspberry Pi 4 bez zewnętrznego monitora.

Zdjęcia wszystkich wymaganych narzędzi znajdują się poniżej.

Włączanie Raspberry Pi

Następnie podłącz kabel zasilający do Raspberry Pi i włącz Raspberry Pi.

Po włączeniu Raspberry Pi możesz połączyć się z Raspberry Pi przez VNC lub SSH. Możesz też podłączyć klawiaturę, mysz i monitor do Raspberry Pi, aby uzyskać do niego bezpośredni dostęp.

Wyprowadzenia przekaźnika 5 V

Przekaźnik to w zasadzie przełącznik. Ale w przeciwieństwie do tradycyjnego przełącznika, przekaźnik może być sterowany niewielką ilością napięcia stałego.

Przekaźnik 5V jest bardzo łatwy w użyciu. Ma dwie strony: jedna strona służy do sterowania przekaźnikiem przez niskonapięciowe DC (z Raspberry Pi), a druga strona służy do sterowania wysokim napięciem AC (np. żarówka), w zależności od stanu przekaźnika .


Z jednej strony przekaźnik posiada dwie diody LED (jedna czerwona i jedna zielona) oraz trzy piny ( W, GND, oraz VCC ). Te trzy piny służą do sterowania przekaźnikiem z Raspberry Pi.

Pierwsze dwa piny po drugiej stronie służą do sterowania urządzeniem domowym AC.

Podłączanie przekaźnika 5V do Raspberry Pi

Aby podłączyć przekaźnik 5 V do Raspberry Pi, potrzebne są trzy przewody łączące żeńsko-żeńskie.

Podłącz jedną stronę przewodów łączących do W (żółty przewód), GND (czarny przewód) i VCC (czerwony przewód) piny w przekaźniku 5V, jak pokazano poniżej.


Druga strona przewodów przechodzi do pinów nagłówka GPIO Raspberry Pi, jak pokazano na poniższym obrazku.

Czerwony przewód powinien wejść do PIN 2 (VCC) Raspberry Pi.
Czarny przewód powinien wejść do PIN 6 (GND) Raspberry Pi.
Żółty przewód powinien wejść do PIN 7 (GPIO 4) Raspberry Pi.


Po podłączeniu przekaźnika 5 V do Raspberry Pi powinien on wyglądać tak, jak pokazano na poniższym obrazku.

Zezwalanie na dostęp GPIO do logowania użytkownika

Aby umożliwić dostęp do pinów GPIO, domyślny użytkownik logowania w Raspberry Pi OS Liczba Pi należy dodać do gpio Grupa.

Możesz dodać Liczba Pi użytkownik do gpio pogrupuj za pomocą następującego polecenia:

$sudomod użytkownika-aGgpio $(kim jestem)


Aby zmiany odniosły skutek, uruchom ponownie Raspberry Pi za pomocą następującego polecenia:

$sudorestart

Tworzenie katalogu projektów

Dobrym pomysłem jest również uporządkowanie wszystkich plików projektu.

Aby zachować porządek w plikach projektu, utwórz katalog projektu ~/www i wymagane podkatalogi za pomocą następującego polecenia:

$mkdir -pv~/www/{szablony, statyczne}


Po utworzeniu katalogu projektu przejdź do katalogu projektu w następujący sposób:

$Płyta CD~/www

Przełączanie przekaźnika 5V z Raspberry Pi

Po podłączeniu przekaźnika 5V do Raspberry Pi, przełączysz przekaźnik z Raspberry Pi za pomocą języka programowania Python.

UWAGA: Przełączanie to termin używany w elektronice. Przełączanie oznacza sterowanie (tj. włączanie/wyłączanie) określonego urządzenia elektronicznego.

Aby poeksperymentować z przełączaniem przekaźnika za pomocą języka programowania Python, utwórz nowy skrypt Python test.py w katalogu projektu w następujący sposób:

$nanotest.py


Wpisz następujące wiersze kodu w skrypcie test.py Python.

zgpiozeroimportPROWADZONY
z czas importspać

podczas Prawdziwe:
przekaźnik=PROWADZONY(4)
wydrukować('Polegać na')
spać(5)

przekaźnik.blisko()
wydrukować(„Przekaźnik: wyłączony”)
spać(5)

Gdy skończysz, naciśnij + X śledzony przez ORAZ oraz uratować test.py Skrypt Pythona.


Tutaj import linii 1 PROWADZONY od gpiozero biblioteka, a wiersz 2 importuje spać funkcja z czas Biblioteka.


Linie 6-14 znajdują się w nieskończonej pętli.


Linia 6 inicjalizuje diodę LED w GPIO 4 Raspberry Pi, który jest podłączony do W pin przekaźnika.


Linia 8 włącza przekaźnik za pomocą na() metoda.

Linia 9 drukuje komunikat w konsoli za pomocą wydrukować() funkcjonować.

Linia 10 opóźnia wykonanie następnej linii kodu o pięć sekund za pomocą spać() funkcjonować.


Linia 12 wyłącza przekaźnik za pomocą blisko() metoda.

W ten sam sposób, wiersz 9 wypisuje komunikat na konsoli za pomocą wydrukować() funkcja i linia 10 opóźniają wykonanie następnej linii kodu o 5 sekund za pomocą spać() funkcjonować.


Następnie uruchom test.py Skrypt Pythona w następujący sposób:

$python3 test.py


ten test.py Skrypt Pythona powinien zacząć przełączać przekaźnik 5V. Powinieneś słyszeć kliknięcie co pięć sekund. Gdy przekaźnik przełącza się w stan (z włączony na wyłączony lub z wyłączony na włączony), wydaje odgłos kliknięcia. Oznacza to, że przekaźnik działa prawidłowo.


Gdy przekaźnik jest w stanie wyłączonym (praca normalna – obciążenie AC jest odłączone), tylko Internet Dioda powinna się zaświecić, jak widać na poniższym obrazku.


Gdy przekaźnik jest w stanie włączonym (obciążenie AC jest podłączone), oba Zielony LED i ten Internet Dioda powinna się zaświecić, jak widać na poniższym obrazku.


Po zakończeniu testowania naciśnij + C zakończyć test.py scenariusz.

Podłączanie żarówki AC do przekaźnika 5 V

Przekaźnik 5V powinien teraz działać poprawnie. Teraz podłączysz swoje urządzenie domowe AC (w tym przypadku żarówkę) do przekaźnika 5V.

Najpierw przeciąć czarny przewód elektryczny podłączony do żarówki za pomocą przecinaka do drutu.


Po przecięciu czarnego przewodu elektrycznego podłączonego do żarówki za pomocą przecinaka do drutu, powinien on wyglądać tak, jak pokazano na poniższym obrazku.


Następnie zdejmij zewnętrzną warstwę, aby odsłonić około ½ cala przewodu elektrycznego, jak pokazano na poniższym obrazku.


Następnie złóż odsłonięte przewody, jak pokazano na poniższym obrazku.


Poluzuj zaznaczone śruby przekaźnika za pomocą śrubokręta CV-3.


Włóż odsłonięte i złożone wcześniej odsłonięte przewody do dwóch zacisków śrubowych i dokręć śruby śrubokrętem CV-3.

Testowanie przełączania przekaźnika po podłączeniu obciążenia AC

Po podłączeniu obciążenia AC do przekaźnika 5 V podłącz wtyczkę żarówki do gniazdka ściennego.


Uruchom test.py Skrypt Pythona z katalogu projektu w następujący sposób:

$python3 test.py


ten test.py Skrypt Pythona powinien zacząć przełączać przekaźnik 5V, który z kolei będzie przełączał żarówkę wysokiego napięcia AC w ​​pięciosekundowych odstępach. Żarówka AC powinna świecić się przez pięć sekund, a następnie zgasnąć przez pięć sekund i tak dalej.

Na poniższym obrazku żarówka jest wyłączona.


Żarówka jest włączona na poniższym obrazku.


Jak widać, możemy przełączyć przekaźnik i sterować wysokonapięciową żarówką AC 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 do automatyzacji domu

W tej sekcji pokażę, jak napisać aplikację internetową opartą na API przy użyciu języka programowania Python. Możesz użyć aplikacji internetowej do sterowania przekaźnikiem i urządzeniami gospodarstwa domowego AC lub urządzeniami elektrycznymi podłączonymi 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 skrypt server.py Python w katalogu projektu w następujący sposób:

$nanoserwer.py


Wpisz następujące wiersze kodów w serwer.py Skrypt Pythona.

zkolbaimportKolba,jsonify,url_for,render_template
zgpiozeroimportPROWADZONY
zuuidimportuuid4
pokoje= {}
pokoje['Pokój 1'] = [{
'NS': uuid4(),
'Nazwa':„Światło 1”,
'Ikona':„fa fa-żarówka”,
'status':Fałszywe,
„przekaźnik”:4,
„instancja przekaźnika”:Fałszywe
}, {
'NS': uuid4(),
'Nazwa':„Wentylator 1”,
'Ikona':„fa fa-fan”,
'status':Fałszywe,
„przekaźnik”:6,
„instancja przekaźnika”:Fałszywe
}]
pokoje[„Łazienka 1”] = [{
'NS': uuid4(),
'Nazwa':„Światło 1”,
'Ikona':„fa fa-żarówka”,
'status':Fałszywe,
„przekaźnik”:5,
„instancja przekaźnika”:Fałszywe
}]
aplikacja=Kolba(__Nazwa__)
aplikacja.konfiguracja[„SEND_FILE_MAX_AGE_DEFAULT”] = 0
@aplikacja.trasa('/')
definitywnieDom():
powrótrender_template('./indeks.html',pokoje=pokoje)
definitywnietoggle_appliance_status(NS):
dlaPokójwpokoje:
dlaurządzeniewpokoje[Pokój]:
Jeśli P(urządzenie['NS']) == NS:
Jeśliurządzenie[„instancja przekaźnika”]:
urządzenie[„instancja przekaźnika”].blisko()
urządzenie[„instancja przekaźnika”] = Fałszywe
w przeciwnym razie:
urządzenie[„instancja przekaźnika”] =PROWADZONY(urządzenie[„przekaźnik”])
urządzenie[„instancja przekaźnika”].na()
urządzenie['status'] = nieurządzenie['status']
powrót Prawdziwe
powrót Fałszywe
@aplikacja.trasa(„/urządzenie/przełącz/”)
definitywnieprzełącznik_urządzenia(NS):
powrótjsonify({'status': toggle_appliance_status(NS)})

Gdy skończysz, naciśnij + X śledzony przez ORAZ oraz uratować serwer.py Skrypt Pythona.


Tutaj wiersze 1-3 importują wszystkie niezbędne komponenty z odpowiednich bibliotek.


Linia 5 tworzy pustą pokoje słownik. W tym słowniku będziemy przechowywać wszystkie szczegóły dotyczące urządzenia AC, które chcemy kontrolować z aplikacji internetowej.


ten pokoje szczegóły są przechowywane w wierszach 7-29.


Omówmy strukturę danych jednego z pomieszczeń.

Tutaj nazwa pokoju będzie Pokój 1. Więc, Pokój 1 jest kluczem do pokoje słownik.


ten Pokój 1 klucz przechowuje tablicę jako wartość. Liczba elementów tablicy jest równa liczbie urządzeń AGD AC, które masz w tym pokoju, którymi chcesz sterować z aplikacji internetowej. W tym przypadku mamy dwa urządzenia AGD AC, którymi chcemy sterować: Światło 1 oraz Wentylator 1 .


Każda definicja urządzenia gospodarstwa domowego ma NS . ten NS jest generowanym losowo identyfikatorem UUID. Służy do identyfikacji pokoju, którym chcemy sterować za pomocą API.

Urządzenie gospodarstwa domowego ma również wszystkie poniższe elementy:

  • nazwa (Światło 1 w tym przypadku)
  • Ikona (Klasa ikon Font Awesome, ponieważ będziemy używać Font Awesome dla ikon)
  • stan (prawda Jeśli na oraz Fałszywe Jeśli wyłączony )
  • przekaźnikPin (numer pinu GPIO używany do sterowania przekaźnikiem podłączonym do urządzenia domowego AC)
  • przekaźnikInstancja (zainicjowany PROWADZONY obiekt gpiozero biblioteka odpowiedzialna za sterowanie odpowiednim pinem GPIO – przekaźnikPin )


Linia 31 inicjuje serwer sieciowy flask Python.

Linia 32 konfiguruje serwer sieciowy kolby.


Linie 34-36 wysyłają index.html plik z szablony/ katalogu podczas odwiedzania aplikacji internetowej automatyki domowej.

Zastosowanie kolby Jinja2 język szablonów do renderowania index.html plik. Więc zdałem pokoje słownik do index.html plik. Jinja2 wyrenderuje stronę główną za pomocą pokoje dane.


Funkcja toggle_appliance_status() w liniach 39-52 służy do włączania urządzenia gospodarstwa domowego, jeśli jest wyłączone i wyłączania urządzenia gospodarstwa domowego, jeśli jest włączone, za pomocą NS .

Wraca Prawdziwe jeśli operacja przełączania się powiedzie. Jeśli wystąpi błąd, wróci Fałszywe .


Linie 55-57 służą do przełączania urządzenia domowego za pomocą /urządzenie/przełącznik/ Punkt końcowy API serwera WWW. Tutaj, NS to identyfikator urządzenia gospodarstwa domowego.


Utwórz index.html plik w szablony/ katalog twojego projektu w następujący sposób:

$nanoszablony/index.html

Wpisz następujące wiersze kodów w index.html scenariusz.


< html język='na'>
< głowa >
< meta zestaw znaków=„UTF-8”>
< meta Nazwa=„widnia” zadowolony='szerokość=szerokość-urządzenia, skala początkowa=1.0'>
< połączyć rel=„arkusz stylów” href='{{ url_for('static', file) }}'>
< połączyć rel=„arkusz stylów” href='{{ url_for('static', file) }}'>
< tytuł >Automatyka domowa z Raspberry Pi</ tytuł >
</ głowa >
< ciało >
< div NS='zadowolony'>
< h1 >Automatyka domowa Raspberry Pi</ h1 >

{% za pokój w pokojach %}
< div klasa='Pokój'>
< h2 >{{ Pokój }}</ h2 >
< div klasa='urządzenia'>
{% za urządzenie w pokojach[pokój] %}
< div klasa='urządzenie' NS='{{ urządzenie['id'] }}'> ='aktywny'>
< i klasa='{{ urządzenie['ikona'] }}'></ i >
< Zakres >{{ urządzenie['nazwa'] }}</ Zakres >
</ div >
{% endfor %}
</ div >
</ div >
{% endfor %}

</ div >

< scenariusz src='{{ url_for('static', file) }}' rodzaj=„tekst/skrypt JavaScript”></ scenariusz >
</ ciało >
</ html >

Gdy skończysz, naciśnij + X śledzony przez ORAZ oraz uratować index.html plik.


Stwórz styl.css plik w statyczny/ katalog twojego projektu w następujący sposób:

$nanostatyczny/styl.css


Wpisz następujące wiersze kodów w styl.css plik.

@import adres URL('https://fonts.googleapis.com/css2?family=BenchNine: [email chroniony] ;400;700&display=swap');

* {
margines: 0;
wyściółka: 0;
rodzina czcionek: „Ławka Dziewięć”, bezszeryfowy;
}

#zadowolony >h1{
tło:gradient liniowy(doPrawidłowy, RGB(112, 24, 163), RGB(86, 127, 240));
kolor: #ffff;
wyrównanie tekstu: środek;
wyściółka: .5em 0;
}

div.Pokój {
margines: .5em;
granica: 2px solidny RGB(112, 24, 163);
promień-granicy: 5px;
}

div.Pokójh2{
/* tło: rgb(9, 76, 121); */
tło:gradient liniowy(doPrawidłowy, RGB(112, 24, 163), RGB(86, 127, 240));
wyściółka: 0 0 0 .5em;
kolor: #ffff;
}

div.urządzenia {
margines: .5em .5em 0 0;
wyświetlacz:przewód;
flex-wrap:zawinąć;
}

div.urządzenie {
granica: 2px solidny RGB(112, 24, 163);
promień-granicy: 5px;
szerokość: 110px;
wzrost: 120px;
wyrównanie tekstu: środek;
margines: 0 0 .5em .5em;
wyświetlacz:przewód;
kierunek ugięcia:kolumna;
}

div.urządzeniei.fa {
rozmiar czcionki: 4em;
elastyczny wzrost: 1;
wyściółka-góra: 0.3em;
kolor: RGB(204, pięćdziesiąt, pięćdziesiąt);
}

div.urządzenie[dane-aktywne='aktywny']i.fa {
kolor: RGB(32, 177, 51);
}

div.urządzenieZakres{
wyświetlacz: blok;
grubość czcionki: pogrubiony;
tło: RGB(112, 24, 163);
kolor: #ffff;
}

Gdy skończysz, naciśnij + X śledzony przez ORAZ oraz uratować styl.css plik.


Stworzyć app.js plik w statyczny/ katalog twojego projektu w następujący sposób:

$nanostatyczny/app.js


Wpisz następujące wiersze kodów w app.js plik.

okno.addEventListener('Załaduj',Główny);

funkcjonowaćGłówny() {
funkcjonowaćtoggleApplianceState(I) {
gdzieNS=I.ścieżka[1].NS;

gdziehttp= NowyŻądanie XMLHttp();

http.onreadystatechange = funkcjonować() {
Jeśli(ten.stan gotowości === 4 && ten.status === 200) {
Jeśli(JSON.analizować(ten.tekst odpowiedzi).status === prawda) {
Jeśli(I.ścieżka[1].maAtrybut(„aktywny z danymi”)) {
I.ścieżka[1].usuńAtrybut(„aktywny z danymi”)
} w przeciwnym razie {
I.ścieżka[1].setAtrybut(„aktywny z danymi”, 'aktywny')
}
}
}
}

http.otwarty('DOSTWAĆ',``/urządzenie/przełącznik/${NS}``, prawda);
http.wysłać();
}


gdzieurządzenia=dokument.getElementsByClassName('urządzenie');
dla(i=0;i<urządzenia.długość;i++) {
urządzenia[i].addEventListener('Kliknij',toggleApplianceState);
}
}

Gdy skończysz, naciśnij + X śledzony przez ORAZ i ocalić app.js plik.


Tutaj linia 1 prowadzi Główny() funkcja po zakończeniu ładowania strony internetowej.

w index.html pliku, każde urządzenie gospodarstwa domowego jest zamknięte w urządzenie klasa. Linie 26-29 służą do wyboru każdego urządzenia gospodarstwa domowego ze strony internetowej i dołączenia Kliknij zdarzenie do urządzenia. Gdy ktoś kliknie urządzenie gospodarstwa domowego ze strony internetowej, toggleApplianceState() funkcja zostanie uruchomiona.


W wierszach 4-23, toggleApplianceState() funkcja służy do żądania /urządzenie/przełącznik/ punkt końcowy serwera WWW, aby zmienić stan klikniętego urządzenia gospodarstwa domowego. Żądanie jest realizowane w tle za pośrednictwem AJAX. Po otrzymaniu odpowiedzi strona internetowa zostanie odpowiednio zaktualizowana.


Przejdź do statyczny/ w katalogu projektu w następujący sposób:

$Płyta CDstatyczny/


Pobierz Font Awesome za pomocą następującego polecenia:

$wgethttps://use.fontawesome.com/wydania/v5.15.1/fontawesome-free-5.15.1-web.zip


Po pobraniu Font Awesome powinieneś znaleźć nowy plik zip fontawesome-free-5.15.1-web.zip w statyczny/ informator.

$ls -lh


Rozpakuj fontawesome-free-5.15.1-web.zip plik za pomocą następującego polecenia:

$rozsunąć suwakfontawesome-free-5.15.1-web.zip


ten fontawesome-free-5.15.1-web.zip plik powinien być teraz rozpakowany.


Nowy katalog fontawesome-free-5.15.1-web/ należy utworzyć w katalogu static/, jak widać na poniższym zrzucie ekranu.

$ls -lh

Zmień nazwę katalogu fontawesome-free-5.15.1-web/ do niesamowita/ za pomocą następującego polecenia:

$mv -vfontawesome-free-5.15.1-web fontawesome


Teraz nie potrzebujesz już fontawesome-free-5.15.1-web.zip plik. Więc usuń fontawesome-free-5.15.1-web.zip plik za pomocą następującego polecenia:

$rm -vfontawesome-free-5.15.1-web.zip


ten statyczny/ Struktura katalogów powinna wyglądać tak, jak pokazano na poniższym zrzucie ekranu.

$ls -lh


Wróć do katalogu projektu ~/www następująco:

$Płyta CD...

Testowanie aplikacji internetowej Home Automation

Aby przetestować aplikację internetową do automatyzacji domu, uruchom następujące polecenie w katalogu projektu:

$KOLBA_APP=Uruchom kolbę server.py


Aplikacja internetowa powinna być dostępna na porcie 5000 Twojego Raspberry Pi.


W przeglądarce Chromium odwiedź http://localhost:5000 . Powinna się załadować aplikacja internetowa automatyki domowej.

Kliknij ikonę żarówki, wskazaną na obrazku poniżej.


Żarówka AC powinna być teraz włączona. Kolor ikony powinien również zmienić się na zielony, wskazując, że żarówka jest włączona.


Tak więc aplikacja internetowa do automatyzacji domu działa. naciskać + C do zamknięcia serwera WWW.

Tworzenie usługi Systemd dla aplikacji internetowej Home Automation

W tej sekcji pokażę, jak utworzyć plik usługi systemd dla aplikacji internetowej automatyki domowej, aby automatycznie uruchamiał się przy starcie.

Najpierw utwórz raspi-dom-automatyka.serwis plik w katalogu projektu w następujący sposób:

$nanoraspi-dom-automatyka.serwis

Wpisz następujące wiersze w pliku raspi-home-automation.service.

[Jednostka]
Opis=Usługa internetowa Raspberry Pi do automatyzacji domu
Później=sieć.cel
[Praca]
Katalog roboczy=/Dom/Liczba Pi/www
Środowisko=KOLBA_APP=serwer.py
Środowisko=FLASK_ENV=produkcja
Rozpocznij Ex=/usr/jestem/kolba uruchomić--gospodarz= 0.0.0.0
Standardowe wyjście=dziedziczy
Standardowy błąd=dziedziczy
Uruchom ponownie=zawsze
Użytkownik= pi
[zainstalować]
Poszukiwany przez=wielu użytkowników.cel

Gdy skończysz, naciśnij + X śledzony przez ORAZ i ocalić raspi-dom-automatyka.serwis plik.


Skopiuj raspi-dom-automatyka.serwis plik do /etc/systemd/system/ katalog za pomocą następującego polecenia:

$sudo cp -vraspi-dom-automatyka.serwis/itp/system/system/


Przeładuj demony systemd, aby zmiany zaczęły obowiązywać w następujący sposób:

$sudodemon-reload systemctl


Dodaj raspi-domowa-automatyka usługa uruchomienia systemu Raspberry Pi OS za pomocą polecenia:

$sudosystemowywłączyćraspi-dom-automatyka.serwis


Zrestartuj Raspberry Pi za pomocą następującego polecenia:

$sudorestart


Po uruchomieniu Raspberry Pi, raspi-domowa-automatyka usługa powinna być aktywna/działająca, jak widać na poniższym zrzucie ekranu.

$sudostatus systemctl raspi-home-automation.service

Dostęp do aplikacji internetowej Home Automation z innych urządzeń

Aby uzyskać dostęp do aplikacji internetowej automatyki domowej z innych urządzeń w sieci domowej, musisz znać adres IP swojego urządzenia Raspberry Pi.

Adres IP urządzenia Raspberry Pi 4 można znaleźć w interfejsie zarządzania siecią routera domowego. W moim przypadku adres IP to 192.168.0.103. To będzie dla ciebie inne. Więc pamiętaj, aby od teraz zastąpić moje IP swoim.


Jeśli masz dostęp do konsoli Raspberry Pi, możesz również uruchomić następujące polecenie, aby znaleźć adres IP.

$nazwa hosta -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 poniższym zrzucie ekranu, uzyskałem dostęp do aplikacji internetowej automatyki domowej z mojego smartfona z Androidem.


Pamiętaj, aby podłączyć wtyczkę żarówki do gniazdka ściennego.


Żarówka powinna być domyślnie wyłączona.


Jeśli dotkniesz ikony żarówki w aplikacji internetowej automatyki domowej, kolor ikony żarówki powinien zmienić się na zielony, wskazując, że żarówka jest włączona.


Jak widać na poniższym obrazku, żarówka jest włączona.

Wniosek

W tym artykule pokazano, jak używać przekaźnika 5 V do sterowania wysokonapięciowym urządzeniem elektrycznym AC z Raspberry Pi przy użyciu języka programowania Python. W artykule pokazano również, jak napisać aplikację internetową opartą na interfejsie API w języku Python, aby sterować przekaźnikiem z przeglądarki internetowej. Ten artykuł powinien pomóc Ci rozpocząć pracę z automatyką domową za pomocą Raspberry Pi.