- Potrebne komponente
- Shema vezja
- Nastavitev bučke v Raspberry Pi za nadzor garažnih vrat
- Ustvarjanje skripta Python za pametno odpiranje garažnih vrat
- Ustvarjanje strani HTML za spletni strežnik Raspberry Pi
- {{pins.name}} {% if pins.state == true%} je trenutno odprto
Zakaj v tej dobi interneta stvari (interneta stvari), kjer je vse mogoče upravljati na daljavo s pametnim telefonom, zakaj nositi ključe s seboj. Obstaja veliko tehnologij, ki podpirajo brezžični nadzor naprav, kot so RFID, Bluetooth, Wi-Fi, LoRa. Pred tem smo zgradili nekaj alarmov in krmilnega vezja za brezžično odpiranje in zapiranje vrat:
- Ključavnica vrat Arduino RFID
- Samodejni odpirač vrat z uporabo Arduina
- Magnetni alarmni krog vrat z uporabo Hall-ovega senzorja
- Alarm za zaščito vrat na osnovi IoT, ki ga nadzoruje Google Assistant
V tej vadnici bomo z Raspberry Pi zgradili pametni odpirač za garažna vrata. Tu bo ustvarjen spletni strežnik Raspberry Pi za odpiranje in zapiranje garažnih vrat s pomočjo pametnega telefona.
Potrebne komponente
- Plošča Raspberry pi z nameščenim Raspbian
- Relejni modul
- Povezovanje žic
Predpostavlja se, da je vaš Raspberry Pi že nameščen z operacijskim sistemom in se lahko poveže z internetom. V nasprotnem primeru sledite navodilom za začetek uporabe Raspberry Pi. Tu uporabljamo Rasbian Jessie, nameščen Raspberry Pi 3.
Tu se zunanji monitor s kablom HDMI uporablja kot zaslon za povezavo z Raspberry Pi. Če nimate monitorja, lahko s pomočjo odjemalca SSH (Putty) ali strežnika VNC vzpostavite povezavo z Raspberry pi s prenosnikom ali računalnikom. Več o nastavitvi Raspberry Pi brezglave tukaj.
Shema vezja
Na izhod releja priključite mehanizem za odpiranje garažnih vrat. Tu smo pravkar za demonstracijo priklopili LED z relejem.
Nastavitev bučke v Raspberry Pi za nadzor garažnih vrat
Tu smo z uporabo bučke ustvarili spletni strežnik, ki ponuja način za pošiljanje ukazov s spletne strani na Raspberry Pi za nadzor robota prek omrežja. Flask nam omogoča zagon skriptov python prek spletne strani, podatke iz Raspberry Pi pa lahko pošiljamo in prejemamo v spletni brskalnik in obratno. Bučka je mikrookvir za Python. To orodje temelji na Unicode z vgrajenim razvojnim strežnikom in razhroščevalnikom, integrirano podporo za testiranje enot, podporo za varne piškotke in njegovo enostavno uporabo, zaradi česar je koristno za ljubitelje hobije.
Zaženite naslednje ukaze, da namestite bučko v Raspberry Pi:
sudo apt-get posodobitev sudo apt-get namestitev python-pip python-bučka
Zdaj zaženite ukaz pip, da namestite Flask in njegove odvisnosti:
sudo pip namestitvena bučka
Tu lahko izveste več o programiranju s pomočjo Flask, preverite tudi naše prejšnje projekte, kjer smo s Flaskom upravljali robota prek spletnega strežnika, poslali sporočilo s spletne strani na Raspberry Pi in poslali vrednost teže na Raspberry Pi v Smart Container.
Zdaj bomo napisali skript python za naš spletni strežnik za garažna vrata.
Ustvarjanje skripta Python za pametno odpiranje garažnih vrat
Ta skript bo deloval z našimi Raspberry Pi GPIO-ji in nastavil spletni strežnik. Torej, to je osnovni skript za našo aplikacijo. Na koncu je podan celoten Python Script za odpirač vrat, tukaj smo razložili nekaj njegovih delov.
Najprej naredite mapo. Vse ostale potrebne mape naj bodo samo v tej mapi. Zaženite spodnje ukaze, da v tej mapi naredite mapo in ustvarite datoteko python z imenom app.py.
mkdir garage_door cd garage_door nano app.py
To bo odprlo urejevalnik Nano, kjer moramo napisati scenarij.
Najprej vključite pomembne knjižnice.
uvozi RPi.GPIO kot GPIO iz bučke import Bučka, render_template, request app = Bučka (__ name__, static_url_path = '/ static')
Zdaj ustvarite slovar kot zatiči, v katerem boste shranili številko, ime in stanje zatiča. Glede na vaše potrebe lahko uporabite več kot en zatič.
zatiči = { 14: {'name': 'Garažna vrata', 'state': GPIO.LOW} }
Nato nastavite zatič kot izhod in ga sprva znižajte.
Za zatič v zatičih: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Zdaj naredite glavno funkcijo za branje stanja pinov in to stanje shranite v spremenljivko.
@ app.route ("/") def main (): za zatič v zatičih: zatiči = GPIO.input (pin) ..
Te podatke moramo prenesti na našo html stran, da lahko nadzorujemo stanje gumba za vnos.
vrnitev render_template ('main.html', ** templateData)
Zdaj naredite funkcijo za obdelavo zahtev iz URL-ja s številko PIN in dejanjem v njem.
@ app.route ("/
Pretvorite pin iz URL-ja v celo število.
changePin = int (changePin)
Če je delovni del URL-ja "odprt", naredite naslednje.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Celoten skript lahko kopirate s konca te vadnice in ga shranite s tipkama ctrl + x in nato pritisnete enter. Končali smo s skriptom python. Zdaj moramo narediti stran HTML za interakcijo s skriptom python.
Ustvarjanje strani HTML za spletni strežnik Raspberry Pi
V isti mapi garage_door ustvarite drugo mapo z imenom Predloge in v tej mapi z uporabo spodnjih ukazov ustvarite datoteko.html.
predloge ck predloge cd predloge nano main.html
V urejevalnik besedil nano napišite html kodo. Lahko uredite del strani in ga oblikujte po svoji izbiri. Pravkar sem uporabil shemo css tretje osebe z uporabo oznake povezave. Popolna koda HTML je navedena spodaj:
Spletni strežnik za garažna vrata
{% za zatič v zatičih%}{{pins.name}} {% if pins.state == true%} je trenutno odprto
Tu je pomemben del ustvariti gumb za odpiranje in zapiranje vrat in določiti stanje gumba za odpiranje in zapiranje . Gumb bo poslal in prenesel stanje GPIO iz skripta python.
Zgoraj navedeno kodo HTML lahko uporabite v urejevalniku in jo shranite. Zdaj je spletni strežnik pripravljen za zagon.
Odprite terminal in se pomaknite do mape garage_door in zaženite spodnji ukaz
sudo python app.py
Odprite brskalnik in vnesite svoj IP naslov Raspberry Pi in pritisnite Enter. Če želite poiskati svoj naslov IP, v terminalu zaženite spodnji ukaz.
ime gostitelja -I
Videli boste takšno stran.
Prepričajte se, da je relejni modul povezan z malino pi. Pritisnite gumb Odpri, da vklopite rele ali odprete garažna vrata. Ogledate si lahko tudi stanje releja. Takoj, ko boste obrnili na rele, bo gumb besedilo spremeniti bližini izklopiti rele. Zdaj, ko znova kliknete gumb, se rele izklopi in besedilo gumba se ponovno spremeni v Odpri .
Če želite zaustaviti strežnik, pritisnite ctrl + c.
Torej samo priključite ta rele na mehanizem za odpiranje vrat, ki je na voljo na trgu, in začnite upravljati garažna vrata s pametnim telefonom.
Spodaj je predstavljen predstavitveni video.