- Būtini komponentai
- Grandinės schema
- Kolbos nustatymas „Raspberry Pi“ garažo durų valdymui
- „Smart Garage Durų atidarymo“ „Python“ scenarijaus kūrimas
- HTML puslapio kūrimas „Raspberry Pi“ tinklo serveriui
- {{pins.name}} {%, jei pins.state == true%} šiuo metu yra atidaryta
Šiame daiktų interneto (daiktų interneto) amžiuje, kai viską galima valdyti nuotoliniu būdu naudojant išmanųjį telefoną, kodėl verta nešiotis raktus su savimi. Yra daugybė technologijų, palaikančių belaidį tokių įrenginių valdymą kaip RFID, „Bluetooth“, „Wi-Fi“, „LoRa“. Anksčiau mes sukūrėme keletą durų signalizacijų ir durų valdymo grandinių, kad atidarytume ir uždarytume duris belaidžiu būdu:
- „Arduino“ RFID durų spyna
- Automatinis durų atidarymo įrenginys naudojant „Arduino“
- Magnetinė durų signalizacijos grandinė naudojant „Hall“ jutiklį
- DI turimą durų apsaugos signalizaciją valdo „Google“ padėjėjas
Čia, šioje pamokoje, sukursime „ Smart Garage“ durų atidarymo priemonę naudodami „Raspberry Pi“. Čia bus sukurtas „Raspberry Pi“ interneto serveris, kuris atidarys ir uždarys garažo vartus naudodami išmanųjį telefoną.
Būtini komponentai
- „Raspberry pi“ lenta, kurioje įdiegta „Raspbian“
- Relės modulis
- Laidų sujungimas
Daroma prielaida, kad jūsų „Raspberry Pi“ jau yra įdiegta su operacine sistema ir gali prisijungti prie interneto. Jei ne, prieš tęsdami vadovaukitės instrukcija „Pradėti naudoti„ Raspberry Pi ““. Čia mes naudojame Rasbian Jessie įdiegtą „Raspberry Pi 3“.
Išorinis monitorius, naudojant HDMI kabelį, naudojamas kaip ekranas, kad galėtumėte prisijungti prie „Raspberry Pi“. Jei neturite monitoriaus, galite naudoti SSH klientą (glaistą) arba VNC serverį, kad prisijungtumėte prie „Raspberry pi“ naudodami nešiojamąjį kompiuterį ar kompiuterį. Sužinokite daugiau apie „Raspberry Pi“ nustatymą be galvos čia.
Grandinės schema
Prijunkite garažo durų atidarymo mechanizmą prie relės išėjimo. Čia ką tik prijungėme šviesos diodą su rele demonstravimo tikslais.
Kolbos nustatymas „Raspberry Pi“ garažo durų valdymui
Čia mes sukūrėme žiniatinklio serverį naudodami „ Flask“, kuris suteikia galimybę nusiųsti komandas iš tinklalapio į „Raspberry Pi“, kad būtų galima valdyti robotą tinkle. Kolba leidžia mums paleisti savo python scenarijus per tinklalapį ir mes galime siųsti ir gauti duomenis iš „Raspberry Pi“ į interneto naršyklę ir atvirkščiai. Kolba yra „Python“ mikrorėmas. Šis įrankis yra „Unicode“ pagrįstas, turintis įmontuotą kūrimo serverį ir derintuvą, integruoto įrenginio testavimo palaikymą, saugių slapukų palaikymą ir paprastą naudojimąsi, todėl šie dalykai yra naudingi mėgėjams.
Norėdami įdiegti kolbą į „Raspberry Pi“, paleiskite šias komandas:
sudo apt-get update sudo apt-get install python-pip python-kolba
Dabar paleiskite komandą pip, kad įdiegtumėte kolbą ir jos priklausomybes:
sudo pip įdiekite kolbą
Čia galite sužinoti daugiau apie programavimą naudojant kolbą, taip pat patikrinkite ankstesnius mūsų projektus, kuriuose mes naudojome kolbą, kad valdytume robotą per interneto serverį, išsiųstume pranešimą iš tinklalapio į „Raspberry Pi“ ir išsiųstume svorio vertę į „Raspberry Pi“ išmaniajame konteineryje.
Dabar mes parašysime garažo vartų tinklo serverio pitono scenarijų.
„Smart Garage Durų atidarymo“ „Python“ scenarijaus kūrimas
Šis scenarijus sąveikaus su mūsų „Raspberry Pi“ GPIO ir sukurs žiniatinklio serverį. Taigi, tai yra pagrindinis mūsų programos scenarijus. Pabaigoje pateikiamas pilnas „Python“ scenarijus durų atidarymui, čia mes paaiškinome keletą jo dalių.
Pirmiausia sukurkite aplanką. Visi kiti reikalingi aplankai turėtų būti tik šiame aplanke. Paleisti žemiau komandas padaryti aplanką ir sukurkite python failą pavadinimu app.py viduje šiame aplanke.
mkdir garage_door cd garage_door nano app.py
Tai atvers „Nano“ redaktorių, kuriame turėsime parašyti scenarijų.
Pradėkite įtraukdami svarbias bibliotekas.
importuoti RPi.GPIO kaip GPIO iš kolbos, importuoti kolbą, „render_template“, prašyti programos = kolba (__ name__, static_url_path = '/ static')
Dabar sukurkite žodyną kaip smeigtukus, kad išsaugotumėte smeigtuko numerį, vardą ir smeigtuko būseną. Pagal savo poreikį galite naudoti daugiau nei vieną kaištį.
kaiščiai = { 14: {'name': 'Garažo durys', 'state': GPIO.LOW} }
Tada nustatykite kaištį kaip išvestį ir iš pradžių padarykite jį žemą.
Kaiščių kaiščiams: GPIO.setup (PIN, GPIO.OUT) GPIO.output (PIN, GPIO.LOW)
Dabar sukurkite pagrindinę funkciją, kad galėtumėte nuskaityti pin būseną ir išsaugokite šią būseną kintamajame.
@ app.route ("/") def main (): kaiščiui kaiščiuose : kaiščiai = GPIO.input (PIN) ..
Turime perduoti šiuos duomenis į savo HTML puslapį, kad galėtume valdyti įvesties mygtuko būseną.
grąžinti render_template ('main.html', ** templateData)
Dabar sukurkite funkciją, kad būtų galima tvarkyti užklausas iš URL su PIN kodu ir veiksmu.
@ app.route ("/
Konvertuokite smeigtuką iš URL į sveiką skaičių.
changePin = int (changePin)
Jei URL veiksmo dalis yra „atidaryta“, atlikite šiuos veiksmus.
jei veiksmas == "atidaryti": GPIO.output (changePin, GPIO.HIGH) jei veiksmas == "close": GPIO.output (changePin, GPIO.LOW)
Galite nukopijuoti visą scenarijų iš šios mokymo programos pabaigos ir išsaugoti jį naudodami „Ctrl“ + x ir paspauskite „Enter“. Mes padarėme su python scenarijumi. Dabar turime sukurti HTML puslapį, kad galėtume sąveikauti su python scenarijumi.
HTML puslapio kūrimas „Raspberry Pi“ tinklo serveriui
Tame pačiame „ Garage_door“ aplanke sukurkite kitą aplanką, pavadintą šablonais, o šiame aplanke padarykite.html failą naudodami toliau pateiktas komandas.
mkdir templates CD šablonai nano main.html
Į Nano teksto redaktoriumi, rašyti HTML kodą. Galite redaguoti puslapio dalį ir suformuokite jį pagal savo pasirinkimą. Ką tik naudojau trečiosios šalies css schemą naudodama nuorodos žymą. Visas HTML kodas pateikiamas žemiau:
„Garage Door“ tinklo serveris
{% už smeigtuką kaiščiuose%}{{pins.name}} {%, jei pins.state == true%} šiuo metu yra atidaryta
Svarbi dalis yra sukurti mygtuką durims atidaryti ir uždaryti ir priskirti būseną atidarymo ir uždarymo mygtukui. Mygtukas nusiųs GPIO būseną iš python scenarijaus.
Redaktoriuje galite naudoti aukščiau pateiktą HTML kodą ir jį išsaugoti. Dabar žiniatinklio serveris yra paruoštas paleisti.
Atidarykite terminalą ir eikite į aplanką „ Garage_Door“ ir paleiskite žemiau esančią komandą
sudo python app.py
Atidarykite naršyklę ir įveskite savo aviečių pi IP adresą ir paspauskite „Enter“. Norėdami rasti savo IP adresą, galite paleisti žemiau esančią komandą terminale.
pagrindinio kompiuterio vardas -I
Pamatysite tokį puslapį.
Įsitikinkite, kad relės modulis prijungtas prie aviečių pi. Norėdami įjungti relę arba atidaryti garažo duris, paspauskite mygtuką Atidaryti . Taip pat galite pamatyti relės būseną. Kai tik įjungsite relę, mygtuko tekstas bus pakeistas Uždaryti , kad relė būtų išjungta. Dabar, kai dar kartą spustelėsite mygtuką, relė bus išjungta, o mygtuko tekstas vėl bus pakeistas į Atidaryti .
Norėdami sustabdyti serverį, paspauskite „Ctrl“ + C.
Taigi tiesiog prijunkite šią relę prie durų atidarymo mechanizmo, kuris yra lengvai prieinamas rinkoje, ir pradėkite valdyti garažo vartus naudodami „Smartphone“.
Parodomasis vaizdo įrašas pateikiamas žemiau.