Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Hej!
V tomto projekte implementujeme ovládanie LED diódy založené na Google Assistant pomocou Raspberry Pi 4 pomocou HTTP v Pythone. LED diódu môžete nahradiť žiarovkou (samozrejme nie doslova, medzi tým budete potrebovať reléový modul) alebo iným domácim spotrebičom, aby bolo možné tento projekt ďalej implementovať na účely automatizácie domácnosti.
Zásoby
Čo budete potrebovať k tomuto projektu:
1. Raspberry Pi
2. LED dióda
3. prepojovacie vodiče-2 (muž-žena)
4. Breadboard
5. Aplikácia IFTTT (https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=sk_IN)
6. Účet Thingspeak (https://thingspeak.com/)
Niektoré predpoklady:
1. Základy práce so sieťou-HTTP
2. Python na prístup k webovým údajom
Krok 1: Vytvorenie kanála Thingspeak
Ak ste s Thingspeakom noví a nikdy predtým ste ho nepoužívali, postupujte podľa nasledujúcich krokov:
Prejdite na
Predtým, ako začnete používať Thingspeak, sa budete musieť zaregistrovať
Po registrácii prejdite do sekcie Kanály
V časti Kanály vyberte Nový kanál (referenčný obrázok nájdete na obrázku)
V novom kanáli uvidíte rôzne informačné polia. Stačí vyplniť pole Meno. Kanál môžete pomenovať, ako chcete. Pripojil som obrázok, kde som pomenoval svoj kanál ako Raspberry Pi 4. Ostatné škatule nechajte tak, ako sú.
Gratulujem Úspešne ste vytvorili kanál pre svoj projekt IoT. (pozrite sa na priložený obrázok, kde môžete vidieť, ako bol úspešne vytvorený môj kanál s názvom Raspberry Pi 4)
Krok 2: Použitie aplikácie IFTTT
Túto aplikáciu musíme použiť na spustenie požiadavky GET na odosielanie údajov na vami vytvorenom kanáli Thingspeak pomocou Asistenta Google. Považujte túto aplikáciu za rozhranie medzi asistentom Google a vašim kanálom Thingspeak.
Ďalej vytvoríme požiadavky GET v aplikácii IFTTT.
Stiahnite si aplikáciu IFTTT z
Vytvor si účet
Prejdite na položku Vytvorte si vlastné aplety od začiatku
Klepnite na Ak je táto možnosť
Vyberte spúšťaciu službu ako Asistent Google
V ňom vyberte možnosť Povedzte jednoduchú frázu
Pri tejto možnosti sa zobrazia niektoré informačné polia. Za týmto účelom si pozrite obrázky a podľa toho zadajte podrobnosti! (Na tento účel existujú dva obrázky: 1. Zapnutie LED diódy 2. Vypnutie LED diódy)
Dokončili sme časť If This, ktorou je Google Assistant. Teraz vyberieme možnosť Then That, ktorou sú Webhooks.
Pod tým vyberte položku Vytvoriť webovú žiadosť
Informácie, ktoré je potrebné vyplniť do políčok, nájdete na obrázku. Pozrite sa na túto adresu URL https://api.thingspeak.com/update?api_key=INSERT YOUR WRITE API KEY & field1 = 1
Na vyššie uvedenej adrese URL si všimnete, že som sa zmienil o VLOŽTE KĽÚČ API WRITE API. Toto je kľúč API, ktorý je identitou kanála, ktorý ste vytvorili na Thingspeak (pozri obrázok). Kľúč API pre zápis vám pomôže zapísať konkrétne údaje do vášho kanála a podobne kľúč Read API vám pomôže získať údaje z kanála.
Okrem vášho kľúča API pre zápis zostávajú ostatné informácie z políčok rovnaké.
Takže tu ste vytvorili spúšťač, kde keď svojmu Asistentovi Google poviete: „Zapnite LED“, vyšle na váš kanál Thingspeak „1“.
Teraz podobným spôsobom musíte v aplikácii IFTTT vytvoriť nový aplet na vypnutie diódy LED. Pripájam obrázky, ak vám to nie je jasné. V opačnom prípade je postup pri vypínaní diódy LED rovnaký ako pri vyššie uvedených krokoch, okrem niektorých menších zmien.
Krok 3: Konečne začnite kódovať
Vysvetlím hlavný cieľ kódu Python. Musíme načítať údaje z kanála Thingspeak, ktoré budú buď „1“, alebo „0“na základe toho, čo poviete svojmu asistentovi Google. Na základe toho musíme LED zapnúť alebo vypnúť. Ak je hodnota nahraná na kanáli Thingspeak „1“, rozsvietime diódu LED a ak je „0“, vypneme ju.
V kóde budete potrebovať dve veci: 1. Váš kľúč API na čítanie 2. Vaše ID kanála (to isté nájdete na obrázkoch)
Tu je kód (za predpokladu, že poznáte predpoklady HTTP a Python):
import urllib
žiadosti o import
importovať json
čas importu
importujte RPi. GPIO ako GPIO
GPIO.setmode (GPIO. BOARD)
GPIO.setup (7, GPIO. OUT)
skús:
zatiaľ čo (1):
URL = 'https://api.thingspeak.com/channels/ VLOŽTE ID SVOJHO KANÁLU/polia/1.json? Api_key =' KEY = 'VLOŽTE KĽÚČ API pre čítanie'
HEADER = '& results = 2'
NEW_URL = URL+KEY+HEADER
#print (NEW_URL)
get_data = requests.get (NEW_URL).json ()
#print (get_data)
feild_1 = get_data ['kanály']
#print ("Pole:", feild_1)
t =
pre x v feild_1:
t.append (x ['field1'])
tlač (t [1])
if int (t [1]) == 1:
GPIO.output (7, 1)
elif int (t [1]) == 0:
GPIO.output (7, 0)
okrem prerušenia klávesnice:
GPIO.cleanup ()