Iestatiet Raspberry Pi mājas automatizāciju

Set Up Raspberry Pi Home Automation



Viena no vissvarīgākajām mājas automatizācijas lietām ir augstsprieguma maiņstrāvas kontrole, izmantojot zemsprieguma līdzstrāvu. Lai kontrolētu augstsprieguma maiņstrāvu no Raspberry Pi, jums būs nepieciešams 5V releja slēdzis. Jūs varat kontrolēt releja slēdzi, izmantojot Raspberry Pi GPIO tapas. Pēc tam releja slēdzis var kontrolēt maiņstrāvas sadzīves tehniku, izmantojot Raspberry Pi.

Šajā rakstā tiks parādīts, kā izmantot Raspberry Pi un 5V releja slēdzi, lai ieslēgtu un izslēgtu spuldzi no mobilās ierīces. Rakstā ir iekļauta tīmekļa lietotne, kurai varat piekļūt no jebkuras tīkla ierīces un bezvadu režīmā kontrolēt visas maiņstrāvas sadzīves tehnikas. Tātad, sāksim darbu ar mūsu vienkāršo Raspberry Pi mājas automatizācijas eksperimentu.







Lietas, kas jums būs nepieciešamas

Ja vēlaties izmantot Raspberry Pi bez galvas (izmantojot SSH vai VNC), jums būs nepieciešamas šādas lietas:



1) Raspberry Pi 3 vai Raspberry Pi 4.
2) 5V releja slēdzis.
3) Elektriskie vadi.
4) 3 savienojošie vadi no mātītes līdz sievietei.
5) Maiņstrāvas spuldze.
6) Maiņstrāvas spuldzes turētājs.
7) maiņstrāvas kontaktdakša.
8) Stiepļu griezējs un noņēmējs.
9) CR-V 3 skrūvgriezis.
10) Micro-USB (Raspberry Pi 3) vai C tipa USB (Raspberry Pi 4) strāvas adapteris.
11) Mirgo 16 GB vai 32 GB microSD karte ar Raspberry Pi OS.
12) Tīkla savienojums Raspberry Pi.
13) Klēpjdators vai galddators, lai piekļūtu VNC attālajai darbvirsmai vai SSH piekļuvei Raspberry Pi.



Ja nevēlaties piekļūt Raspberry Pi attālināti, izmantojot SSH vai VNC, jums būs nepieciešams arī:





14) Monitors.
15) HDMI vai mikro-HDMI kabelis.
16) Tastatūra.
17) Pele.

Ja jums nepieciešama palīdzība ar Raspberry Pi OS attēla mirgošanu microSD kartē, skatiet rakstu Kā instalēt un lietot Raspberry Pi Imager.



Ja esat iesācējs Raspberry Pi un jums nepieciešama palīdzība Raspberry Pi OS instalēšanā Raspberry Pi, skatiet rakstu Kā instalēt Raspberry Pi OS Raspberry Pi 4.

Turklāt, ja jums nepieciešama palīdzība Raspberry Pi iestatīšanā bez galvas, skatiet rakstu Kā instalēt un konfigurēt Raspberry Pi OS Raspberry Pi 4 bez ārējā monitora.

Visu nepieciešamo rīku attēli ir sniegti zemāk.

Ieslēdzot Raspberry Pi

Pēc tam pievienojiet strāvas kabeli Raspberry Pi un ieslēdziet Raspberry Pi.

Kad Raspberry Pi ir ieslēgts, varat izveidot savienojumu ar Raspberry Pi, izmantojot VNC vai SSH. Varat arī pievienot Raspberry Pi tastatūru, peli un monitoru, lai tam tieši piekļūtu.

5 V releja kontakti

Relejs būtībā ir slēdzis. Bet, atšķirībā no tradicionālā slēdža, releju var vadīt ar nelielu līdzstrāvas spriegumu.

5V relejs ir ļoti ērti lietojams. Tam ir divas puses: vienu pusi izmanto, lai kontrolētu releju, izmantojot zemsprieguma līdzstrāvu (no Raspberry Pi), un otru pusi izmanto, lai kontrolētu augstsprieguma maiņstrāvu (ti, spuldzi) atkarībā no releja stāvokļa .


Relejā vienā pusē ir divas gaismas diodes (viena sarkana un viena zaļa) un trīs tapas ( IN, GND, un VCC ). Šīs trīs tapas tiek izmantotas, lai kontrolētu Raspberry Pi releju.

Pirmās divas tapas otrā pusē tiek izmantotas, lai kontrolētu maiņstrāvas sadzīves tehniku.

5V releja pievienošana Raspberry Pi

Lai savienotu 5V releju ar Raspberry Pi, jums būs nepieciešami trīs savienojošie vadi no sievietēm līdz sievietēm.

Pievienojiet vienu savienojošo vadu pusi pie IN (dzeltenais vads), GND (melns vads) un VCC (sarkans vads) tapas 5V relejā, kā parādīts zemāk.


Vadu otra puse nonāk Raspberry Pi GPIO galvenes tapās, kā parādīts attēlā zemāk.

Sarkanajam vadam vajadzētu iekļūt PIN 2 (VCC) no Raspberry Pi.
Melnajam vadam vajadzētu iekļūt PIN 6 (GND) no Raspberry Pi.
Dzeltenajam vadam vajadzētu iet iekšā PIN 7 (GPIO 4) no Raspberry Pi.


Kad 5V relejs ir pievienots Raspberry Pi, tam vajadzētu izskatīties, kā parādīts attēlā zemāk.

GPIO piekļuves atļaušana pieteikšanās lietotājam

Lai atļautu piekļuvi GPIO tapām, Raspberry Pi OS noklusējuma pieteikšanās lietotājs pi būtu jāpievieno gpio grupa.

Jūs varat pievienot pi lietotājs uz gpio grupai ar šādu komandu:

$sudousermod-Ggpio $(kas es esmu)


Lai izmaiņas stātos spēkā, restartējiet Raspberry Pi ar šādu komandu:

$sudopārstartēt

Projekta direktorija izveide

Ieteicams arī sakārtot visus projekta failus.

Lai projekta faili būtu sakārtoti, izveidojiet projektu direktoriju ~/www un nepieciešamās apakšdirektorijas ar šādu komandu:

$mkdir -pv~/www/{veidnes, statiskas}


Kad projektu direktorijs ir izveidots, dodieties uz projektu direktoriju šādi:

$CD~/www

5V releja pārslēgšana no Raspberry Pi

Tagad, kad esat pievienojis 5 V releju Raspberry Pi, jūs pārslēgsit releju no Raspberry Pi, izmantojot Python programmēšanas valodu.

PIEZĪME: Pārslēgšanās ir termins, ko lieto elektronikā. Pārslēgšana nozīmē noteiktas elektroniskas ierīces vadību (t.i., ieslēgšanu/izslēgšanu).

Lai eksperimentētu ar releja pārslēgšanu, izmantojot programmēšanas valodu Python, projekta direktorijā izveidojiet jauno Python skriptu test.py šādi:

$nanotest.py


Test.py Python skriptā ierakstiet šādas kodu rindas.

nogpiozeroimportētLED
no laiks importētGulēt

kamēr Taisnība:
stafete=LED(4)
drukāt('Relejs: ieslēgts')
Gulēt(5)

stafete.aizvērt()
drukāt('Relejs: izslēgts')
Gulēt(5)

Kad esat pabeidzis, nospiediet + X kam sekoja UN un lai saglabātu test.py Python skripts.


Šeit importē 1. rindu LED no gpiozero bibliotēka, un 2. līnija importē Gulēt funkcija no laiks bibliotēka.


Līnijas 6-14 atrodas bezgalīgā cilpā.


6. līnija inicializē gaismas diodi GPIO 4 no Raspberry Pi, kas ir savienots ar IN releja tapa.


8. līnija ieslēdz releju, izmantojot ieslēgts () metodi.

9. rindā tiek izdrukāts ziņojums konsolē, izmantojot drukāt () funkciju.

10. rinda aizkavē nākamās koda rindas izpildi piecas sekundes, izmantojot Gulēt() funkciju.


12. līnija izslēdz releju, izmantojot aizvērt () metodi.

Tādā pašā veidā 9. rindā tiek izdrukāts ziņojums konsolē, izmantojot drukāt () funkcija un 10. rinda aizkavē nākamās koda rindas izpildi par 5 sekundēm, izmantojot Gulēt() funkciju.


Tālāk palaidiet test.py Python skripts ir šāds:

$python3 test.py


The test.py Python skriptam vajadzētu sākt pārslēgt 5V releju. Ik pēc piecām sekundēm vajadzētu dzirdēt klikšķināšanas skaņu. Kad relejs pārslēdz stāvokli (no ieslēgta uz izslēgtu vai no izslēgta uz ieslēgtu), tas rada klikšķu troksni. Tas nozīmē, ka relejs darbojas pareizi.


Kad relejs ir izslēgtā stāvoklī (normāla darbība-maiņstrāvas slodze ir atvienota), tikai tīkls Gaismas diodei vajadzētu iedegties, kā redzat attēlā zemāk.


Kad relejs ir ieslēgtā stāvoklī (ir pievienota maiņstrāvas slodze), abi zaļš LED un un tīkls Gaismas diodei vajadzētu iedegties, kā redzat attēlā zemāk.


Kad pārbaude ir pabeigta, nospiediet + C pārtraukt test.py skripts.

Maiņstrāvas spuldzes pievienošana 5V relejam

Tagad 5 V relejam vajadzētu darboties pareizi. Tagad jūs pievienosit savu maiņstrāvas sadzīves tehniku ​​(šajā gadījumā spuldzi) 5 V relejam.

Vispirms ar stieples griezēju nogrieziet melno elektrisko vadu, kas savienots ar spuldzi.


Kad melnais elektrības vads, kas pievienots spuldzei, ir sagriezts ar stieples griezēju, tam vajadzētu izskatīties, kā parādīts attēlā.


Pēc tam noņemiet ārējo slāni, lai atklātu apmēram ½ collu elektriskā stieples, kā parādīts attēlā zemāk.


Pēc tam salieciet atklātos vadus, kā parādīts attēlā zemāk.


Atskrūvējiet releja marķētās skrūves ar CV-3 skrūvgriezi.


Ievietojiet abos skrūvju spailēs atklātos vadus, kurus esat iepriekš izlocījis un salocījis, un pievelciet skrūves ar CV-3 skrūvgriezi.

Releju pārslēgšanas pārbaude pēc maiņstrāvas slodzes pievienošanas

Kad maiņstrāvas slodze ir pievienota 5V relejam, pievienojiet spuldzes kontaktdakšu sienas kontaktligzdai.


Palaidiet test.py Python skriptu no projekta direktorija šādi:

$python3 test.py


The test.py Python skriptam vajadzētu sākt pārslēgt 5 V releju, kas savukārt pārslēgs augstsprieguma maiņstrāvas spuldzi ar piecu sekunžu intervālu. Maiņstrāvas spuldzei vajadzētu palikt ieslēgtai piecas sekundes, pēc tam izslēgt piecas sekundes utt.

Zemāk redzamajā attēlā spuldze ir izslēgta.


Spuldze ir ieslēgta attēlā zemāk.


Kā redzat, mēs varam pārslēgt releju un kontrolēt augstsprieguma maiņstrāvas spuldzi, izmantojot Python programmēšanas valodu. Tātad, nospiediet + C pārtraukt test.py skripts.

Tagad pāriesim pie nākamās sadaļas.

Mājas automatizācijas tīmekļa lietotnes rakstīšana

Šajā sadaļā es parādīšu, kā rakstīt uz API balstītu tīmekļa lietotni, izmantojot programmēšanas valodu Python. Jūs varat izmantot tīmekļa lietotni, lai no tīmekļa pārlūkprogrammas kontrolētu releju un maiņstrāvas sadzīves tehniku ​​(-as) vai releju (-as), kas savienota ar releju.

PIEZĪME: Visi šajā sadaļā redzamie kodi ir pieejami manā GitHub krātuvē shovon8 / aveņu-pi-mājas-automatizācija . Ja vēlaties, varat klonēt manu GitHub krātuvi un izlaist visus kodus.

Izveidojiet skriptu server.py Python projekta direktorijā šādi:

$nanoserver.py


Ierakstiet tālāk norādītās kodu rindas server.py Python skripts.

nokolbaimportētKolba,jsonify,url_for,render_template
nogpiozeroimportētLED
nouuidimportētuuid4
istabas= {}
istabas['Istaba 1'] = [{
'id': uuid4(),
'vārds':'Gaisma 1',
'ikona':'fa fa-spuldze',
'statuss':Nepatiess,
'relejsPin':4,
'relayInstance':Nepatiess
}, {
'id': uuid4(),
'vārds':'Ventilators 1',
'ikona':'fa fa-fan',
'statuss':Nepatiess,
'relejsPin':6,
'relayInstance':Nepatiess
}]
istabas['Vannas istaba 1'] = [{
'id': uuid4(),
'vārds':'Gaisma 1',
'ikona':'fa fa-spuldze',
'statuss':Nepatiess,
'relejsPin':5,
'relayInstance':Nepatiess
}]
lietotne=Kolba(__name__)
lietotne.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
@lietotne.maršrutu('/')
defmājas():
atgrieztiesrender_template('./index.html',istabas=istabas)
deftoggle_appliance_status(id):
priekšistabaiekšāistabas:
priekšierīceiekšāistabas[istaba]:
ja lpp(ierīce['id']) == id:
jaierīce['relayInstance']:
ierīce['relayInstance'].aizvērt()
ierīce['relayInstance'] = Nepatiess
citādi:
ierīce['relayInstance'] =LED(ierīce['relejsPin'])
ierīce['relayInstance'].uz()
ierīce['statuss'] = ierīce['statuss']
atgriezties Taisnība
atgriezties Nepatiess
@lietotne.maršrutu('/device/toggle/')
defdevice_toggle(id):
atgrieztiesjsonify({'statuss': toggle_appliance_status(id)})

Kad esat pabeidzis, nospiediet + X kam sekoja UN un lai saglabātu server.py Python skripts.


Šeit rindas 1-3 importē visus nepieciešamos komponentus no attiecīgajām bibliotēkām.


5. rindā tiek izveidots tukšs istabas vārdnīca. Šajā vārdnīcā mēs saglabāsim visu maiņstrāvas ierīces informāciju, kuru vēlamies kontrolēt no tīmekļa lietotnes.


The istabas detaļas tiek glabātas 7.-29. rindā.


Apspriedīsim vienas telpas datu struktūru.

Šeit būs telpas nosaukums 1. istaba. Tātad, 1. istaba ir atslēga uz istabas vārdnīca.


The 1. istaba atslēgas vērtība ir masīvs. Masīva elementu skaits ir vienāds ar tajā telpā esošo maiņstrāvas sadzīves tehnikas ierīču skaitu, kuras vēlaties kontrolēt arī no tīmekļa lietotnes. Šajā gadījumā mums ir divas maiņstrāvas sadzīves tehnikas, kuras mēs vēlamies kontrolēt: Gaisma 1 un Ventilators 1 .


Katrai sadzīves tehnikas definīcijai ir id . The id ir nejauši ģenerēts UUID. To izmanto, lai noteiktu, kuru telpu mēs vēlamies kontrolēt, izmantojot API.

Sadzīves tehnikai ir arī visas šīs iespējas:

  • nosaukums (gaisma 1 šajā gadījumā)
  • ikona (Fontu Awesome ikonu klase, jo ikonām izmantosim Font Awesome)
  • statuss (True ja uz un Nepatiess ja izslēgts )
  • relejsPin (GPIO tapas numurs, ko izmanto, lai kontrolētu releju, kas pievienots maiņstrāvas mājas ierīcei)
  • relejsInstance (inicializēts LED objekts gpiozero bibliotēka, kas atbildīga par attiecīgās GPIO tapas kontroli - relejsPin )


31. rindiņa inicializē kolbu Python tīmekļa serveri.

32. rinda konfigurē kolbas tīmekļa serveri.


Līnijas 34-36 nosūta index.html fails no veidnes/ direktoriju, kad apmeklējat mājas automatizācijas tīmekļa lietotni.

Kolbas izmantošana Džindža2 veidnes valoda, lai padarītu index.html failu. Tātad, esmu nokārtojis istabas vārdnīca index.html failu. Džindža2 padarīs mājas lapu, izmantojot istabas dati.


Funkcija toggle_appliance_status () 39.-52. rindā tiek izmantota, lai ieslēgtu sadzīves tehniku, ja tā ir izslēgta, un izslēgtu sadzīves tehniku, ja tā ir ieslēgta, izmantojot ierīces id .

Tas atgriežas Taisnība ja pārslēgšanas darbība ir veiksmīga. Ja ir kļūda, tā atgriezīsies Nepatiess .


Līnijas 55-57 tiek izmantotas, lai pārslēgtu sadzīves tehniku, izmantojot /iekārta/pārslēgt/ Tīmekļa servera API galapunkts. Šeit, id ir sadzīves tehnikas ID.


Izveidojiet index.html failu mapē veidnes/ sava projekta direktoriju šādi:

$nanoveidnes/index.html

Ierakstiet tālāk norādītās kodu rindas index.html skripts.


< html lang='ieslēgts'>
< galvu >
< meta rakstzīmju kopa='UTF-8'>
< meta vārds='skatu punkts' saturu='platums = ierīces platums, sākotnējā skala = 1,0'>
< saite rel='stilu lapa' href='{{url_for (' static ', faila nosaukums =' fontawesome/css/all.min.css ')}}'>
< saite rel='stilu lapa' href='{{url_for (' static ', faila nosaukums =' style.css ')}}'>
< titulu >Mājas automatizācija ar Raspberry Pi</ titulu >
</ galvu >
< ķermenis >
< div id='saturs'>
< h1 >Raspberry Pi mājas automatizācija</ h1 >

{ % istabai numuros %}
< div klase='istaba'>
< h2 >{{istaba}}</ h2 >
< div klase='ierīces'>
{ % ierīcēm telpās [room] %}
< div klase='ierīce' id='{{iekārta ['id']}}'> ='aktīvs'>
< i klase='{{device [' icon ']}}'></ i >
< laidums >{{iekārta ['name']}}</ laidums >
</ div >
{ % endfor %}
</ div >
</ div >
{ % endfor %}

</ div >

< skripts src='{{url_for (' static ', faila nosaukums =' app.js ')}}' tipa='text/javascript'></ skripts >
</ ķermenis >
</ html >

Kad esat pabeidzis, nospiediet + X kam sekoja UN un lai saglabātu index.html failu.


Izveidojiet a stils.css failu mapē statisks/ sava projekta direktoriju šādi:

$nanostatisks/stils.css


Ierakstiet tālāk norādītās kodu rindas stils.css failu.

@importēt url('https://fonts.googleapis.com/css2?family=BenchNine: [aizsargāts e -pasts]; 400; 700 & display = swap');

* {
rezerve: 0;
polsterējums: 0;
fontu saime: 'BenchNine', sans serif;
}

#saturu >h1{
fons:lineārs-gradients(uztaisnība, rgb(112, 24, 163), rgb(86, 127, 240));
krāsa: #fff;
teksta līdzināšana: centrā;
polsterējums: .5em 0;
}

div. istaba {
rezerve: .5em;
robeža: 2 pikseļi ciets rgb(112, 24, 163);
robežas rādiuss: 5 pikseļi;
}

div. istabah2{
/* fons: rgb (9, 76, 121); */
fons:lineārs-gradients(uztaisnība, rgb(112, 24, 163), rgb(86, 127, 240));
polsterējums: 0 0 0 .5em;
krāsa: #fff;
}

div.ierīces {
rezerve: .5em .5em 0 0;
displejs:saliekties;
flex-wrap:ietīt;
}

div.ierīce {
robeža: 2 pikseļi ciets rgb(112, 24, 163);
robežas rādiuss: 5 pikseļi;
platums: 110 pikseļi;
augstums: 120 pikseļi;
teksta līdzināšana: centrā;
rezerve: 0 0 .5em .5em;
displejs:saliekties;
elastīgs virziens:sleja;
}

div.ierīcei.fa {
fonta izmērs: 4em;
elastīgi augt: 1;
polsterējums: 0.3em;
krāsa: rgb(204, piecdesmit, piecdesmit);
}

div.ierīce[datu aktīvs='aktīvs']i.fa {
krāsa: rgb(32, 177, 51);
}

div.ierīcelaidums{
displejs: bloķēt;
fontu svars: treknrakstā;
fons: rgb(112, 24, 163);
krāsa: #fff;
}

Kad esat pabeidzis, nospiediet + X kam sekoja UN un lai saglabātu stils.css failu.


Izveidojiet app.js failu mapē statisks/ sava projekta direktoriju šādi:

$nanostatisks/app.js


Ierakstiet tālāk norādītās kodu rindas app.js failu.

logs.addEventListener('slodze',galvenais);

funkcijugalvenais() {
funkcijutoggleApplianceState(Un) {
kurid=Un.ceļš[1].id;

kurhttp= jaunsXMLHttpRequest();

http.jau maiņa = funkciju() {
ja(šo.readyState === 4 && šo.statuss === 200) {
ja(JSON.parsēt(šo.responseText).statuss === taisnība) {
ja(Un.ceļš[1].hasAttribute('data-active')) {
Un.ceļš[1].removeAttribute('data-active')
} citādi {
Un.ceļš[1].setAttribute('data-active', 'aktīvs')
}
}
}
}

http.atvērts('GŪT',``/ierīce/pārslēgties/${id}``, taisnība);
http.nosūtīt();
}


kurierīces=dokuments.getElementsByClassName('ierīce');
priekš(i=0;i<ierīces.garums;i++) {
ierīces[i].addEventListener('klikšķis',toggleApplianceState);
}
}

Kad esat pabeidzis, nospiediet + X kam sekoja UN un lai saglabātu app.js failu.


Šeit 1. rindiņa vada galvenais () funkcija, kad tīmekļa lapa tiek ielādēta.

Iekš index.html failā, katra sadzīves tehnika ir ievietota ierīce klase. Līnijas 26-29 tiek izmantotas, lai tīmekļa vietnē atlasītu katru sadzīves tehniku ​​un pievienotu klikšķis notikums ierīcē. Kad kāds tīmekļa lapā noklikšķina uz sadzīves tehnikas, toggleApplianceState () funkcija darbosies.


4-23. Rindā toggleApplianceState () funkcija tiek izmantota, lai pieprasītu /iekārta/pārslēgt/ tīmekļa servera galapunkts, lai mainītu noklikšķinātās sadzīves tehnikas stāvokli. Pieprasījums tiek veikts fonā, izmantojot AJAX. Kad atbilde ir saņemta, tīmekļa lapa tiek attiecīgi atjaunināta.


Dodieties uz statisks/ direktoriju projekta direktorijā šādi:

$CDstatisks/


Lejupielādējiet Font Awesome ar šādu komandu:

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


Kad Font Awesome ir lejupielādēts, jums vajadzētu atrast jauno zip failu fontawesome-free-5.15.1-web.zip iekš statisks/ direktoriju.

$ls -lh


Izsaiņojiet fontawesome-free-5.15.1-web.zip failu ar šādu komandu:

$izpakotfontawesome-free-5.15.1-web.zip


The fontawesome-free-5.15.1-web.zip Fails tagad ir jāizpako.


Jaunais direktorijs fontawesome-free-5.15.1-web/ jāizveido statiskajā/ direktorijā, kā redzams zemāk esošajā ekrānuzņēmumā.

$ls -lh

Pārdēvējiet direktoriju fontawesome-free-5.15.1-web/ uz fantastiski/ ar šādu komandu:

$mv -vfontawesome-free-5.15.1-web fontawesome


Tagad jums vairs nav nepieciešams fontawesome-free-5.15.1-web.zip failu. Tātad, noņemiet fontawesome-free-5.15.1-web.zip failu ar šādu komandu:

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


The statisks/ direktorija struktūrai vajadzētu izskatīties tā, kā parādīts zemāk esošajā ekrānuzņēmumā.

$ls -lh


Dodieties atpakaļ uz projektu direktoriju ~/www sekojoši:

$CD..

Mājas automatizācijas tīmekļa lietotnes pārbaude

Lai pārbaudītu mājas automatizācijas tīmekļa lietotni, projekta direktorijā palaidiet šādu komandu:

$FLASK_APP= server.py kolbas palaišana


Tīmekļa lietotnei jābūt pieejamai jūsu Raspberry Pi 5000 portā.


Chromium tīmekļa pārlūkprogrammā apmeklējiet vietni http: // localhost: 5000 . Mājas automatizācijas tīmekļa lietotnei vajadzētu ielādēties.

Noklikšķiniet uz spuldzes ikonas, kas norādīta attēlā zemāk.


Tagad ir jāieslēdz maiņstrāvas spuldze. Arī ikonas krāsai vajadzētu mainīties uz zaļu, norādot, ka spuldze ir ieslēgta.


Tātad mājas automatizācijas tīmekļa lietotne darbojas. Nospiediet + C lai pārtrauktu tīmekļa servera darbību.

Sistēmas pakalpojuma izveide tīmekļa lietotnei Mājas automatizācija

Šajā sadaļā es parādīšu, kā mājas sistēmas automatizācijas tīmekļa lietotnei izveidot sistematizētu pakalpojuma failu, lai tas automātiski sāktos pēc sāknēšanas.

Pirmkārt, izveidojiet raspi-home-automation.service failu projekta direktorijā šādi:

$nanoraspi-home-automation.service

Failā raspi-home-automation.service ierakstiet šādas rindas.

[Vienība]
Apraksts= Raspberry Pi mājas automatizācijas tīmekļa pakalpojums
Pēc= tīkls.mērķis
[apkalpošana]
WorkingDirectory=/mājas/pi/www
Vide=FLASK_APP= server.py
Vide=FLASK_ENV= ražošana
ExecStart=/usr/esmu/kolbas skrējiens-saimnieks= 0.0.0.0
Standarta izvade= mantot
Standarta kļūda= mantot
Restartēt= vienmēr
Lietotājs= pi
[Uzstādīt]
WantedBy= daudzlietotāju.mērķis

Kad esat pabeidzis, nospiediet + X kam sekoja UN un lai saglabātu raspi-home-automation.service failu.


Kopējiet raspi-home-automation.service failu uz /etc/systemd/system/ direktoriju ar šādu komandu:

$sudo cp -vraspi-home-automation.service/utt/sistēma/sistēma/


Lai izmaiņas stātos spēkā, atkārtoti ielādējiet sistēmas dēmonus:

$sudosystemctl dēmonu pārlādēšana


Pievienojiet raspi-home-automatization pakalpojums Raspberry Pi OS sistēmas startēšanai ar šādu komandu:

$sudosystemctliespējotraspi-home-automation.service


Pārstartējiet Raspberry Pi ar šādu komandu:

$sudopārstartēt


Kad Raspberry Pi zābaki, raspi-home-automatization pakalpojumam jābūt aktīvam/darbam, kā redzams zemāk esošajā ekrānuzņēmumā.

$sudosystemctl statuss raspi-home-automation.service

Piekļuve mājas automatizācijas tīmekļa lietotnei no citām ierīcēm

Lai piekļūtu mājas automatizācijas tīmekļa lietotnei no citām mājas tīkla ierīcēm, jums jāzina jūsu Raspberry Pi ierīces IP adrese.

Raspberry Pi 4 ierīces IP adresi varat atrast mājas maršrutētāja tīmekļa pārvaldības saskarnē. Manā gadījumā IP adrese ir 192.168.0.103. Tas jums būs savādāk. Tātad, turpmāk noteikti aizstājiet manu IP ar savu.


Ja jums ir piekļuve konsolei Raspberry Pi, varat izpildīt šo komandu, lai atrastu arī IP adresi.

$saimniekdatora nosaukums -Es


Kad esat uzzinājis savas Raspberry Pi ierīces IP adresi, varat tai piekļūt no jebkuras mājas tīkla ierīces.

Kā redzat zemāk esošajā ekrānuzņēmumā, esmu piekļuvis mājas automatizācijas tīmekļa lietotnei no sava Android viedtālruņa.


Noteikti pievienojiet spuldzes kontaktdakšu sienas kontaktligzdai.


Spuldzei pēc noklusējuma jābūt izslēgtai.


Ja mājas automatizācijas tīmekļa lietotnē pieskaraties spuldzes ikonai, spuldzes ikonas krāsa jāmaina uz zaļu, norādot, ka spuldze ir ieslēgta.


Kā redzat attēlā zemāk, spuldze ir ieslēgta.

Secinājums

Šis raksts parādīja, kā izmantot 5 V releju, lai vadītu augstsprieguma maiņstrāvas elektrisko ierīci no Raspberry Pi, izmantojot programmēšanas valodu Python. Rakstā arī tika parādīts, kā uzrakstīt uz API balstītu Python kolbas tīmekļa lietotni, lai kontrolētu releju no tīmekļa pārlūkprogrammas. Šim rakstam vajadzētu palīdzēt jums sākt mājas automatizāciju, izmantojot Raspberry Pi.