Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Hey!
Dans ce projet, nous allons implémenter le contrôle de la LED basé sur Google Assistant à l'aide de Raspberry Pi 4 à l'aide de HTTP en Python. Vous pouvez remplacer la LED par une ampoule (évidemment pas littéralement, vous aurez besoin d'un module relais entre les deux) ou tout autre appareil ménager afin que ce projet puisse être mis en œuvre davantage à des fins domotiques.
Fournitures
Ce dont vous aurez besoin pour ce projet:
1. Framboise Pi
2. DEL
3. Cavalier fils-2 (mâle à femelle)
4. Planche à pain
5. Application IFTTT (https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=en_IN)
6. Compte Thingspeak (https://thingspeak.com/)
Quelques prérequis:
1. Bases de la mise en réseau-HTTP
2. Python pour accéder aux données Web
Étape 1: Création d'un canal Thingspeak
Si vous débutez avec Thingspeak et que vous ne l'avez jamais utilisé auparavant, suivez les étapes ci-dessous:
Allez sur
Vous devrez vous inscrire avant de commencer à utiliser Thingspeak
Après vous être inscrit, rendez-vous dans la section Chaînes
Sous Canaux, sélectionnez Nouveau canal (voir l'image pour référence)
Dans Nouvelle chaîne, vous verrez différentes boîtes d'informations. Vous n'avez qu'à remplir la case Nom. Vous pouvez nommer votre chaîne comme vous le souhaitez. J'ai joint une image où j'ai nommé ma chaîne en tant que Raspberry Pi 4. Laissez le reste des boîtes tel quel.
Toutes nos félicitations! Vous avez créé avec succès un canal pour votre projet IoT. (voir l'image ci-jointe où vous pouvez voir ma chaîne nommée Raspberry Pi 4 créée avec succès)
Étape 2: Utilisation de l'application IFTTT
Nous devons utiliser cette application pour déclencher une demande GET de publication de données sur votre chaîne Thingspeak créée à l'aide de Google Assistant. Considérez cette application comme une interface entre Google Assistant et votre chaîne Thingspeak.
Ensuite, nous créons des requêtes GET sur l'application IFTTT.
Téléchargez l'application IFTTT sur
Créez votre compte
Allez à Créer vos propres applets à partir de zéro
Appuyez sur Si cette option
Sélectionnez le service de déclenchement en tant qu'assistant Google
En cela, sélectionnez Dire une phrase simple
Sous cette option, des boîtes d'information apparaîtront. Pour cela, référez-vous aux images et remplissez les détails en conséquence ! (il y a deux images à cet effet: 1. Pour allumer la LED 2. Pour éteindre la LED)
Nous avons terminé la partie If This qui est Google Assistant. Maintenant, nous sélectionnons alors cette option qui est Webhooks.
Sous cela, sélectionnez Faire une demande Web
Référez-vous à l'image pour les informations qui doivent être remplies dans les cases. Référez-vous à cette URL https://api.thingspeak.com/update?api_key=INSERT YOUR WRITE API KEY&field1=1
Dans l'URL ci-dessus, vous remarquerez que j'ai mentionné INSERT YOUR WRITE API KEY. Il s'agit de la clé API qui est une identité du canal que vous avez créé sur Thingspeak (voir image). Write API key vous aidera à écrire une donnée particulière sur votre canal et de même Read API key vous aidera à obtenir des données du canal.
En dehors de votre clé d'API Write, le reste des informations des cases reste le même.
Donc, ici, vous avez créé un déclencheur où lorsque vous dites à votre assistant Google, "Allumez la LED", il enverra un "1" à votre canal Thingspeak.
Maintenant, de la même manière, vous devez créer une nouvelle applet sur l'application IFTTT pour éteindre la LED. J'ai joint des images si vous êtes confus à propos de la même chose. Sinon, la procédure pour éteindre la LED est la même que celle que vous avez faite ci-dessus à part quelques modifications mineures.
Étape 3: enfin commencer à coder
Je vais expliquer l'objectif principal du code Python. Nous devons récupérer les données du canal Thingspeak qui seront soit un "1" soit un "0" en fonction de ce que vous dites à votre assistant Google. Nous devons allumer ou éteindre la LED en fonction de cela. Si la valeur téléchargée sur le canal Thingspeak est "1", alors nous allumons la LED, et si c'est un "0", nous l'éteignons.
Dans le code, vous aurez besoin de deux choses: 1. Votre clé API de lecture 2. Votre identifiant de chaîne (référez-vous aux images pour la même chose)
Voici le code (en supposant que vous connaissiez les prérequis de HTTP et Python):
importer l'urllib
demandes d'importation
importer json
heure d'importation
importer RPi. GPIO en tant que GPIO
GPIO.setmode(GPIO. BOARD)
GPIO.setup(7, GPIO. OUT)
essayer:
tandis que(1):
URL='https://api.thingspeak.com/channels/INSER YOUR CHANNEL ID/fields/1.json?api_key=' KEY='INSERT YOUR READ API KEY'
EN-TÊTE='&résultats=2'
NEW_URL=URL+CLÉ+EN-TÊTE
#print(NEW_URL)
get_data=requests.get(NEW_URL).json()
#print(get_data)
feild_1=get_data['flux']
#print("Champ:", feild_1)
t=
pour x dans feild_1:
t.append(x['champ1'])
imprimer(t[1])
si entier(t[1])==1:
GPIO.sortie (7, 1)
elif int(t[1])==0:
GPIO.sortie (7, 0)
sauf KeyboardInterrupt:
GPIO.cleanup()