Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
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
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
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
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()