Cuprins:

Control LED bazat pe Asistentul Google folosind Raspberry Pi: 3 pași
Control LED bazat pe Asistentul Google folosind Raspberry Pi: 3 pași

Video: Control LED bazat pe Asistentul Google folosind Raspberry Pi: 3 pași

Video: Control LED bazat pe Asistentul Google folosind Raspberry Pi: 3 pași
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Noiembrie
Anonim
Control LED bazat pe Asistentul Google folosind Raspberry Pi
Control LED bazat pe Asistentul Google folosind Raspberry Pi
Control LED bazat pe Asistentul Google folosind Raspberry Pi
Control LED bazat pe Asistentul Google folosind Raspberry Pi
Control LED bazat pe Asistentul Google folosind Raspberry Pi
Control LED bazat pe Asistentul Google folosind Raspberry Pi
Control LED bazat pe Asistentul Google folosind Raspberry Pi
Control LED bazat pe Asistentul Google folosind Raspberry Pi

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

Crearea unui canal Thingspeak
Crearea unui canal Thingspeak
Crearea unui canal Thingspeak
Crearea unui canal Thingspeak
Crearea unui canal Thingspeak
Crearea unui canal Thingspeak
Crearea unui canal Thingspeak
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

Folosind aplicația IFTTT
Folosind aplicația IFTTT
Folosind aplicația IFTTT
Folosind aplicația IFTTT
Folosind aplicația IFTTT
Folosind aplicația IFTTT
Folosind aplicația IFTTT
Folosind aplicația 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

În cele din urmă Începând să cod
În cele din urmă Începând să cod

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 ()

Recomandat: