- Požadované komponenty
- Kruhový diagram
- Nastavení baňky v Raspberry Pi pro ovládání garážových vrat
- Vytvoření skriptu Python pro otvírač dveří Smart Garage
- Vytváření stránky HTML pro webový server Raspberry Pi
- {{pins.name}} {% if pins.state == true%} je aktuálně otevřený
V této době IoT (Internet věcí), kde lze vše ovládat na dálku pomocí smartphonu, proč nosit klíče s sebou. Existuje spousta technologií na podporu bezdrátového ovládání zařízení, jako jsou RFID, Bluetooth, Wi-Fi, LoRa. Předtím jsme postavili několik dveřních alarmů a obvodů ovládání dveří, abychom mohli dveře bezdrátově otevírat a zavírat:
- Arduino RFID dveřní zámek
- Automatický otvírač dveří pomocí Arduina
- Obvod alarmu magnetických dveří pomocí Hallova senzoru
- Bezpečnostní alarm dveří založený na IoT ovládaný asistentem Google
Tady v tomto kurzu sestavíme otvírač dveří Smart Garage pomocí Raspberry Pi. Zde bude vytvořen webový server Raspberry Pi pro otevírání a zavírání garážových vrat pomocí smartphonu.
Požadované komponenty
- Deska Raspberry pi s nainstalovaným Raspbian
- Reléový modul
- Připojení vodičů
Předpokládá se, že váš Raspberry Pi již má nainstalovaný operační systém a je schopen se připojit k internetu. Pokud ne, postupujte podle pokynů v příručce Začínáme s Raspberry Pi. Zde používáme Rasbian Jessie nainstalovanou Raspberry Pi 3.
Zde se externí monitor pomocí kabelu HDMI používá jako displej pro připojení k Raspberry Pi. Pokud nemáte monitor, můžete se připojit k Raspberry pi pomocí notebooku nebo počítače pomocí klienta SSH (Putty) nebo serveru VNC. Zde se dozvíte více o bezhlavém nastavení Raspberry Pi.
Kruhový diagram
Připojte mechanismus otevírání garážových vrat k výstupu relé. Zde jsme právě připojili LED s relé pro demonstrační účely.
Nastavení baňky v Raspberry Pi pro ovládání garážových vrat
Tady jsme vytvořili webový server pomocí Flask, který poskytuje způsob, jak posílat příkazy z webové stránky na Raspberry Pi a ovládat robota po síti. Flask nám umožňuje spouštět naše pythonovské skripty přes webovou stránku a my můžeme odesílat a přijímat data z Raspberry Pi do webového prohlížeče a naopak. Flask je pro Python mikrorámcem. Tento nástroj je založen na Unicode s vestavěným vývojovým serverem a debuggerem, integrovanou podporou testování jednotek, podporou zabezpečených cookies a jeho snadným používáním, díky těmto věcem je to pro fandy užitečné.
Spusťte následující příkazy pro instalaci baňky do vašeho Raspberry Pi:
sudo apt-get update sudo apt-get nainstalovat python-pip python-flask
Nyní spusťte příkaz pip a nainstalujte Flask a jeho závislosti:
sudo pip install flask
Můžete se dozvědět více o programování pomocí Flask zde, podívejte se také na naše předchozí projekty, kde jsme použili Flask k ovládání robota prostřednictvím webového serveru, odeslání zprávy z webové stránky na Raspberry Pi a odeslání hodnoty hmotnosti na Raspberry Pi ve Smart Container.
Nyní napíšeme skript pythonu pro náš webový server garážových vrat.
Vytvoření skriptu Python pro otvírač dveří Smart Garage
Tento skript bude interagovat s našimi GPIO Raspberry Pi a nastaví webový server. Toto je základní skript pro naši aplikaci. Na konci je uveden kompletní skript Pythonu pro otvírač dveří, zde jsme vysvětlili několik jeho částí.
Nejprve vytvořte složku. Všechny ostatní požadované složky by měly být pouze v této složce. Spuštěním níže uvedených příkazů vytvořte složku a vytvořte v této složce soubor pythonu s názvem app.py.
mkdir garage_door cd garage_door nano app.py
Tím se otevře editor Nano, kde musíme napsat skript.
Začněte zahrnutím důležitých knihoven.
import RPi.GPIO jako GPIO z baňky import baňky, render_template, žádost o aplikaci = baňka (__ name__, static_url_path = '/ static')
Nyní vytvořte slovník jako špendlíky pro uložení čísla PIN, jména a stavu PIN. Podle potřeby můžete použít více než jeden kolík.
pins = { 14: {'name': 'Garage Door', 'state': GPIO.LOW} }
Poté nastavte kolík jako výstup a zpočátku ho snižte.
Pro pin v pinech: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Nyní vytvořte hlavní funkci pro čtení stavu pinu a uložte tento stav do proměnné.
@ app.route ("/") def main (): pro pin v pinech: pins = GPIO.input (pin) ..
Tyto údaje musíme předat na naši html stránku, abychom mohli ovládat stav vstupního tlačítka.
vrátit render_template ('main.html', ** templateData)
Nyní vytvořte funkci pro zpracování požadavků z adresy URL s číslem PIN a akcí v něm.
@ app.route ("/
Převeďte špendlík z adresy URL na celé číslo.
changePin = int (changePin)
Pokud je akční část adresy URL „otevřená“, proveďte následující.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Můžete zkopírovat celý skript z konce tohoto tutoriálu a uložit jej pomocí ctrl + x a poté stisknout enter. Skončili jsme s pythonovým skriptem. Nyní musíme vytvořit stránku HTML pro interakci se skriptem pythonu.
Vytváření stránky HTML pro webový server Raspberry Pi
Ve stejné složce Garážová vrata vytvořte další složku s názvem šablony a uvnitř této složky vytvořte soubor.html pomocí níže uvedených příkazů.
šablony mkdir šablony cd nano main.html
V nano textovém editoru napište html kód. Můžete upravit část stránky a upravte ji podle svého výběru. Právě jsem použil schéma CSS třetí strany pomocí značky odkazu. Celý HTML kód je uveden níže:
Webový server Garage Door
{% za připnutí v pinech%}{{pins.name}} {% if pins.state == true%} je aktuálně otevřený
Zde je důležitou součástí vytvoření tlačítka pro otevření a zavření dveří a přiřazení stavu pro tlačítko pro otevření a zavření . Tlačítko odešle a načte stav GPIO ze skriptu pythonu.
Výše uvedený kód HTML můžete použít v editoru a uložit jej. Nyní je webový server připraven ke spuštění.
Otevřete terminál a přejděte do složky Garage_door a spusťte níže uvedený příkaz
sudo python app.py
Otevřete prohlížeč, zadejte svou IP adresu maliny pi a stiskněte klávesu Enter. Chcete-li zjistit svou IP adresu, můžete spustit následující příkaz v terminálu.
hostname -I
Uvidíte takovou stránku.
Ujistěte se, že je reléový modul připojen k malinové pí. Stisknutím tlačítka Otevřít zapnete relé nebo otevřete garážová vrata. Můžete také vidět stav relé. Jakmile zapnete relé, změní se text tlačítka Zavřít a relé se vypne. Nyní, když znovu kliknete na tlačítko, relé se vypne a text tlačítka se změní na znovu Otevřít .
Pro zastavení serveru stiskněte ctrl + c.
Stačí tedy připojit toto relé k nějakému mechanismu otevírání dveří, který je snadno dostupný na trhu, a začít ovládat garážová vrata pomocí smartphonu.
Demonstrace Video je uveden níže.