Nustatykite „Raspberry Pi“ namų automatiką

Set Up Raspberry Pi Home Automation



Vienas iš svarbiausių namų automatizavimo dalykų yra aukštos įtampos kintamosios srovės valdymas naudojant žemos įtampos nuolatinę srovę. Norėdami valdyti aukštos įtampos kintamąją srovę iš „Raspberry Pi“, jums reikės 5 V relės jungiklio. Relės jungiklį galite valdyti naudodami „Raspberry Pi“ GPIO kaiščius. Relės jungiklis gali valdyti kintamosios srovės buitinius prietaisus per „Raspberry Pi“.

Šiame straipsnyje bus parodyta, kaip naudojant „Raspberry Pi“ ir 5 V relės jungiklį įjungti ir išjungti lemputę iš savo mobiliojo prietaiso. Straipsnyje yra žiniatinklio programa, kurią galite pasiekti iš bet kurio tinklo įrenginio ir belaidžiu būdu valdyti bet kokius AC buitinius prietaisus savo namuose. Taigi, pradėkime nuo paprasto „Raspberry Pi“ namų automatizavimo eksperimento.







Dalykai, kurių jums prireiks

Jei norite naudoti „Raspberry Pi“ be galvos (per SSH arba VNC), jums reikės šių dalykų:



1) Raspberry Pi 3 arba Raspberry Pi 4.
2) 5V relės jungiklis.
3) elektros laidai.
4) 3 jungiamieji laidai tarp moterų.
5) kintamosios srovės lemputė.
6) kintamosios srovės lemputės laikiklis.
7) kintamosios srovės kištukas.
8) vielos kirpimo ir nuėmimo įrankis.
9) atsuktuvas CR-V 3.
10) „Micro-USB“ („Raspberry Pi 3“) arba C tipo USB („Raspberry Pi 4“) maitinimo adapteris.
11) Mirksi 16 GB arba 32 GB „microSD“ kortelė su „Raspberry Pi“ OS.
12) „Raspberry Pi“ tinklo ryšys.
13) Nešiojamasis kompiuteris arba stalinis kompiuteris, skirtas VNC nuotolinio darbalaukio prieigai arba SSH prieigai prie Raspberry Pi.



Jei nenorite pasiekti Raspberry Pi nuotoliniu būdu per SSH arba VNC, jums taip pat reikės:





14) Monitorius.
15) HDMI arba mikro-HDMI kabelis.
16) Klaviatūra.
17) Pelė.

Jei jums reikia pagalbos perkėlus Raspberry Pi OS vaizdą į „microSD“ kortelę, skaitykite straipsnį Kaip įdiegti ir naudoti „Raspberry Pi Imager“.



Jei esate „Raspberry Pi“ pradedantysis ir jums reikia pagalbos diegiant „Raspberry Pi“ OS „Raspberry Pi“, peržiūrėkite straipsnį Kaip įdiegti Raspberry Pi OS Raspberry Pi 4.

Be to, jei jums reikia pagalbos nustatant „Raspberry Pi“ be galvos, peržiūrėkite straipsnį Kaip įdiegti ir konfigūruoti Raspberry Pi OS „Raspberry Pi 4“ be išorinio monitoriaus.

Visų reikalingų įrankių vaizdai pateikti žemiau.

Įjungiamas „Raspberry Pi“

Tada prijunkite maitinimo kabelį prie „Raspberry Pi“ ir įjunkite „Raspberry Pi“.

Įjungę „Raspberry Pi“, galite prisijungti prie „Raspberry Pi“ per VNC arba SSH. Arba galite tiesiogiai prijungti klaviatūrą, pelę ir monitorių prie „Raspberry Pi“.

5 V relės kaiščiai

Relė iš esmės yra jungiklis. Tačiau, skirtingai nei tradicinis jungiklis, relę galima valdyti nedideliu nuolatinės įtampos kiekiu.

5 V relę labai paprasta naudoti. Jis turi dvi puses: viena pusė naudojama valdyti relę per žemos įtampos nuolatinę srovę (iš „Raspberry Pi“), o kita pusė-aukštos įtampos kintamosios srovės (ty lemputės) valdymui, priklausomai nuo relės būsenos .


Vienoje pusėje relė turi du šviesos diodus (vieną raudoną ir vieną žalią) ir tris kaiščius ( IN, GND, ir VCC ). Šie trys kaiščiai naudojami valdyti „Raspberry Pi“ relę.

Pirmieji du kitoje pusėje esantys kaiščiai naudojami AC buitiniam prietaisui valdyti.

5 V relės prijungimas prie „Raspberry Pi“

Norėdami prijungti 5 V relę prie „Raspberry Pi“, jums reikės trijų jungiamųjų laidų iš moterų.

Prijunkite vieną jungiamųjų laidų pusę prie IN (geltona viela), GND (juoda viela) ir VCC (raudonos vielos) kaiščiai 5V relėje, kaip parodyta žemiau.


Kita laidų pusė eina į „Raspberry Pi“ GPIO antraštės kaiščius, kaip parodyta paveikslėlyje žemiau.

Raudona viela turėtų patekti į PIN 2 (VCC) iš Raspberry Pi.
Juoda viela turėtų patekti į PIN 6 (GND) iš Raspberry Pi.
Geltona viela turėtų patekti į PIN 7 (GPIO 4) iš Raspberry Pi.


Kai 5 V relė bus prijungta prie „Raspberry Pi“, ji turėtų atrodyti taip, kaip parodyta paveikslėlyje žemiau.

Suteikiant GPIO prieigą prisijungusiam vartotojui

Kad leistumėte prieigą prie GPIO kaiščių, numatytasis Raspberry Pi OS prisijungimo vartotojas pi turėtų būti pridėtas prie gpio grupė.

Galite pridėti pi vartotojas į gpio grupę su tokia komanda:

$sudousermod-aGgpio $(kas aš esu)


Kad pakeitimai įsigaliotų, iš naujo paleiskite „Raspberry Pi“ naudodami šią komandą:

$sudoperkrauti

Projektų katalogo kūrimas

Taip pat gera idėja tvarkyti visus projekto failus.

Norėdami, kad projekto failai būtų tvarkomi, sukurkite projekto katalogą ~/www ir reikiamus pakatalogius su tokia komanda:

$mkdir -pv~/www/{statiniai, šablonai}


Sukūrę projekto katalogą, eikite į projekto katalogą taip:

$CD~/www

5 V relės perjungimas iš „Raspberry Pi“

Dabar, kai prijungėte 5 V relę prie „Raspberry Pi“, relę iš „Raspberry Pi“ perjungsite naudodami „Python“ programavimo kalbą.

PASTABA: perjungimas yra terminas, naudojamas elektronikoje. Perjungimas reiškia tam tikro elektroninio prietaiso valdymą (t. Y. Įjungimą/išjungimą).

Norėdami eksperimentuoti su relės perjungimu naudodami „Python“ programavimo kalbą, projekto kataloge sukurkite naują „Python“ scenarijų test.py:

$nanotest.py


Į test.py Python scenarijų įveskite šias kodų eilutes.

nuogpiozeroimportasLED
nuo laikas importasmiegoti

tuo tarpu Tiesa:
estafetė=LED(4)
spausdinti('Pasikliauti')
miegoti(5)

estafetė.Uždaryti()
spausdinti(„Relė: išjungta“)
miegoti(5)

Kai baigsite, paspauskite + X po to IR ir išsaugoti test.py „Python“ scenarijus.


Čia importuojama 1 eilutė LED nuo gpiozero biblioteką, o 2 eilutė importuoja miegoti funkcija iš laikas biblioteka.


6-14 eilutės yra begalinėje kilpoje.


6 eilutė inicijuoja šviesos diodą GPIO 4 „Raspberry Pi“, kuris yra prijungtas prie IN relės kaištis.


8 eilutė įjungia relę naudodami ant () metodas.

9 eilutė konsolėje spausdina pranešimą naudodami spausdinti () funkcija.

10 eilutė atideda kitos kodo eilutės vykdymą penkioms sekundėms, naudojant miegoti () funkcija.


12 linija išjungia relę naudodami Uždaryti() metodas.

Lygiai taip pat 9 eilutė spausdina pranešimą konsolėje naudodami spausdinti () funkcija ir 10 eilutė atideda kitos kodo eilutės vykdymą 5 sekundes naudodami miegoti () funkcija.


Toliau paleiskite test.py „Python“ scenarijus:

$python3 test.py


The test.py „Python“ scenarijus turėtų pradėti perjungti 5 V relę. Turėtumėte išgirsti spragtelėjimą kas penkias sekundes. Kai relė perjungia būseną (iš įjungimo į išjungimą arba išjungimo į įjungimą), ji sukelia spragtelėjimą. Tai reiškia, kad relė veikia tinkamai.


Kai relė yra išjungta (normalus veikimas-kintamosios srovės apkrova atjungta), tik tinklas Šviesos diodas turėtų užsidegti, kaip matote žemiau esančiame paveikslėlyje.


Kai relė yra įjungta (prijungta kintamosios srovės apkrova), tiek žalias LED ir į tinklas Šviesos diodas turėtų užsidegti, kaip matote žemiau esančiame paveikslėlyje.


Kai bandymas bus baigtas, paspauskite + C nutraukti test.py scenarijus.

Kintamosios srovės lemputės prijungimas prie 5 V relės

5 V relė dabar turėtų tinkamai veikti. Dabar prie 5 V relės prijungsite buitinį kintamosios srovės prietaisą (šiuo atveju lemputę).

Pirmiausia perpjaukite juodą elektros laidą, prijungtą prie lemputės.


Kai juodas elektros laidas, prijungtas prie lemputės, nukirsta vielos pjovikliu, jis turėtų atrodyti taip, kaip parodyta paveikslėlyje žemiau.


Tada nuimkite išorinį sluoksnį, kad matytumėte apie ½ colio elektros laido, kaip parodyta paveikslėlyje žemiau.


Tada sulenkite atvirus laidus, kaip parodyta paveikslėlyje žemiau.


Atsukite atsuktuvu CV-3 pažymėtus relės varžtus.


Į abu varžtų gnybtus įkiškite anksčiau atplėštus ir sulankstytus atvirus laidus ir priveržkite varžtus CV-3 atsuktuvu.

Relės perjungimo tikrinimas prijungus kintamosios srovės apkrovą

Kai kintamosios srovės apkrova prijungta prie 5 V relės, prijunkite lemputės kištuką prie sieninio lizdo.


Paleiskite test.py „Python“ scenarijų iš projekto katalogo taip:

$python3 test.py


The test.py „Python“ scenarijus turėtų pradėti perjungti 5 V relę, kuri savo ruožtu penkių sekundžių intervalais perjungs aukštos įtampos kintamosios srovės lemputę. Kintamosios srovės lemputė turėtų degti penkias sekundes, tada išjungti penkias sekundes ir pan.

Žemiau esančiame paveikslėlyje lemputė išjungta.


Žemiau esančiame paveikslėlyje įjungta lemputė.


Kaip matote, mes galime perjungti relę ir valdyti aukštos įtampos kintamosios srovės lemputę naudodami „Python“ programavimo kalbą. Taigi, paspauskite + C nutraukti test.py scenarijus.

Dabar pereikime prie kito skyriaus.

Namų automatikos žiniatinklio programos rašymas

Šiame skyriuje parodysiu, kaip parašyti API pagrįstą žiniatinklio programą naudojant „Python“ programavimo kalbą. Naudodami žiniatinklio programą galite valdyti relę ir kintamosios srovės buitinį (-ius) buitinį (-ius) prietaisą (-us) arba elektros prietaisą (-us), prijungtą (-as) prie žiniatinklio naršyklės.

PASTABA: Visi šiame skyriuje parodyti kodai yra mano „GitHub“ saugykloje shovon8 / aviečių-pi-namų-automatika . Jei norite, galite klonuoti mano „GitHub“ saugyklą ir praleisti visus kodus.

Projekto kataloge sukurkite server.py Python scenarijų taip:

$nanoserver.py


Įveskite šias kodų eilutes server.py „Python“ scenarijus.

nuokolbaimportasKolba,jsonify,url_for,render_template
nuogpiozeroimportasLED
nuouuidimportasuuid4
kambariai= {}
kambariai[„1 kambarys“] = [{
'id': uuid4(),
'vardas':„Šviesa 1“,
„piktograma“:„fa fa“ lemputė,
'statusas':Netiesa,
'relėPin':4,
'relayInstance':Netiesa
}, {
'id': uuid4(),
'vardas':„Ventiliatorius 1“,
„piktograma“:'fa fa-fan',
'statusas':Netiesa,
'relėPin':6,
'relayInstance':Netiesa
}]
kambariai[„Vonios kambarys 1“] = [{
'id': uuid4(),
'vardas':„Šviesa 1“,
„piktograma“:„fa fa“ lemputė,
'statusas':Netiesa,
'relėPin':5,
'relayInstance':Netiesa
}]
programėlę=Kolba(__vardas__)
programėlę.konfig[„SEND_FILE_MAX_AGE_DEFAULT“] = 0
@programėlę.maršrutą('/')
defnamai():
grįžtirender_template('./index.html',kambariai=kambariai)
deftoggle_appliance_status(id):
dėlkambarysįkambariai:
dėlprietaisasįkambariai[kambarys]:
jei p(prietaisas['id']) == id:
jeiprietaisas['relayInstance']:
prietaisas['relayInstance'].Uždaryti()
prietaisas['relayInstance'] = Netiesa
Kitas:
prietaisas['relayInstance'] =LED(prietaisas['relėPin'])
prietaisas['relayInstance'].ant()
prietaisas['statusas'] = neprietaisas['statusas']
grįžti Tiesa
grįžti Netiesa
@programėlę.maršrutą('/prietaisas/perjungti/')
defprietaiso_jungiklis(id):
grįžtijsonify({'statusas': toggle_appliance_status(id)})

Kai baigsite, paspauskite + X po to IR ir išsaugoti server.py „Python“ scenarijus.


Čia 1-3 eilutės importuoja visus reikalingus komponentus iš atitinkamų bibliotekų.


5 eilutė sukuria tuščią kambariai žodynas. Šiame žodyne išsaugosime visą kintamosios srovės prietaiso informaciją, kurią norime valdyti žiniatinklio programoje.


The kambariai detalės saugomos 7-29 eilutėse.


Aptarkime vieno iš patalpų duomenų struktūrą.

Čia bus kambario pavadinimas 1 kambarys. Taigi, 1 kambarys yra raktas į kambariai žodynas.


The 1 kambarys rakto vertė yra masyvas. Masyvo elementų skaičius yra lygus toje patalpoje esančių kintamosios srovės buitinių prietaisų, kuriuos taip pat norite valdyti iš žiniatinklio programos, skaičiui. Šiuo atveju turime du kintamosios srovės buitinius prietaisus, kuriuos norime valdyti: Šviesa 1 ir Ventiliatorius 1 .


Kiekvienas buitinės technikos apibrėžimas turi id . The id yra atsitiktinai sugeneruotas UUID. Tai naudojama norint nustatyti, kurį kambarį norime valdyti naudodami API.

Buitinis prietaisas taip pat turi visas šias savybes:

  • vardas (šviesa 1 tokiu atveju)
  • piktogramą („Font Awesome“ piktogramų klasė, nes piktogramoms naudosime „Font Awesome“)
  • būsena (tiesa jei ant ir Netiesa jei išjungtas )
  • relėPin (GPIO kaiščio numeris, naudojamas valdyti relę, prijungtą prie AC buitinio prietaiso)
  • relėInstance (inicializuotas LED objektas gpiozero biblioteka, atsakinga už atitinkamo GPIO kaiščio valdymą - relėPin )


31 eilutė inicijuoja „Python“ žiniatinklio serverio kolbą.

32 eilutėje konfigūruojamas kolbos žiniatinklio serveris.


34-36 eilutės siunčia index.html failą iš šablonai/ aplanką, kai lankotės namų automatikos žiniatinklio programoje.

Kolbos naudojimas Jinja2 šablonų kalba, kad būtų pateiktas index.html failą. Taigi, aš praėjau kambariai žodynas į index.html failą. Jinja2 parodys pagrindinį puslapį naudodami kambariai duomenis.


Funkcija toggle_appliance_status () 39-52 eilutėse naudojamas įjungti buitinį prietaisą, jei jis išjungtas, ir išjungti buitinį prietaisą, jei jis įjungtas naudojant prietaiso id .

Tai grįžta Tiesa jei perjungimo operacija pavyko. Jei yra klaida, ji grįš Netiesa .


55–57 eilutės naudojamos buitiniam prietaisui perjungti naudojant /prietaisas/perjungti/ Žiniatinklio serverio API galinis taškas. Čia, id yra buitinio prietaiso ID.


Sukurkite index.html failą šablonai/ savo projekto katalogą taip:

$nanošablonus/index.html

Įveskite šias kodų eilutes index.html scenarijus.


< html lang='įjungtas'>
< galva >
< meta simbolių rinkinys=„UTF-8“>
< meta vardas='peržiūros sritis' turinys='plotis = įrenginio plotis, pradinė skalė = 1,0'>
< nuoroda rel='stiliaus lapas' href='{{url_for (' static ', filename =' fontawesome/css/all.min.css ')}}'>
< nuoroda rel='stiliaus lapas' href='{{url_for (' static ', filename =' style.css ')}}'>
< titulas >Namų automatizavimas naudojant „Raspberry Pi“</ titulas >
</ galva >
< kūnas >
< div id='turinys'>
< h1 >„Raspberry Pi“ namų automatika</ h1 >

{ % kambariui kambariuose %}
< div klasė='kambarys'>
< h2 >{{ kambarys }}</ h2 >
< div klasė='prietaisai'>
{ % už prietaisą kambariuose [room] %}
< div klasė='prietaisas' id='{{prietaisas [' id ']}}'> ='aktyvus'>
< i klasė='{{prietaisas [' icon ']}}'></ i >
< span >{{prietaisas ['pavadinimas']}}</ span >
</ div >
{ % endfor %}
</ div >
</ div >
{ % endfor %}

</ div >

< scenarijus src='{{url_for (' static ', filename =' app.js ')}} “ tipo='text/javascript'></ scenarijus >
</ kūnas >
</ html >

Kai baigsite, paspauskite + X po to IR ir išsaugoti index.html failą.


Sukurti stilius.css failą statinis/ savo projekto katalogą taip:

$nanostatinis/stilius.css


Įveskite šias kodų eilutes stilius.css failą.

@importas url('https://fonts.googleapis.com/css2?family=BenchNine: [apsaugotas el. paštas]; 400; 700 & display = swap');

* {
marža: 0;
paminkštinimas: 0;
šrifto šeima: „BenchNine“, be serifo;
}

#turinys >h1{
fone:linijinis-gradientas(įteisingai, rgb(112, 24, 163), rgb(86, 127, 240));
spalva: #fff;
lygiuoti tekstą: centre;
paminkštinimas: .5em 0;
}

div.kambarys {
marža: .5em;
siena: 2 piks kietas rgb(112, 24, 163);
ribos spindulys: 5 piks;
}

div.kambarysh2{
/* fonas: rgb (9, 76, 121); */
fone:linijinis-gradientas(įteisingai, rgb(112, 24, 163), rgb(86, 127, 240));
paminkštinimas: 0 0 0 .5em;
spalva: #fff;
}

div.prietaisai {
marža: .5em .5em 0 0;
ekranas:lankstytis;
lankstus įvyniojimas:apvynioti;
}

div.prietaisas {
siena: 2 piks kietas rgb(112, 24, 163);
ribos spindulys: 5 piks;
pločio: 110 piks;
aukščio: 120 piks;
lygiuoti tekstą: centre;
marža: 0 0 .5em .5em;
ekranas:lankstytis;
lanksti kryptis:stulpelis;
}

div.prietaisasi.fa {
šrifto dydis: 4em;
lanksčiai augti: 1;
padding-top: 0.3em;
spalva: rgb(204, penkiasdešimt, penkiasdešimt);
}

div. prietaisas[duomenų aktyvus='aktyvus']i.fa {
spalva: rgb(32, 177, 51);
}

div.prietaisasspan{
ekranas: blokuoti;
šrifto svoris: drąsus;
fone: rgb(112, 24, 163);
spalva: #fff;
}

Kai baigsite, paspauskite + X po to IR ir išsaugoti stilius.css failą.


Sukurkite app.js failą statinis/ savo projekto katalogą taip:

$nanostatinis/app.js


