- Nepieciešamās sastāvdaļas
- Ķēdes shēma
- Kolbas iestatīšana Raspberry Pi, lai kontrolētu garāžas durvis
- Python skripta izveide viedajam garāžas durvju atvērējam
- HTML lapas izveide Raspberry Pi tīmekļa serverim
- {{pins.name}} {%, ja pins.state == true%} pašlaik ir atvērts
Šajā IoT (lietu interneta) laikmetā, kad visu var kontrolēt attālināti, izmantojot viedtālruni, kāpēc nēsāt atslēgas līdzi. Ir daudz tehnoloģiju, lai atbalstītu tādu ierīču kā RFID, Bluetooth, Wi-Fi, LoRa bezvadu vadību. Iepriekš mēs izveidojām dažus durvju signalizācijas un durvju vadības ķēdes, lai durvis atvērtu un aizvērtu bezvadu režīmā:
- Arduino RFID durvju slēdzene
- Automātiskais durvju atvērējs, izmantojot Arduino
- Magnētiskā durvju trauksmes shēma, izmantojot zāles sensoru
- IoT balstīta durvju drošības trauksme, ko kontrolē Google asistents
Šeit šajā apmācībā mēs izveidosim viedo garāžu durvju atvērēju, izmantojot Raspberry Pi. Šeit tiks izveidots Raspberry Pi tīmekļa serveris, lai atvērtu un aizvērtu garāžas durvis, izmantojot viedtālruni.
Nepieciešamās sastāvdaļas
- Aveņu pi dēlis ar tajā instalētu Raspbian
- Releja modulis
- Vadu savienošana
Tiek pieņemts, ka jūsu Raspberry Pi jau ir mirgojis ar operētājsistēmu un spēj izveidot savienojumu ar internetu. Ja nē, pirms turpināt, izpildiet pamācību Darba sākšana ar Raspberry Pi. Šeit mēs izmantojam Rasbian Jessie instalēto Raspberry Pi 3.
Šeit ārējais monitors, izmantojot HDMI kabeli, tiek izmantots kā displejs, lai izveidotu savienojumu ar Raspberry Pi. Ja jums nav monitora, varat izmantot SSH klientu (Putty) vai VNC serveri, lai izveidotu savienojumu ar Raspberry pi, izmantojot klēpjdatoru vai datoru. Uzziniet vairāk par Raspberry Pi iestatīšanu bez galvas šeit.
Ķēdes shēma
Pievienojiet garāžas durvju atvēršanas mehānismu releja izejai. Šeit mēs tikko pievienojām LED ar releju demonstrācijas nolūkiem.
Kolbas iestatīšana Raspberry Pi, lai kontrolētu garāžas durvis
Šeit mēs esam izveidojuši tīmekļa serveri, izmantojot kolbu, kas nodrošina veidu, kā nosūtīt komandas no tīmekļa lapas uz Raspberry Pi, lai vadītu robotu tīklā. Kolba ļauj mums palaist mūsu pitona skriptus, izmantojot tīmekļa lapu, un mēs varam nosūtīt un saņemt datus no Raspberry Pi uz tīmekļa pārlūkprogrammu un otrādi. Kolba ir Python mikrorāmis. Šis rīks ir balstīts uz Unicode, kam ir iebūvēts izstrādes serveris un atkļūdotājs, integrēts vienību testēšanas atbalsts, atbalsts drošām sīkdatnēm un tas ir viegli lietojams. Šīs lietas padara to noderīgu vaļaspriekam.
Lai instalētu kolbu savā Raspberry Pi, izpildiet šīs komandas:
sudo apt-get update sudo apt-get install python-pip python-kolba
Tagad palaidiet komandu pip, lai instalētu kolbu un tās atkarības:
sudo pip uzstādīt kolbu
Jūs varat uzzināt vairāk par programmēšanu, izmantojot kolbu šeit, pārbaudiet arī mūsu iepriekšējos projektus, kuros mēs esam izmantojuši kolbu, lai vadītu robotu, izmantojot tīmekļa serveri, nosūtītu ziņojumu no tīmekļa vietnes Raspberry Pi un svara vērtību nosūtītu uz Raspberry Pi viedajā konteinerā.
Tagad mēs uzrakstīsim pitona skriptu mūsu garāžas durvju tīmekļa serverim.
Python skripta izveide viedajam garāžas durvju atvērējam
Šis skripts mijiedarbosies ar mūsu Raspberry Pi GPIO un izveidos tīmekļa serveri. Tātad, tas ir mūsu lietojumprogrammas galvenais skripts. Pilnīgs Python skripts durvju atvēršanai ir dots beigās, šeit mēs esam izskaidrojuši dažas tā daļas.
Vispirms izveidojiet mapi. Visām pārējām nepieciešamajām mapēm jābūt tikai šajā mapē. Palaidiet zem komandas, lai izveidotu mapi un izveidotu pitona failu ar nosaukumu app.py šajā mapē.
mkdir garage_door cd garage_door nano app.py
Tas atvērs Nano redaktoru, kur mums ir jāraksta skripts.
Sāciet ar svarīgu bibliotēku iekļaušanu.
importējiet RPi.GPIO kā GPIO no kolbas, importējiet kolbu, render_template, pieprasiet lietotni = kolba (__ name__, static_url_path = '/ static')
Tagad izveidojiet vārdnīcu kā piespraudes, lai saglabātu piespraudes numuru, vārdu un piespraudes stāvokli. Jūs varat izmantot vairāk nekā vienu tapu atbilstoši savām vajadzībām.
tapas = { 14: {'name': 'Garāžas durvis', 'state': GPIO.LOW} }
Pēc tam iestatiet tapu kā izvadi un sākotnēji padariet to zemu.
Tapām tapās: GPIO.setup (pin, GPIO.OUT) GPIO.output (PIN, GPIO.LOW)
Tagad izveidojiet galveno funkciju, lai nolasītu piespraudes stāvokli, un saglabājiet šo stāvokli mainīgajā.
@ app.route ("/") def main (): tapai tapās : tapas = GPIO.input (pin) ..
Mums ir nodot šos datus, lai mūsu html lapā tā, ka mēs varam kontrolēt ievades pogu stāvokli.
atgriezt render_template ('main.html', ** templateData)
Tagad izveidojiet funkciju, lai apstrādātu pieprasījumus no URL ar PIN numuru un darbību tajā.
@ app.route ("/
Konvertējiet pin no URL uz veselu skaitli.
changePin = int (changePin)
Ja URL darbības daļa ir "atvērta", rīkojieties šādi.
ja darbība == "atvērta": GPIO.output (changePin, GPIO.HIGH) ja darbība == "aizvērt": GPIO.output (changePin, GPIO.LOW)
Šīs apmācības beigās varat nokopēt pilnu skriptu un saglabāt to, izmantojot ctrl + x, un pēc tam nospiediet taustiņu Enter. Mēs esam paveikuši ar pitona skriptu. Tagad mums ir jāizveido HTML lapa, lai mijiedarbotos ar pitona skriptu.
HTML lapas izveide Raspberry Pi tīmekļa serverim
Tajā pašā mapē garage_door izveidojiet citu mapi ar nosaukumu veidnes un iekšpusē izveidojiet.html failu, izmantojot zemāk esošās komandas.
mkdir templates cd veidnes nano main.html
Jo nano teksta redaktoru, rakstīt html kodu. Jūs varat rediģēt lapas daļu un noformējiet to pēc savas izvēles. Es tikko izmantoju trešās puses css shēmu, izmantojot saites tagu. Pilns HTML kods ir norādīts zemāk:
Garāžas durvju tīmekļa serveris
{% par piespraudi tapās%}{{pins.name}} {%, ja pins.state == true%} pašlaik ir atvērts
Šeit svarīgā daļa ir izveidot pogu durvju atvēršanai un aizvēršanai un piešķirt stāvokli atvēršanas un aizvēršanas pogai. Poga nosūtīs GPIO stāvokli no python skripta.
Redaktorā varat izmantot iepriekš norādīto HTML kodu un to saglabāt. Tagad tīmekļa serveris ir gatavs palaišanai.
Atveriet termināli un dodieties uz mapi garage_door un palaidiet zemāk esošo komandu
sudo python app.py
Atveriet pārlūku un ievadiet savu aveņu pi IP adresi un nospiediet taustiņu Enter. Lai atrastu savu IP adresi, varat palaist zemāk esošo komandu terminālā.
resursdatora nosaukums -Es
Jūs redzēsiet šādu lapu.
Pārliecinieties, vai releja modulis ir savienots ar aveņu pi. Nospiediet pogu Atvērt , lai ieslēgtu releju vai atvērtu garāžas durvis. Var redzēt arī releja stāvokli. Tiklīdz ieslēdzat releju, pogas teksts tiks mainīts uz Aizvērt, lai izslēgtu releju. Tagad, noklikšķinot uz pogas vēlreiz, relejs tiks izslēgts un pogas teksts atkal tiks mainīts uz Atvērt .
Lai apturētu serveri, nospiediet taustiņu kombināciju Ctrl + c.
Tāpēc vienkārši pievienojiet šo releju kādam durvju atvēršanas mehānismam, kas ir viegli pieejams tirgū, un sāciet kontrolēt garāžas durvis, izmantojot viedtālruni.
Demonstrēšana Video ir norādīts zemāk.