Table des matières:

Commutateur à commande vocale utilisant Alexa et Arduino : 10 étapes (avec photos)
Commutateur à commande vocale utilisant Alexa et Arduino : 10 étapes (avec photos)

Vidéo: Commutateur à commande vocale utilisant Alexa et Arduino : 10 étapes (avec photos)

Vidéo: Commutateur à commande vocale utilisant Alexa et Arduino : 10 étapes (avec photos)
Vidéo: Home Assistant - подключаем адресную ленту WS2812B через ESP8266 с прошивкой WLED 2024, Novembre
Anonim
Commutateur à commande vocale utilisant Alexa et Arduino
Commutateur à commande vocale utilisant Alexa et Arduino

L'objectif principal de ce projet est d'utiliser un capteur de température pour contrôler l'interrupteur (relais) pour allumer ou éteindre l'appareil.

Liste des matériaux

  1. Module de relais 12V ==> 4,2 $
  2. Arduino uno == > 8 $
  3. Capteur de température DHT11 ==> 3 $
  4. Module ESP8266 ==> 4,74 $
  5. Optocoupleur N26 == > 0,60 $
  6. Régulateur de tension LM1117 ==> 0,60 $
  7. Planche à pain == > 2,2 $
  8. Cavaliers == > 2,5 $
  9. Bouton poussoir == > 2,5 $

Le coût total du projet est d'environ 30 $ dollars. Ce projet est divisé en trois parties. Tout d'abord, nous utilisons heroku pour créer une application. Deuxièmement, nous construisons une compétence Amazon Alexa pour mettre en œuvre notre travail (partie la plus importante). Troisièmement, nous configurons notre matériel et le programmons à l'aide d'Arduino IDE.

Étape 1: Lier Heroku à GitHub

Relier Heroku à GitHub
Relier Heroku à GitHub
Relier Heroku à GitHub
Relier Heroku à GitHub
Relier Heroku à GitHub
Relier Heroku à GitHub

Heroku est une plate-forme cloud en tant que service (PaaS) prenant en charge plusieurs langages de programmation et utilisée comme modèle de déploiement d'applications Web. Tout d'abord, allez sur le site heroku, créez un nouveau compte ou connectez-vous là-bas. Le lien est donné ci-dessous

Site Web Heroku

Commençons par créer une nouvelle application. J'ai donné le nom de mon application "iottempswitch" lorsque vous déployez l'application, le lien est généré.

Une fois l'application créée, accédez à GitHub. GitHub/

Connectez-vous ou inscrivez-vous si vous n'avez pas de compte. Une fois connecté, créez un nouveau référentiel. Donnez le nom de votre choix, puis appuyez sur Créer un référentiel. Sur la page suivante, cliquez sur README, sur cette page donnez la description que vous souhaitez partager avec les autres. Après cela, cliquez sur commit nouveau fichier. Ensuite, cliquez sur le bouton de téléchargement.

Il y a deux options soit vous faites glisser et déposez le dossier ou choisissez le fichier. Téléchargez les fichiers requis ci-dessous. Après avoir sélectionné les fichiers, appuyez sur les modifications de validation. Ouvrez l'application que vous avez créée sur Heroku, puis accédez à la section de déploiement. Après cela, cliquez sur le nom du référentiel GitHub. Give que vous avez créé côté GitHub. Dans mon cas, c'est Smart-Relay. Copiez-le et collez-le ici. Une fois votre lien affiché, cliquez sur connecter. Ensuite, cliquez sur deploy branch(manual). Après le déploiement, vous pouvez voir le lien dans le journal de génération ou vous pouvez voir le lien dans les paramètres. Nous aurons besoin de ce lien plus tard lorsque nous créerons une compétence Amazon.

Étape 2: Amazon

Amazone
Amazone
Amazone
Amazone
Amazone
Amazone

Dernières images de la compétence Alexa

Sur le site des développeurs Amazon, nous utilisons les compétences d'Amazon pour contrôler le déclenchement du commutateur en réglant la température et l'humidité.

Accédez au site des développeurs Amazon. Le lien est donné ci-dessous.

Site Web des développeurs Amazon

  • Accédez à la console développeur en haut à droite, comme illustré à la figure i4
  • Allez sur Alexa puis sélectionnez Alexa Skill Kit, puis créez une nouvelle compétence en cliquant sur Ajouter une nouvelle compétence.

Lorsque vous ajoutez une nouvelle compétence, vous verrez la page d'informations sur les compétences.