Įveskite šias kodų eilutes app.js failą.

langas.addEventListener('pakrauti',pagrindinis);

funkcijapagrindinis() {
funkcijatoggleApplianceState(Ir) {
kurid=Ir.kelias[1].id;

kurhttp= naujasXMLHttpRequest();

http.jau pasikeitus = funkcija() {
jei(tai.readyState === 4 && tai.būsena === 200) {
jei(JSONAS.išanalizuoti(tai.responseText).būsena === tiesa) {
jei(Ir.kelias[1].hasAttribute(„duomenys aktyvūs“)) {
Ir.kelias[1].removeAttribute(„duomenys aktyvūs“)
} Kitas {
Ir.kelias[1].setAttribute(„duomenys aktyvūs“, 'aktyvus')
}
}
}
}

http.atviras(„GET“,``/prietaisas/perjungti/${id}``, tiesa);
http.siųsti();
}


kurprietaisai=dokumentas.getElementsByClassName('prietaisas');
dėl(i=0;i<prietaisai.ilgio;i++) {
prietaisai[i].addEventListener('spustelėkite',toggleApplianceState);
}
}

Kai baigsite, paspauskite + X po to IR ir išsaugoti app.js failą.


Čia 1 eilutė eina pagrindinis () funkcija, kai tinklalapis baigiamas įkelti.

Viduje konors index.html failą, kiekvienas buitinis prietaisas yra pridedamas prie prietaisas klasė. 26–29 eilutės naudojamos kiekvienam buitiniam prietaisui pasirinkti iš tinklalapio ir pridėti spustelėkite įvykis prietaisui. Kai kas nors spustelėja buitinį prietaisą iš tinklalapio, toggleApplianceState () funkcija veiks.


4-23 eilutėse toggleApplianceState () funkcija naudojama norint paprašyti /prietaisas/perjungti/ žiniatinklio serverio galinį tašką, kad pakeistumėte spustelėto buitinio prietaiso būseną. Prašymas pateikiamas fone per AJAX. Gavus atsakymą, tinklalapis atitinkamai atnaujinamas.


Eikite į statinis/ katalogą savo projekto kataloge taip:

$CDstatinis/


Atsisiųskite „Font Awesome“ naudodami šią komandą:

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


Atsisiuntę nuostabų šriftą, turėtumėte rasti naują ZIP failą fontawesome-free-5.15.1-web.zip viduje konors statinis/ katalogą.

$ls -lh


Išpakuokite fontawesome-free-5.15.1-web.zip failą su šia komanda:

$išpakuotifontawesome-free-5.15.1-web.zip


The fontawesome-free-5.15.1-web.zip failas dabar turėtų būti išpakuotas.


Naujas katalogas fontawesome-free-5.15.1-web/ turėtų būti sukurtas statiniame/ kataloge, kaip matote žemiau esančioje ekrano kopijoje.

$ls -lh

Pervardykite katalogą fontawesome-free-5.15.1-web/ į nuostabu/ su tokia komanda:

$mv -vfontawesome-free-5.15.1-web fontawesome


Dabar jums to nebereikia fontawesome-free-5.15.1-web.zip failą. Taigi, pašalinkite fontawesome-free-5.15.1-web.zip failą su šia komanda:

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


The statinis/ katalogo struktūra turėtų atrodyti taip, kaip parodyta žemiau esančioje ekrano kopijoje.

$ls -lh


Grįžkite į projekto katalogą ~/www taip:

$CD..

Namų automatikos žiniatinklio programos testavimas

Norėdami išbandyti namų automatikos žiniatinklio programą, vykdykite šią komandą savo projekto kataloge:

$FLASK_APP= server.py kolbos paleidimas


Žiniatinklio programa turėtų būti prieinama jūsų „Raspberry Pi“ 5000 prievade.


„Chromium“ žiniatinklio naršyklėje apsilankykite http: // localhost: 5000 . Turėtų būti įkelta namų automatikos žiniatinklio programa.

Spustelėkite lemputės piktogramą, nurodytą paveikslėlyje žemiau.


Kintamosios srovės lemputė dabar turėtų būti įjungta. Piktogramos spalva taip pat turėtų pasikeisti į žalią, tai reiškia, kad lemputė įjungta.


Taigi, namų automatikos žiniatinklio programa veikia. Paspauskite + C norint nutraukti žiniatinklio serverį.

„Systemd Service“ kūrimas namų automatikos žiniatinklio programai

Šiame skyriuje parodysiu, kaip sukurti sisteminį paslaugų failą namų automatikos žiniatinklio programai, kad ji automatiškai prasidėtų įkrovos metu.

Pirmiausia sukurkite raspi-home-automation.service failą savo projekto kataloge taip:

$nanoraspi-home-automation.service

Raspi-home-automation.service faile įveskite šias eilutes.

[Vienetas]
apibūdinimas= Raspberry Pi namų automatikos žiniatinklio paslauga
Po= tinklas.tikslas
[Paslauga]
„WorkingDirectory“=/namai/pi/www
Aplinka=FLASK_APP= serveris.py
Aplinka=FLASK_ENV= gamyba
„ExecStart“=/usr/esu/kolbos paleidimas-šeimininkas= 0,0,0,0
Standartinė išvestis= paveldėti
Standartinė klaida= paveldėti
Perkrauti= visada
Vartotojas= pi
[Diegti]
Ieškau= kelių vartotojų.tikslas

Kai baigsite, paspauskite + X po to IR ir išsaugoti raspi-home-automation.service failą.


Nukopijuokite raspi-home-automation.service failą į /etc/systemd/system/ katalogą su tokia komanda:

$sudo cp -vraspi-home-automation.service/ir kt/sistema/sistema/


Iš naujo įkelkite sisteminius demonus, kad pakeitimai įsigaliotų taip:

$sudosystemctl demonas iš naujo


Pridėti raspi-home-automatika „Raspberry Pi OS“ sistemos paleidimo paslauga su šia komanda:

$sudosystemctlįgalintiraspi-home-automation.service


Iš naujo paleiskite „Raspberry Pi“ naudodami šią komandą:

$sudoperkrauti


Kai Raspberry Pi batai, raspi-home-automatika paslauga turėtų būti aktyvi/veikianti, kaip matote žemiau esančioje ekrano kopijoje.

$sudosystemctl status raspi-home-automation.service

Prieiga prie namų automatikos žiniatinklio programos iš kitų įrenginių

Norėdami pasiekti namų automatikos žiniatinklio programą iš kitų namų tinklo įrenginių, turėsite žinoti savo „Raspberry Pi“ įrenginio IP adresą.

Raspberry Pi 4 įrenginio IP adresą galite rasti savo namų maršrutizatoriaus žiniatinklio valdymo sąsajoje. Mano atveju, IP adresas yra 192.168.0.103. Jums tai bus kitaip. Taigi, nuo šiol būtinai pakeiskite mano IP adresą savo.


Jei turite prieigą prie „Raspberry Pi“ konsolės, taip pat galite paleisti šią komandą, kad surastumėte IP adresą.

$pagrindinio kompiuterio vardas -Aš


Kai žinote savo „Raspberry Pi“ įrenginio IP adresą, galite jį pasiekti iš bet kurio namų tinklo įrenginio.

Kaip matote žemiau esančioje ekrano kopijoje, iš savo „Android“ išmaniojo telefono pasiekiau namų automatikos žiniatinklio programą.


Būtinai įjunkite lemputės kištuką į sieninį elektros lizdą.


Pagal numatytuosius nustatymus lemputė turi būti išjungta.


Jei namų automatikos žiniatinklio programoje paliesite lemputės piktogramą, lemputės piktogramos spalva turėtų pasikeisti į žalią, o tai reiškia, kad lemputė įjungta.


Kaip matote paveikslėlyje žemiau, lemputė įjungta.

Išvada

Šiame straipsnyje buvo parodyta, kaip naudojant 5 V relę valdyti aukštos įtampos kintamosios srovės elektros įrenginį iš „Raspberry Pi“ naudojant „Python“ programavimo kalbą. Straipsnis taip pat parodė, kaip parašyti API pagrįstą „Python“ kolbos žiniatinklio programą, kad būtų galima valdyti relę iš žiniatinklio naršyklės. Šis straipsnis turėtų padėti jums pradėti namų automatizavimą naudojant „Raspberry Pi“.