Inhaltsverzeichnis:

Google Assistant-basierte LED-Steuerung mit Raspberry Pi - Gunook
Google Assistant-basierte LED-Steuerung mit Raspberry Pi - Gunook

Video: Google Assistant-basierte LED-Steuerung mit Raspberry Pi - Gunook

Video: Google Assistant-basierte LED-Steuerung mit Raspberry Pi - Gunook
Video: Einsteiger Tutorial - LED Strip Ansteuerung mit dem Raspberry Pi 2024, Juli
Anonim
Google Assistant-basierte LED-Steuerung mit Raspberry Pi
Google Assistant-basierte LED-Steuerung mit Raspberry Pi
Google Assistant-basierte LED-Steuerung mit Raspberry Pi
Google Assistant-basierte LED-Steuerung mit Raspberry Pi
Google Assistant-basierte LED-Steuerung mit Raspberry Pi
Google Assistant-basierte LED-Steuerung mit Raspberry Pi
Google Assistant-basierte LED-Steuerung mit Raspberry Pi
Google Assistant-basierte LED-Steuerung mit Raspberry Pi

Hey!

In diesem Projekt implementieren wir die Google Assistant-basierte Steuerung der LED mit Raspberry Pi 4 mit HTTP in Python. Sie können die LED durch eine Glühbirne (natürlich nicht wörtlich, Sie benötigen ein Relaismodul dazwischen) oder ein anderes Haushaltsgerät ersetzen, damit dieses Projekt für Hausautomatisierungszwecke weiter umgesetzt werden kann.

Lieferungen

Was Sie für dieses Projekt benötigen:

1. Himbeer-Pi

2. LED

3. Überbrückungsdrähte-2 (männlich zu weiblich)

4. Steckbrett

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