1. Informations sur les compétences (comme indiqué dans l'image i7)

nous devons fournir le type de compétence, la langue, le nom, le nom d'invocation.

Type de compétence ==> sélectionnez personnalisé

  • Nom ==> sélectionnez n'importe quel nom.
  • Nom d'invocation ==> que vous utilisez lors de la communication avec Alexa. Par exemple;- Alexa, demandez au capteur d'activer le déclencheur ou Alexa, demandez à la lumière d'allumer ici les noms d'invocation sont capteur et lumière.
  • Langue ==> Anglais (Inde). Sélectionnez selon votre pays

cliquez sur enregistrer puis sur suivant

2. Modèle d'interaction

Ici, nous utiliserons le constructeur de compétences. Alors, cliquez sur Lancer Skill Builder. vous verrez la page comme indiqué dans l'image i8.

Nous créons d'abord de nouvelles intentions. Cliquez sur Ajouter (sur le côté gauche) et donnez le nom que vous voulez, j'ai utilisé "smartswitch"

  • Donnez le nom du type d'emplacement « type_mesure » et les valeurs de l'emplacement « température » et « humidité » comme indiqué dans l'image i9.

  • Après cela, ajoutez le nom de type d'emplacement « requête » et les valeurs d'emplacement sont « quoi » et « est », comme indiqué dans l'image i10.
  • Après cela, ajoutez le type d'emplacement "switchstate" et les valeurs d'emplacement sont "on" et "off" comme indiqué dans l'image i11.
  • Ajoutez un autre type d'emplacement "tempscale" et les valeurs d'emplacement sont "fahrenheit" et "celcuis" comme indiqué dans l'image i12.
  • Après cela, ajoutez un nouveau type d'emplacement ici, nous utilisons le type d'emplacement existant pour cela, nous devons cliquer sur utiliser l'emplacement existant. Dans l'emplacement existant, recherchez amazon.number, sélectionnez-le et ajoutez-le. Après l'avoir ajouté, vous le verrez dans les types d'emplacements comme indiqué dans l'image i13.

Nous avons donc terminé avec les types de slots. Le type de slot total que nous utilisons est 5. Maintenant, passez à l'étape suivante. Cliquez sur l'intention que nous avons créée, dans mon cas, il s'agit de smartswitch. Sur le côté droit, vous verrez la fente d'intention comme indiqué dans l'image i14.

  • Créez un nouvel emplacement, nommez-le "Switch_State" et mappez-le sur "switchstate" en utilisant le bouton déroulant comme indiqué dans l'image i15.
  • Créez un nouvel emplacement, nommez-le "Sensor_Values" et mappez-le sur "measurement_type" comme indiqué dans l'image i16.
  • Créez un nouvel emplacement, nommez-le « requête » et mappez-le sur « requête » comme indiqué dans l'image i17.
  • Après cela, créez un nouvel emplacement "tmp_scale" et mappez-le sur "tempscale" comme indiqué dans l'image i18.
  • Créez un nouvel emplacement "Numbers" et mappez-le sur "Amazon. Numbers" comme indiqué dans l'image i19.

Nous en avons maintenant terminé avec les emplacements d'intention. Nous utilisons 5 emplacements d'intention. Après cela, nous passons aux exemples d'énoncés comme indiqué dans l'image i20.

Ajoutez cet exemple d'énoncés.

définir le déclencheur du commutateur sur {Numbers} pour cent {tmp_scale}

{query} est l'état du commutateur

Déclencheur de commutateur {Switch_State}

régler le déclencheur sur {Numbers} degré {tmp_scale}

tourner le commutateur {Switch_State}

{query} commutateur {Switch_State}

{query} est le {Sensor_Values} actuel

Après cela, enregistrez le modèle et construisez-le. Attendez que le modèle soit construit après cela, cliquez sur configuration. Après la construction, vous verrez un message comme indiqué dans les images i21 et i22.

3. Paramétrage

Sélectionnez HTTPS et ajoutez le lien qui a été généré lors de la création de l'application heroku. Dans mon cas, il s'agit de https://iottempswitch.herokuapp.com/. Après avoir ajouté le lien, cliquez sur suivant comme indiqué dans l'image i23.

4. Certificat SSLSélectionnez la deuxième option et cliquez sur suivant comme indiqué dans l'image i24.

nous avons réussi à créer notre compétence.

Étape 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Ouvrez Arduino IDE. Ensuite, allez dans Fichier ==> Préférence

Dans Additional Boards Manager, copiez et collez l'URL et cliquez sur ok comme indiqué dans l'image i26.

arduino.esp8266.com/versions/2.4.0/package_…

  • Ouvrez Board Manager en allant dans Outils ==> Board ==> Board Manager.
  • Ouvrez Boards Manager et recherchez nodemcu comme indiqué dans l'image i27.
  • Après cela, téléchargez la bibliothèque ESP8266WiFi. Ouvrez le gestionnaire de bibliothèque: Sketch ==> Inclure la bibliothèque ==> Gérer les bibliothèques.
  • Recherchez la bibliothèque ESP8266WiFi et installez-la.
  • Sélectionnez la carte ==> Module générique ESP8266.
  • Avant de télécharger le code, nous avons besoin de trois bibliothèques.

Bibliothèques requises

Déplacez ces bibliothèques dans le dossier des bibliothèques d'Arduino

Vous devez changer trois choses dans le code SSID, PWD et le lien de votre application heroku. Après cela, téléchargez le code. Pour le module ESP, vous devez appuyer sur le bouton flash lors du téléchargement du code, puis appuyer une fois sur le bouton de réinitialisation, puis relâcher le bouton flash. Après avoir téléchargé le code, ouvrez le terminal. vous verrez la sortie.

Étape 4: Description des composants

Description du composant
Description du composant
Description du composant
Description du composant
Description du composant
Description du composant
Description du composant
Description du composant

1. Qu'est-ce qu'un relais

Le relais est un dispositif électromagnétique utilisé pour isoler électriquement deux circuits et les connecter magnétiquement. Ce sont des dispositifs très utiles et permettent à un circuit d'en commuter un autre alors qu'ils sont complètement séparés. Ils sont souvent utilisés pour interfacer un circuit électronique (fonctionnant à basse tension) à un circuit électrique qui fonctionne à très haute tension. Par exemple, un relais peut faire un circuit de batterie 5V DC pour commuter un circuit secteur 230V AC.

Comment ça fonctionne

Un commutateur de relais peut être divisé en deux parties: entrée et sortie. La section d'entrée a une bobine qui génère un champ magnétique lorsqu'une petite tension d'un circuit électronique lui est appliquée. Cette tension est appelée tension de fonctionnement. Les relais couramment utilisés sont disponibles dans différentes configurations de tensions de fonctionnement comme 6V, 9V, 12V, 24V, etc. La section de sortie se compose de contacteurs qui se connectent ou se déconnectent mécaniquement. Dans un relais de base, il y a trois contacteurs: normalement ouvert (NO), normalement fermé (NC) et commun (COM). À aucun état d'entrée, le COM est connecté à NC. Lorsque la tension de fonctionnement est appliquée, la bobine du relais est excitée et le COM change le contact en NO. Différentes configurations de relais sont disponibles, telles que SPST, SPDT, DPDT, etc., qui ont un nombre différent de contacts inverseurs. En utilisant une combinaison appropriée de contacteurs, le circuit électrique peut être activé et désactivé. Obtenez des détails internes sur la structure d'un commutateur de relais.

La borne COM est la borne commune. Si les bornes COIL sont alimentées avec la tension nominale, les bornes COM et NO ont une continuité. Si les bornes COIL ne sont pas alimentées, les bornes COM et NO n'ont aucune continuité.

La borne NC est la borne normalement fermée. C'est la borne qui peut être mise sous tension même si le relais ne reçoit pas ou suffisamment de tension pour fonctionner.

La borne NO est la borne normalement ouverte. C'est la borne où vous placez la sortie que vous voulez lorsque le relais reçoit sa tension nominale. S'il n'y a pas de tension aux bornes COIL ou si la tension est insuffisante, la sortie est ouverte et ne reçoit aucune tension. Lorsque les bornes COIL reçoivent la tension nominale ou un peu moins, la borne NO reçoit une tension suffisante et peut allumer l'appareil en sortie.

Capteur de température 2. DHT

DHT11 est un capteur d'humidité et de température, qui génère une sortie numérique calibrée. DHT11 peut s'interfacer avec n'importe quel microcontrôleur comme Arduino, Raspberry Pi, etc. et obtenir des résultats instantanés. Le DHT11 est un capteur d'humidité et de température à faible coût qui offre une fiabilité élevée et une stabilité à long terme.

3. ESP8266 Description complète

Le module WiFi ESP8266 est un SOC autonome avec une pile de protocoles TCP/IP intégrée qui peut donner à n'importe quel microcontrôleur un accès à votre réseau WiFi. L'ESP8266 est capable d'héberger soit des fonctions de mise en réseau d'une application à partir d'une autre application. Chaque module ESP8266 est livré préprogrammé avec une commande AT.

L'ESP8266 prend en charge l'APSD pour les applications VoIP et les interfaces de coexistence Bluetooth, il contient un RF auto-calibré lui permettant de fonctionner dans toutes les conditions de fonctionnement et ne nécessite aucune pièce RF externe.

Caractéristiques

  • 802.11b/g/n
  • Wi-Fi Direct (P2P),
  • Pile de protocole TCP/IP intégrée à l'API logicielle
  • Commutateur TR intégré, balun, LNA, amplificateur de puissance et réseau correspondant
  • PLL, régulateurs, DCXO et unités de gestion de l'alimentation intégrés
  • Puissance de sortie de +19,5 dBm en mode 802.11b
  • Mettre hors tension le courant de fuite de <10uA
  • 1 Mo de mémoire flash
  • Le processeur 32 bits intégré à faible consommation peut être utilisé comme processeur d'application
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU & A-MSDU agrégation et intervalle de garde de 0,4 ms
  • Réveiller et transmettre des paquets en < 2ms
  • Consommation électrique en veille < 1,0 mW (DTIM3)

Description de la broche comme indiqué dans l'image i34.

Pour connecter le module ESP avec Arduino UNO, nous avons besoin d'un régulateur de tension Lm1117 3.3 ou de tout autre régulateur car Arduino n'est pas capable de fournir 3,3 v à ESP8266.

Remarque: - Pendant le téléchargement du code, appuyez sur le bouton flash, puis appuyez une fois sur le bouton de réinitialisation, puis relâchez le bouton flash comme indiqué sur l'image i29.

Pour connecter le capteur et le relais DHT11, nous utilisons deux broches GPIO du module ESP8266. Après avoir téléchargé le code, vous pouvez déconnecter les broches RX, TX, GPIO0. J'ai utilisé GPIO0 pour le capteur DHT11 et GPIO2 pour les relais. Le capteur DHT11 fonctionne bien avec ESP8266, mais pour les relais, nous avons besoin d'un élément supplémentaire, à savoir un opto-isolateur ou un opto-coupleur. Voir image i30, i31, i32 et i33.

Étape 5: Connexions

ESP8266 === > DHT11GPIO0 === > Broche de sortie

ESP8266 ===> RelayGPIO2 ===> Entrée

ARDUINO ===> ESP8266

Gnd ===> GndTX === > TX

Réception === > Réception

Bouton de réinitialisation ===> RST

Bouton Flash ===> GPIO0

Étape 6: Vérifier toutes les choses

Vérifier toutes les choses
Vérifier toutes les choses
Vérifier toutes les choses
Vérifier toutes les choses
Vérifier toutes les choses
Vérifier toutes les choses
Vérifier toutes les choses
Vérifier toutes les choses

Nous avons créé avec succès notre application, nos compétences et notre matériel est prêt. Alors, il est temps de vérifier.

Pour cela votre ESP8266 est allumé car notre serveur tourne sur ESP8266. Ici, je n'ai connecté aucun capteur à ESP8266, je vérifie simplement si cela fonctionne ou non, mais vous pouvez connecter un capteur, un relais à ESP8266. Une fois connecté à Heroku, vous verrez connecté. Pour tester, accédez à la compétence Amazon que vous avez créée, puis cliquez sur la page de test. Une fois son fonctionnement vérifié, je connecterai mon capteur à l'ESP8266. Vous pouvez voir les résultats comme indiqué dans les images i35, i36, 37, 38, 39, 40.

Si vous l'utilisez sans connecter ESP8266, vous obtenez cette erreur comme indiqué dans l'image i41.

Énoncé que vous pouvez utiliser

définir le déclencheur du commutateur sur {Numbers} pour cent {tmp_scale}

ex:- régler la gâchette sur 50 % d'humidité

{query} est l'état du commutateur

ex- on/off est l'état de commutation

Déclencheur de commutateur {Switch_State}

ex-interrupteur marche/arrêt

régler le déclencheur sur {Numbers} degré {tmp_scale}

ex - régler la gâchette à 76 degrés Fahrenheit

ex - régler la gâchette à 24 degrés celcius

tourner l'interrupteur {Switch_State}

ex - allumer/éteindre l'interrupteur

Voir l'image i41 à i46 pour les résultats.

Tout en parlant à AlexaAlexa, demandez à l'arduino d'activer/désactiver la gâchette

Alexa, demande à Arduino de régler la gâchette sur 24 degrés Celsius.

Alexa, demande à Arduino de régler le déclencheur sur 50 % d'humidité

Alexa, demande à Arduino d'allumer/éteindre l'interrupteur

Étape 7: Diagramme VUI (Voice User Interface)

Diagramme VUI (interface utilisateur vocale)
Diagramme VUI (interface utilisateur vocale)

Étape 8: Démo

Image
Image

1. Réglez le déclencheur pour la température et l'humidité.

2. Réglez la gâchette à 20 degrés Celsius.

3. Réglez la gâchette sur 80 % d'humidité.

Étape 9: Schéma

Conseillé: