- Conditions préalables:
- Concept de travail:
- Programme IDE Arduino pour ESP8266:
- Schéma de circuit et matériel:
- Redirection de port de votre IP ESP8266:
- Installation de l'application Android Moni:
- Créer des applets à l'aide du service IFTTT:
- Test du projet:
Bienvenue dans un autre projet passionnant dans lequel nous allons construire un système domotique à commande vocale utilisant le module Wi-Fi ESP8266, où vous pouvez contrôler vos appareils électroménagers à l'aide de votre voix via une application Android de n'importe où dans le monde. Oui, votre rêve de faire allumer ou éteindre vos charges (Light / Fans) en utilisant simplement une commande vocale va se réaliser à la fin de ce projet. Ce projet est la variation de notre précédent projet Smart Junction Box for Home Automation où nous avons contrôlé les appareils ménagers en utilisant Webserver sur le réseau.
Ce projet de domotique à commande vocale basé sur l'IOT est très facile à construire et ne vous coûte pas cher car il ne vous oblige pas à acheter des modules vocaux coûteux. L'ensemble du projet a pris environ 500INR (8 USD) pour le construire. Il s'agit également d'un projet indépendant du microcontrôleur, ce qui signifie que vous n'avez pas besoin de MCU / MP comme Arduino ou Raspberry pi. L'ensemble du projet fonctionne sur le module ESP8266. En savoir plus sur l'ESP8266 ici. Alors, commençons à parler…
Auparavant, nous avons couvert de nombreux types d' automatisations pour la maison en utilisant différentes technologies telles que:
- Domotique basée sur DTMF
- Domotique basée sur GSM utilisant Arduino
- Domotique contrôlée par PC utilisant Arduino
- Domotique contrôlée par Bluetooth avec 8051
- Domotique télécommandée IR utilisant Arduino
- projet domotique utilisant MATLAB et Arduino
- LED télécommandées RF à l'aide de Raspberry Pi
- Domotique contrôlée par téléphone intelligent avec Arduino
Conditions préalables:
Ce projet est une continuation de notre projet précédent Smart Junction Box for Home Automation utilisant ESP8266, donc la plupart de la partie matérielle a déjà été couverte dans ce tutoriel. Veuillez lire cela avant de continuer avec celui-ci car je vais ignorer les informations couvertes dans ce tutoriel. Pour donner un petit récapitulatif de notre projet précédent, nous avons modifié une boîte de jonction (Extension Board) dans ce tutoriel qui pourrait consolider une carte Perf composée de deux relais et du module ESP8266. Les deux relais (charges CA) peuvent être commutés en utilisant une page Web créée par l'ESP8266 (en agissant comme un serveur Web). Dans ce tutoriel, je vais simplement y ajouter quelques fonctionnalités afin que nous puissions également contrôler les charges CA en utilisant la commande vocale via Smart Phone.Nous ne couvrirons aucune partie matérielle dans ce tutoriel, le matériel et le code restera le même que celui du tutoriel précédent.
Savoir utiliser www.IFTTT.com vous donnera également un avantage dans ce projet. Si vous n'êtes pas familier avec IFTTT, pas de soucis, je vais vous expliquer comment l'utiliser pour ce tutoriel particulier afin que vous puissiez le faire fonctionner.
Concept de travail:
Je suppose que vous avez lu le didacticiel précédent.Dans ce cas, vous devriez maintenant savoir comment construire cette boîte de jonction et comment basculer les charges à distance à partir de votre navigateur Web. Pour rendre cela possible, nous avons rendu public l'adresse IP attribuée à l'ESP8266. Cela peut être fait avec la «technique de redirection de port». Ensuite, installez une application mobile appelée «Moni» sur votre appareil mobile Android / IPhone. Cette application reconnaîtra notre discours et communiquera les informations aux applets IFTT qui à leur tour contrôleront les charges via les hooks Web Maker.
Cela peut sembler un peu fastidieux, mais toutes ces choses ont été clairement expliquées dans ce tutoriel et croyez-moi en quelques clics, tout ce qui précède peut être fait. Ce tutoriel vous aidera de la meilleure façon possible à l'aide d'images et de vidéos. À la fin de ce tutoriel, vous pourrez allumer ou éteindre vos appareils électroménagers via votre voix depuis n'importe où dans le monde. Consultez le code complet et la vidéo de démonstration à la fin du didacticiel.
Vérifiez également les lumières contrôlées par la voix à l'aide de Raspberry Pi et de la saisie vocale sur un écran LCD 16x2.
Programme IDE Arduino pour ESP8266:
Tout comme dans le projet précédent, nous allons programmer notre module ESP8266 avec l'aide de l'IDE Arduino. Il y a une légère modification apportée au programme. Cette modification est faite pour que votre ESP8266 se connecte à une adresse IP constante à chaque fois qu'il établit une connexion avec le routeur. Le programme est exactement le même que le code précédent sauf pour ces quatre lignes
// Obtient une adresse IP constante à chaque fois IPAddress ip (192, 168, 0, 104); // Cela devrait être l'adresse IP de la passerelle IPAddress de mon module ESP (192, 168, 0, 1); // définir la passerelle pour qu'elle corresponde à votre réseau. La plupart des passerelles seront identiques par défaut Serial.print (F ("Setting static ip to:")); Serial.println (ip); Sous-réseau IPAddress (255, 255, 255, 0); // définir le masque de sous-réseau pour correspondre à votre réseau WiFi.config (ip, passerelle, sous-réseau);
Ici, à la place de IPAddress ip (192, 168, 0, 104); entrez l'adresse IP souhaitée. Dans ce cas, mon ESP sera connecté à 192.168.0.104 tout le temps et je peux simplement y accéder en utilisant cette adresse IP dans mon navigateur. Le code complet donné à la fin de ce tutoriel.
Schéma de circuit et matériel:
Les schémas et le matériel de ces appareils électroménagers à commande vocale basés sur l'IoT sont les mêmes que ceux de notre précédent projet Smart Junction et j'ai expliqué le schéma là-bas, merci de le parcourir. Ici vous pouvez voir le schéma complet pour référence:
Redirection de port de votre IP ESP8266:
La première étape consiste à activer la redirection de port dans votre routeur (modem) afin que vous puissiez accéder à votre ESP depuis n'importe où dans le monde, simplement en entrant votre adresse IP publique. Chaque fois que notre ESP8266 se connecte à notre routeur domestique / bureau, une adresse IP unique lui sera attribuée et cette adresse IP est utilisée pour accéder à l'ESP8266 via un navigateur Web. Cette adresse IP est restreinte au sein de votre réseau domestique / professionnel, ce qui signifie que vous ne pouvez pas y accéder globalement; il n'est accessible que par les appareils connectés à votre routeur. La redirection de port est la technique par laquelle nous pouvons charger cette page Web à l'échelle mondiale. Après la redirection de port, vous pouvez utiliser votre adresse IP publique pour accéder à cette page Web de n'importe où dans le monde. Ça a l'air cool! Voyons comment nous pouvons y parvenir. Pour ce faire, vous connaissez au préalable les éléments suivants.
1. Le nom du fabricant et l'adresse IP de votre routeur. Cela peut être facilement trouvé en regardant le routeur. L'adresse IP sera également mentionnée sur un autocollant. Sinon Google pour connaître l'adresse IP de vos routeurs.
2. Le nom d'utilisateur et le mot de passe de la page de connexion de vos routeurs. La plupart des routeurs auront le nom d'utilisateur «admin» et le mot de passe «admin».
3. L'adresse IP attribuée à votre module ESP8266. Il s'agit de l'adresse que vous utilisez pour accéder à la page Web du module ESP.
4. L'adresse IP de votre fournisseur d'accès Internet (adresse IP publique). Cela peut être trouvé en recherchant simplement «quelle est mon adresse IP».
Une fois que vous avez tout en main, vous pouvez suivre les étapes ci-dessous pour la redirection de port, si vous ne trouvez pas quelque chose, utilisez la section des commentaires ci-dessous. Je vais vous aider.
Étape 1: Connectez - vous à la page de l'utilitaire de gestion Web de vos routeurs en utilisant l'adresse IP de votre routeur, généralement 192.168.1.1. Mon écran ressemblera à ceci ci-dessous
Étape 2: Entrez le nom d'utilisateur «admin» par défaut et le mot de passe «admin» par défaut et cliquez sur Connexion. Vous serez redirigé vers la page utilitaire qui ressemblera à ceci ci-dessous.
La plupart des informations que vous voyez ici sont très confidentielles, donc ne les partagez pas avec des inconnus, vous pourriez risquer votre sécurité Internet.
Étape 3: Comme indiqué ci-dessus, votre page aura toutes les options répertoriées en bas à gauche. Notre objectif est de trouver quelque chose qui s'appelle «Virtual Servers». J'ai le mien répertorié sous l'option de transfert. La plupart des routeurs les ont énumérés comme 6, 7 ou 8 e l' option (la plupart du temps en dessous du réglage DHCP). Trouvez-le et cliquez dessus
Étape 4: Vous devez maintenant saisir l'adresse IP allouée au module ESP et le numéro de port pour transférer notre IP. Dans mon cas, je dois cliquer sur Ajouter nouveau et saisir ces détails. Cela pourrait être légèrement différent pour vous. L'adresse IP est celle que vous utilisez pour accéder à la page Web de votre module ESP. Le numéro de port peut être de votre choix, mais utilisons «80» pour des raisons de simplicité. L'adresse IP allouée à mon module ESP8266 est 192.168.0.104 et donc mon transfert ressemblera à quelque chose ci-dessous:
Étape 5: Nous devons maintenant connaître notre adresse IP publique. Vous pouvez trouver ceci mon Goggling pour "Quelle est mon IP". L'adresse IP de votre FAI doit rester hautement confidentielle. Pour les besoins de ce tutoriel, supposons que mon adresse IP est 987: 654: 321: 123 Je vais l'utiliser comme IP de mon FAI pour le reste de mon tutoriel.
Remarque: votre FAI peut vous avoir fourni une adresse IP statique / dynamique, s'il s'agit d'une adresse IP dynamique, votre adresse IP changera à chaque redémarrage du modem / routeur. Dans ce cas, vous devez utiliser quelque chose comme DynDNS. Mais cela sort du cadre de ce didacticiel. Même s'il s'agit d'une adresse IP dynamique, cela fonctionnera pour vous tant que vous ne réinitialisez pas votre routeur.
C'est-à-dire que notre redirection de port est réussie, nous pouvons vérifier qu'en entrant l'adresse IP du FAI: nom de port (987: 654: 321: 123: 80) dans notre navigateur et vérifier si la page Web ESP se charge. Si tout se passe comme prévu, vous devriez maintenant pouvoir basculer les charges de n'importe où dans le monde en utilisant l'adresse IP de votre FAI.
Installation de l'application Android Moni:
Moni est une application disponible pour Android, Windows, iTunes et même Skype. Vous pouvez télécharger cette application sur votre mobile. Moni.ai a beaucoup plus de capacités que de simplement répondre à vos commandes vocales, il est très convivial pour les développeurs et vous pouvez rapidement définir visuellement les conversations et vous connecter aux services. Moni.ai utilise une application appelée Node-Red à l'aide de laquelle vous pouvez facilement créer un canal vocal et créer votre propre système Chabot (AI) pour votre entreprise / projets et l'automatiser avec votre langage naturel. La meilleure chose est que Moni est totalement gratuit pour un usage non commercial.
J'utilise un téléphone Android et je télécharge donc directement Moni depuis Google Play Store. Après avoir installé, créez votre compte gratuit et connectez-vous, votre application devrait ressembler à ceci ci-dessous:
Vous pouvez l'utiliser comme n'importe quel autre assistant virtuel, comme demander la météo, l'heure, etc. Mais ce qui est supplémentaire, c'est qu'il peut répondre à vos applets créées par votre service Ifttt. Voyons maintenant comment créer des applets pour votre application.
Créer des applets à l'aide du service IFTTT:
Nous sommes à un pas de la réalisation de ce projet. La dernière étape consiste à créer les applets sur le site Web IFTTT. C'est là que nous demandons à notre Moni différentes commandes vocales pour contrôler différents appareils ménagers à la maison.
J'utilise cette boîte de jonction à commande vocale pour basculer les charges de mon aquarium (lumière / filtre) comme indiqué dans la vidéo ci-dessous. Par conséquent, je personnalise l'applet pour cette exigence, vous pouvez la personnaliser selon vos besoins. Suivez les étapes ci-dessous:
Étape 1: Visitez www.IFTTT.com et connectez-vous avec votre compte. Si nouveau, inscrivez-vous.
Étape 2: Cliquez maintenant sur "Rechercher" et tapez Créer des webhooks. Sélectionnez-le et cliquez sur «Connecter». Suivez les étapes pour vous y connecter.
Étape 3: Cliquez à nouveau sur "Rechercher" et tapez Moni. Sélectionnez Moni et cliquez sur «Connecter». Connectez-vous avec votre compte IFTTT pour activer la connexion.
Étape 4: Nous nous sommes connectés aux services «Maker Webhooks» et «Moni». Maintenant, laissez-vous créer une applet avec ces services. Cliquez sur Mes applets puis sur «Nouvel applet». Vous devriez voir quelque chose comme ceci:
Dans cet écran, vous devez cliquer sur «ceci» et sélectionner «Moni». Cliquez ensuite sur «Demander à Moni d'effectuer une action», vous serez redirigé vers l'écran ci-dessous.
Étape 5: Remplissez les détails car j'ai rempli l'image ci-dessus. Ici, ma tâche est d'allumer mes lumières d'aquarium (charge 1) quand je dis «Allumer les lumières d'aquarium». Cliquez ensuite sur "Create Trigger"
Étape 6: Vous serez ramené à l'écran «SI CECI QUE CELA». Maintenant, cliquez sur "ça" et tapez "Maker Webhooks" et sélectionnez-le. Cliquez ensuite sur «Faire une demande Web». Vous serez redirigé vers l'écran ci-dessous
C'est une étape importante où vous êtes le plus susceptible de faire des erreurs. Dans cette page, entrez simplement l'URL que vous souhaitez charger. Dans mon cas, je veux allumer la charge connectée à switch1 d'où la ligne http: // 987: 654: 321: 123 / switch1On est utilisée, vous devez remplacer mon IP par votre adresse IP publique. Cela ne fonctionnera que si vous avez utilisé mon code dans le tutoriel précédent. La liste complète des URL pour basculer les charges est donnée ci-dessous.
URL |
Mot-clé du programme |
action |
http: // 987: 654: 321: 123 / switch1On |
Switch1On |
GPIO_0 est rendu haut, activant ainsi la charge 1 |
http: // 987: 654: 321: 123 / switch1Off |
Switch1Off |
GPIO_0 est rendu bas, désactivant ainsi la charge 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 est rendu haut, activant ainsi la charge 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 est rendu bas, désactivant ainsi la charge 1 |
Une fois que vous avez entré l'URL souhaitée, cliquez sur «Créer une action». Cliquez ensuite sur Terminer. De même, vous pouvez créer 4 applets pour activer / désactiver les deux charges dans notre boîte de jonction.
C'est-à-dire que votre applet est prête pour l'action et qu'elle devrait apparaître sous «Mes applets» comme indiqué ci-dessous.
Il est temps de tester notre code…….
Test du projet:
Enfin, nous sommes prêts avec notre projet. Testons-le. Allumez-le et ouvrez l'application Moni sur votre téléphone mobile. Cliquez sur l'icône Microphone et prononcez la commande. Dans mon cas, c'est "Allumer les lumières de l'aquarium" et il devrait tourner la réponse avec un "OK" et allumer les lumières. Vérifiez le code complet et la vidéo de démonstration ci-dessous.
J'espère que vous avez aimé le projet et l'avez fait fonctionner. Si vous êtes coincé quelque part, utilisez la section commentaires ci-dessous et je vous aiderai sûrement. Je vous rencontrerai avec un autre projet intéressant jusque-là restez à l'écoute.
Consultez également nos autres projets basés sur l'IoT ici.