6. Thingspeak-Konto (https://thingspeak.com/)

Einige Voraussetzungen:

1. Netzwerkgrundlagen-HTTP

2. Python für den Zugriff auf die Webdaten

Schritt 1: Erstellen eines Thingspeak-Kanals

Einen Thingspeak-Kanal erstellen
Einen Thingspeak-Kanal erstellen
Einen Thingspeak-Kanal erstellen
Einen Thingspeak-Kanal erstellen
Einen Thingspeak-Kanal erstellen
Einen Thingspeak-Kanal erstellen
Einen Thingspeak-Kanal erstellen
Einen Thingspeak-Kanal erstellen

Wenn Sie neu bei Thingspeak sind und es noch nie verwendet haben, führen Sie die folgenden Schritte aus:

Gehe zu

Sie müssen sich anmelden, bevor Sie Thingspeak verwenden können

Gehen Sie nach der Anmeldung zum Abschnitt Kanäle

Wählen Sie unter Kanäle die Option Neuer Kanal (siehe Abbildung als Referenz)

In Neuer Kanal sehen Sie verschiedene Informationsfelder. Sie müssen nur das Feld Name ausfüllen. Sie können Ihrem Kanal einen beliebigen Namen geben. Ich habe ein Bild angehängt, in dem ich meinen Kanal als Raspberry Pi 4 bezeichnet habe. Lassen Sie den Rest der Boxen so, wie er ist.

Herzliche Glückwünsche! Sie haben erfolgreich einen Kanal für Ihr IoT-Projekt erstellt. (Siehe das angehängte Bild, in dem Sie meinen Kanal namens Raspberry Pi 4 sehen können, der erfolgreich erstellt wurde)

Schritt 2: Verwenden der IFTTT-App

Verwenden der IFTTT-App
Verwenden der IFTTT-App
Verwenden der IFTTT-App
Verwenden der IFTTT-App
Verwenden der IFTTT-App
Verwenden der IFTTT-App
Verwenden der IFTTT-App
Verwenden der IFTTT-App

Wir müssen diese App verwenden, um eine GET-Anfrage zum Posten von Daten auf Ihrem erstellten Thingspeak-Kanal mit Google Assistant auszulösen. Stellen Sie sich diese App als Schnittstelle zwischen Google Assistant und Ihrem Thingspeak-Kanal vor.

Als Nächstes erstellen wir GET-Anfragen in der IFTTT-App.

Laden Sie die IFTTT-App von https://play.google.com/store/apps/details?id=com… herunter.

Erstelle deinen Account

Gehen Sie zu Erstellen Sie Ihre eigenen Applets von Grund auf neu

Tippen Sie auf Wenn diese Option

Trigger-Dienst als Google Assistant auswählen

Wählen Sie darin Sagen Sie einen einfachen Satz

Unter dieser Option werden einige Informationsfelder angezeigt. Sehen Sie sich dazu die Bilder an und füllen Sie die Details entsprechend aus! (dafür gibt es zwei Bilder: 1. Zum Einschalten der LED 2. Zum Ausschalten der LED)

Wir haben den Abschnitt "Wenn dies" abgeschlossen, bei dem es sich um Google Assistant handelt. Jetzt wählen wir Then That Option, die Webhooks ist.

Wählen Sie darunter eine Webanfrage stellen

Die Informationen, die in die Felder ausgefüllt werden müssen, entnehmen Sie dem Bild. Verweisen Sie auf diese URL https://api.thingspeak.com/update?api_key=INSERT YOUR WRITE API KEY&field1=1

In der obigen URL werden Sie feststellen, dass ich über IHREN SCHREIB-API-SCHLÜSSEL EINFÜGEN erwähnt habe. Dies ist der API-Schlüssel, der eine Identität des Kanals darstellt, den Sie auf Thingspeak erstellt haben (siehe Bild). API-Schlüssel schreiben hilft Ihnen, bestimmte Daten in Ihren Kanal zu schreiben, und API-Schlüssel lesen hilft Ihnen, Daten aus dem Kanal zu erhalten.

Abgesehen von Ihrem Write API-Schlüssel bleiben die restlichen Informationen aus den Feldern gleich.

Hier haben Sie also einen Trigger erstellt, bei dem Ihr Google Assistant eine "1" an Ihren Thingspeak-Kanal sendet, wenn Sie "Schalten Sie die LED an" sagen.

Nun müssen Sie auf ähnliche Weise ein neues Applet in der IFTTT-App erstellen, um die LED auszuschalten. Ich habe Bilder angehängt, wenn Sie darüber verwirrt sind. Ansonsten ist das Verfahren zum Ausschalten der LED bis auf einige kleinere Änderungen identisch mit dem, was Sie oben gemacht haben.

Schritt 3: Endlich anfangen zu codieren

Endlich anfangen zu codieren
Endlich anfangen zu codieren

Ich werde das Hauptziel des Python-Codes erklären. Wir müssen die Daten vom Thingspeak-Kanal abrufen, die entweder eine "1" oder eine "0" sein werden, je nachdem, was Sie Ihrem Google Assistant sagen. Auf dieser Grundlage müssen wir die LED ein- oder ausschalten. Wenn der hochgeladene Wert auf dem Thingspeak-Kanal "1" ist, schalten wir die LED ein, und wenn es eine "0" ist, schalten wir sie aus.

Im Code benötigen Sie zwei Dinge: 1. Ihren Read API-Schlüssel 2. Ihre Kanal-ID (siehe die Bilder dafür)

Hier ist der Code (vorausgesetzt, Sie kennen die Voraussetzungen von HTTP und Python):

URL importieren

Importanfragen

json importieren

Importzeit

RPi. GPIO als GPIO importieren

GPIO.setmode(GPIO. BOARD)

GPIO.setup(7, GPIO. OUT)

Versuchen:

während(1):

URL='https://api.thingspeak.com/channels/INSER YOUR CHANNEL ID/fields/1.json?api_key=' KEY='INSERT YOUR READ API KEY'

HEADER='&results=2'

NEW_URL=URL+SCHLÜSSEL+HEADER

#print(NEW_URL)

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

#print(get_data)

feld_1=get_data['feeds']

#print("Feld:", feld_1)

t=

für x in Feld_1:

t.append(x['field1'])

drucken(t[1])

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

GPIO. Ausgabe(7, 1)

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

GPIO. Ausgabe(7, 0)

außer KeyboardInterrupt:

GPIO.cleanup()

Empfohlen: