- Súčasti sú povinné
- Schéma zapojenia
- Nastavenie banky v Raspberry Pi na ovládanie garážových brán
- Vytvorenie skriptu Python pre otvárač inteligentných garážových dverí
- Vytváranie stránky HTML pre webový server Raspberry Pi
- {{pins.name}} {% if pins.state == true%} je momentálne otvorený
V tejto dobe internetu vecí (Internet vecí), kde je všetko možné ovládať na diaľku pomocou smartphonu, prečo nosiť kľúče so sebou. Existuje veľa technológií na podporu bezdrôtového ovládania zariadení, ako sú RFID, Bluetooth, Wi-Fi, LoRa. Predtým sme postavili niekoľko dverových alarmov a ovládacích obvodov dverí na bezdrôtové otvorenie a zatvorenie dverí:
- Arduino RFID zámok dverí
- Automatický otvárač dverí pomocou Arduina
- Obvod alarmu magnetických dverí pomocou Hallovho senzora
- Bezpečnostný alarm dverí založený na IoT riadený asistentom Google
Tu v tomto výučbe zostavíme otvárač inteligentných garážových dverí pomocou Raspberry Pi. Tu bude vytvorený webový server Raspberry Pi na otváranie a zatváranie garážových brán pomocou vášho smartphonu.
Súčasti sú povinné
- Doska Raspberry pi s nainštalovaným Raspbian
- Reléový modul
- Pripojenie drôtov
Predpokladá sa, že váš Raspberry Pi už má nainštalovaný operačný systém a je schopný sa pripojiť na internet. Ak nie, postupujte podľa pokynov v návode Začíname s Raspberry Pi. Tu používame Rasbian Jessie nainštalovaný Raspberry Pi 3.
Tu sa externý monitor pomocou kábla HDMI používa ako displej na pripojenie k Raspberry Pi. Ak nemáte monitor, môžete sa pomocou klienta SSH (Putty) alebo servera VNC pripojiť k počítaču Raspberry pi pomocou prenosného počítača alebo počítača. Viac informácií o bezhlavom nastavení Raspberry Pi sa dozviete tu.
Schéma zapojenia
Pripojte mechanizmus otvárania garážových dverí k výstupu relé. Tu sme práve pripojili LED s relé na demonštračné účely.
Nastavenie banky v Raspberry Pi na ovládanie garážových brán
Tu sme vytvorili webový server pomocou Flask, ktorý poskytuje spôsob odosielania príkazov z webovej stránky na Raspberry Pi na riadenie robota po sieti. Flask nám umožňuje spúšťať naše pythonovské skripty cez webovú stránku a my môžeme odosielať a prijímať dáta z Raspberry Pi do webového prehliadača a naopak. Flask je mikrorámik pre Python. Tento nástroj je založený na kódovaní Unicode so zabudovaným vývojovým serverom a debuggerom, podporou integrovaného testovania jednotiek, podporou zabezpečených súborov cookie a jeho ľahkým používaním, vďaka čomu sú pre fandy užitočné.
Spustením nasledujúcich príkazov nainštalujte banku do svojho Raspberry Pi:
sudo apt-get aktualizácia sudo apt-get nainštalovať python-pip python-flask
Teraz spustite príkaz pip a nainštalujte Flask a jeho závislosti:
sudo pip nainštalovať banku
Tu sa dozviete viac o programovaní pomocou banky, pozrite si aj naše predchádzajúce projekty, kde sme banku použili na riadenie robota prostredníctvom webového servera, správu z webovej stránky sme odoslali na Raspberry Pi a hodnotu hmotnosti na Raspberry Pi v inteligentnom kontajneri.
Teraz napíšeme pythonovský skript pre náš webový server garážových brán.
Vytvorenie skriptu Python pre otvárač inteligentných garážových dverí
Tento skript bude interagovať s našimi GPIO Raspberry Pi a nastavuje webový server. Toto je teda jadro skriptu pre našu aplikáciu. Na konci je uvedený kompletný skript Python pre otvárač dverí, tu sme vysvetlili niekoľko jeho častí.
Najskôr vytvorte priečinok. Všetky ďalšie požadované priečinky by mali byť iba v tomto priečinku. Spustením príkazov nižšie vytvorte priečinok a vytvorte súbor python s názvom app.py v tomto priečinku.
mkdir garage_door cd garage_door nano app.py
Tým sa otvorí editor Nano, kde musíme napísať skript.
Začnite zahrnutím dôležitých knižníc.
importovať RPi.GPIO ako GPIO z banky importovať banku, render_template, vyžiadať aplikáciu = banka (__ name__, static_url_path = '/ static')
Teraz vytvorte slovník ako špendlíky na ukladanie čísla, názvu a stavu špendlíka. Podľa potreby môžete použiť viac ako jeden špendlík.
piny = { 14: {'name': 'Garážové vráta', 'state': GPIO.LOW} }
Potom nastavte kolík na výstup a na začiatku ho znížte.
Pre pripnutie pinov: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Teraz urobte hlavnú funkciu na čítanie stavu pinov a uložte tento stav do premennej.
@ app.route ("/") def main (): pre pin v pinoch: piny = GPIO.input (pin) ..
Tieto údaje musíme odovzdať na našu html stránku, aby sme mohli ovládať stav vstupného tlačidla.
vrátiť render_template ('main.html', ** templateData)
Teraz urobte funkciu na spracovanie požiadaviek z adresy URL s číslom PIN a akciou v ňom.
@ app.route ("/
Konvertujte špendlík z adresy URL na celé číslo.
changePin = int (changePin)
Ak je akčná časť adresy URL „otvorená“, postupujte takto.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Celý skript môžete skopírovať z konca tohto tutoriálu a uložiť ho pomocou kombinácie klávesov ctrl + x a potom stlačiť kláves Enter. Urobili sme to pomocou skriptu python. Teraz musíme vytvoriť stránku HTML, aby interagovala so skriptom python.
Vytváranie stránky HTML pre webový server Raspberry Pi
V rovnakom priečinku garage_door vytvorte ďalší priečinok s názvom šablóny a vo vnútri tohto priečinka vytvorte pomocou nasledujúcich príkazov súbor.html.
mkdir šablóny cd šablóny nano main.html
V nano textovom editore napíšte html kód. Môžete upraviť časti stránky a upravte si ju podľa vlastného výberu. Práve som použil schému tretej strany s použitím odkazu na značku. Celý kód HTML je uvedený nižšie:
Webový server pre garážové vráta
{% za pripnutie do pinov%}{{pins.name}} {% if pins.state == true%} je momentálne otvorený
Dôležitou súčasťou je vytvorenie tlačidla na otvorenie a zatvorenie dverí a priradenie stavu k tlačidlu na otvorenie a zatvorenie . Tlačidlo odošle a načíta stav GPIO zo skriptu python.
Vyššie uvedený HTML kód môžete použiť v editore a uložiť ho. Teraz je webový server pripravený na spustenie.
Otvorte terminál a prejdite do priečinka garage_door a spustite nasledujúci príkaz
sudo python app.py
Otvorte prehliadač, zadajte svoju adresu IP maliny pi a stlačte kláves Enter. Ak chcete zistiť svoju IP adresu, môžete spustiť nasledujúci príkaz v termináli.
hostname -I
Uvidíte takúto stránku.
Skontrolujte, či je reléový modul pripojený k malinovej pi. Stlačením tlačidla Open zapnite relé alebo otvorte garážovú bránu. Môžete tiež vidieť stav relé. Hneď ako relé zapnete, text tlačidla sa zmení na Close, aby sa relé vyplo. Teraz, keď znovu kliknete na tlačidlo, relé sa vypne a text tlačidla sa zmení na Opäť otvorené .
Server zastavíte stlačením klávesovej skratky ctrl + c.
Stačí teda pripojiť toto relé k niektorému mechanizmu otvárania dverí, ktorý je ľahko dostupný na trhu, a začať ovládať garážovú bránu pomocou inteligentného telefónu.
Demonštrácia Video je uvedený nižšie.