Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Hei!
În acest proiect, vom implementa controlul LED-ului bazat pe Google Assistant folosind Raspberry Pi 4 folosind HTTP în Python. Puteți înlocui LED-ul cu un bec (evident nu literalmente, veți avea nevoie de un modul de releu între ele) sau orice alt aparat de uz casnic, astfel încât acest proiect să poată fi implementat în continuare în scopuri de automatizare a casei.
Provizii
De ce veți avea nevoie pentru acest proiect:
1. Raspberry Pi
2. LED
3. Jumper fire-2 (de la bărbat la feminin)
4. Pană de pâine
5. Aplicația IFTTT (https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=ro_IN)
6. Contul Thingspeak (https://thingspeak.com/)
Unele condiții prealabile:
1. Noțiuni de bază despre rețea-HTTP
2. Python pentru a accesa datele web
Pasul 1: Crearea unui canal Thingspeak
Dacă sunteți nou în Thingspeak și nu l-ați folosit niciodată înainte, urmați pașii de mai jos:
Accesați
Va trebui să vă înscrieți înainte de a începe să utilizați Thingspeak
După înscriere, accesați secțiunea Canale
Sub Canale, selectați Canal nou (consultați imaginea pentru referință)
În New Channel, veți vedea diferite casete de informații. Trebuie doar să completați caseta Nume. Puteți să vă numiți canalul oricum doriți. Am atașat o imagine unde mi-am numit canalul drept Raspberry Pi 4. Lăsați restul cutiilor așa cum este.
Felicitări! Ați creat cu succes un canal pentru proiectul dvs. IoT. (vedeți imaginea atașată unde puteți vedea canalul meu numit Raspberry Pi 4 creat cu succes)
Pasul 2: Utilizarea aplicației IFTTT
Trebuie să folosim această aplicație pentru a declanșa o solicitare GET pentru postarea datelor pe canalul dvs. creat de Thingspeak utilizând Asistentul Google. Gândiți-vă la această aplicație ca la o interfață între Asistentul Google și canalul dvs. Thingspeak.
Apoi, creăm solicitări GET în aplicația IFTTT.
Descărcați aplicația IFTTT de la
Creeaza-ti contul
Accesați Creați propriile appleturi de la zero
Apăsați pe Dacă această opțiune
Selectați serviciul de declanșare ca Asistent Google
În aceasta, selectați Rostiți o frază simplă
Sub această opțiune, vor apărea câteva casete de informații. Pentru aceasta, consultați imaginile și completați detaliile în consecință! (există două imagini în acest scop: 1. Pentru a aprinde LED-ul 2. Pentru a opri LED-ul)
Am finalizat partea If This, care este Asistentul Google. Acum selectăm opțiunea Then That, care este Webhooks.
Sub aceasta, selectați Efectuați o solicitare web
Consultați imaginea pentru informații care trebuie completate în căsuțe. Consultați această adresă URL https://api.thingspeak.com/update?api_key=INSERTĂ-ȚI CHEIA API WRITE & field1 = 1
În URL-ul de mai sus, veți observa că am menționat despre INSERTAREA CHEIEI API-ului WRITE. Aceasta este cheia API care este o identitate a canalului pe care l-ați creat pe Thingspeak (a se vedea imaginea). Scrierea cheii API vă va ajuta să scrieți anumite date pe canalul dvs. și în mod similar Citirea cheii API vă va ajuta să obțineți date de la canal.
În afară de cheia dvs. API de scriere, restul informațiilor din casete rămân aceleași.
Deci, aici ați creat un declanșator în care, atunci când spuneți Asistentului Google „Porniți LED-ul”, acesta va trimite un „1” la canalul dvs. Thingspeak.
Acum, într-un mod similar, trebuie să creați un nou applet pe aplicația IFTTT pentru oprirea LED-ului. Am atașat imagini dacă sunteți confuz cu privire la același lucru. În caz contrar, procedura de oprire a LED-ului este aceeași cu cea a ceea ce ați făcut mai sus, în afară de unele modificări minore.
Pasul 3: În cele din urmă, începeți să codificați
Voi explica principalul obiectiv al codului Python. Trebuie să preluăm datele de pe canalul Thingspeak, care va fi fie „1”, fie „0” pe baza a ceea ce spui Asistentului Google. Trebuie să aprindem sau să oprim LED-ul pe baza acestui lucru. Dacă valoarea încărcată pe canalul Thingspeak este „1”, atunci aprindem LED-ul, iar dacă este „0”, îl oprim.
În cod, veți avea nevoie de două lucruri: 1. Cheia dvs. de citire API 2. ID-ul canalului dvs. (consultați imaginile pentru același lucru)
Iată codul (presupunând că cunoașteți premisele HTTP și Python):
import urllib
solicitări de import
import json
timpul de import
importați RPi. GPIO ca GPIO
GPIO.setmode (GPIO. BOARD)
GPIO.setup (7, GPIO. OUT)
încerca:
în timp ce (1):
URL = 'https://api.thingspeak.com/channels/INSER YOUR CHANNEL ID / fields / 1.json? Api_key =' KEY = 'INSERT YOUR READ API KEY'
HEADER = '& rezultate = 2'
NEW_URL = URL + KEY + HEADER
#print (NEW_URL)
get_data = requests.get (NEW_URL).json ()
#print (get_data)
feild_1 = get_data ['fluxuri']
#print ("Câmp:", feild_1)
t =
pentru x în feild_1:
t.append (x ['field1'])
print (t [1])
if int (t [1]) == 1:
GPIO.output (7, 1)
elif int (t [1]) == 0:
GPIO.output (7, 0)
cu excepția KeyboardInterrupt:
GPIO.cleanup ()