Sommario:

Controllo LED basato su Assistente Google utilizzando Raspberry Pi: 3 passaggi
Controllo LED basato su Assistente Google utilizzando Raspberry Pi: 3 passaggi

Video: Controllo LED basato su Assistente Google utilizzando Raspberry Pi: 3 passaggi

Video: Controllo LED basato su Assistente Google utilizzando Raspberry Pi: 3 passaggi
Video: Come costruire il proprio Google Home con Assistant e Raspberry Pi 3 2024, Dicembre
Anonim
Controllo LED basato su Assistente Google utilizzando Raspberry Pi
Controllo LED basato su Assistente Google utilizzando Raspberry Pi
Controllo LED basato su Assistente Google utilizzando Raspberry Pi
Controllo LED basato su Assistente Google utilizzando Raspberry Pi
Controllo LED basato su Assistente Google utilizzando Raspberry Pi
Controllo LED basato su Assistente Google utilizzando Raspberry Pi
Controllo LED basato su Assistente Google utilizzando Raspberry Pi
Controllo LED basato su Assistente Google utilizzando Raspberry Pi

Hey!

In questo progetto, implementeremo il controllo del LED basato su Google Assistant utilizzando Raspberry Pi 4 utilizzando HTTP in Python. Puoi sostituire il LED con una lampadina (ovviamente non letteralmente, avrai bisogno di un modulo relè in mezzo) o qualsiasi altro elettrodomestico in modo che questo progetto possa essere ulteriormente implementato per scopi di automazione domestica.

Forniture

Cosa ti servirà per questo progetto:

1. Lampone Pi

2. LED

3. Ponticelli-2 (da maschio a femmina)

4. Tagliere

5. App IFTTT (https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=en_IN)

6. Account Thingspeak (https://thingspeak.com/)

Alcuni prerequisiti:

1. Nozioni di base sulla rete-HTTP

2. Python per accedere ai dati web

Passaggio 1: creazione di un canale Thingspeak

Creazione di un canale Thingspeak
Creazione di un canale Thingspeak
Creazione di un canale Thingspeak
Creazione di un canale Thingspeak
Creazione di un canale Thingspeak
Creazione di un canale Thingspeak
Creazione di un canale Thingspeak
Creazione di un canale Thingspeak

Se sei nuovo su Thingspeak e non l'hai mai usato prima, segui i passaggi seguenti:

Vai su

Dovrai registrarti prima di iniziare a utilizzare Thingspeak

Dopo esserti registrato, vai alla sezione Canali

In Canali, seleziona Nuovo canale (vedi immagine per riferimento)

In Nuovo canale, vedrai diverse caselle di informazioni. Devi solo compilare la casella Nome. Puoi nominare il tuo canale come vuoi. Ho allegato un'immagine in cui ho chiamato il mio canale come Raspberry Pi 4. Lascia il resto delle scatole così com'è.

Congratulazioni! Hai creato con successo un canale per il tuo progetto IoT. (vedi l'immagine allegata dove puoi vedere il mio canale chiamato Raspberry Pi 4 creato con successo)

Passaggio 2: utilizzo dell'app IFTTT

Utilizzo dell'app IFTTT
Utilizzo dell'app IFTTT
Utilizzo dell'app IFTTT
Utilizzo dell'app IFTTT
Utilizzo dell'app IFTTT
Utilizzo dell'app IFTTT
Utilizzo dell'app IFTTT
Utilizzo dell'app IFTTT

Dobbiamo usare questa app per attivare una richiesta GET per la pubblicazione di dati sul tuo canale Thingspeak creato utilizzando l'Assistente Google. Pensa a questa app come a un'interfaccia tra l'Assistente Google e il tuo canale Thingspeak.

Successivamente, creiamo richieste GET sull'app IFTTT.

Scarica l'app IFTTT da

crea il tuo account

Vai a Crea le tue applet da zero

Tocca Se questa opzione

Seleziona il servizio di attivazione come Assistente Google

In questo, seleziona Pronuncia una frase semplice

Sotto quell'opzione, appariranno alcune caselle di informazioni. Per questo, fare riferimento alle immagini e compilare i dettagli di conseguenza! (ci sono due immagini a questo scopo: 1. Per accendere il LED 2. Per spegnere il LED)

Abbiamo completato la parte If This che è l'Assistente Google. Ora selezioniamo Allora quell'opzione che è Webhooks.

Sotto, seleziona Fai una richiesta web

Fare riferimento all'immagine per le informazioni che devono essere compilate nelle caselle. Fai riferimento a questo URL https://api.thingspeak.com/update?api_key=INSERT YOUR API WRITE KEY&field1=1

Nell'URL sopra, noterai che ho menzionato INSERT YOUR WRITE API KEY. Questa è la chiave API che è un'identità del canale che hai creato su Thingspeak (vedi immagine). La chiave API di scrittura ti aiuterà a scrivere dati particolari sul tuo canale e allo stesso modo la chiave API di lettura ti aiuterà a ottenere dati dal canale.

A parte la tua chiave API di scrittura, il resto delle informazioni dalle caselle rimane lo stesso.

Quindi qui hai creato un trigger in cui quando dici al tuo Assistente Google "Accendi il LED" invierà un "1" al tuo canale Thingspeak.

Ora, in modo simile, devi creare una nuova applet sull'app IFTTT per spegnere il LED. Ho allegato le immagini se sei confuso sullo stesso. Altrimenti, la procedura per spegnere il LED è la stessa di quella che hai fatto sopra a parte alcune piccole modifiche.

Passaggio 3: finalmente iniziare a programmare

Finalmente si inizia a programmare
Finalmente si inizia a programmare

Spiegherò l'obiettivo principale del codice Python. Dobbiamo recuperare i dati dal canale Thingspeak che sarà un "1" o uno "0" in base a ciò che dici al tuo Assistente Google. Dobbiamo accendere o spegnere il LED in base a questo. Se il valore caricato sul canale Thingspeak è "1", allora accendiamo il LED e se è "0", lo spegniamo.

Nel codice, avrai bisogno di due cose: 1. La tua chiave API di lettura 2. Il tuo ID canale (fai riferimento alle immagini per lo stesso)

Ecco il codice (supponendo che tu conosca i prerequisiti di HTTP e Python):

import urllib

richieste di importazione

import json

tempo di importazione

importa RPi. GPIO come GPIO

GPIO.setmode(GPIO. BOARD)

GPIO.setup(7, GPIO. OUT)

Tentativo:

mentre (1):

URL='https://api.thingspeak.com/channels/INSERIRE IL TUO ID CANALE/fields/1.json?api_key=' KEY='INSERIRE LA TUA CHIAVE API DI LETTURA'

INTESTAZIONE='&risultati=2'

NEW_URL=URL+KEY+HEADER

#print(NEW_URL)

get_data=requests.get(NEW_URL).json()

#print(get_data)

campo_1=get_data['feed']

#print("Campo:", campo_1)

t=

per x in campo_1:

t.append(x['campo1'])

stampa(t[1])

se int(t[1])==1:

GPIO.output(7, 1)

elif int(t[1])==0:

GPIO.output(7, 0)

tranne KeyboardInterrupt:

GPIO.cleanup()

Consigliato: