- Schéma de circuit pour la domotique contrôlée par Google Assistant
- Configuration de l'application Blynk
- Configurer IFTTT avec Google Assistant et Blynk pour lire la chaîne
- Programmation Arduino pour la domotique Blynk
- Fabrication de PCB avec PCBGoGo
- Assemblage du PCB
- Connexion de la carte aux unités d'alimentation CA / cartes d'extension
Avec l'avancement des assistants virtuels tels que Google Assistant et Alexa, la domotique et les applications contrôlées par la voix deviennent normales. Maintenant, nous avons nous-mêmes construit de nombreux projets de domotique, des simples lumières d'escalier automatiques à la domotique contrôlée par Internet basée sur l'IoT à l'aide de Raspberry Pi. Mais ce projet ici est différent, l'idée ici est de créer un tableau domotique pratique qui puisse s'insérer dans nos blocs d'alimentation CA sur nos murs et rester caché à l'intérieur. La carte ne doit pas interrompre le fonctionnement normal des interrupteurs de nos blocs d'alimentation, c'est-à-dire qu'ils doivent également s'allumer ou s'éteindre avec des interrupteurs manuels. Et sans être dit, il devrait également être en mesure de contrôler la même charge avec la voix à l'aide de l'assistant Google et également de définir une minuterie afin que toute charge puisse automatiquement s'allumer ou s'éteindre à une heure prédéfinie de la journée.
Ce projet est très similaire à notre prise ESP8266 Smart Wi-Fi mais ici puisque nous utiliserons ESP12, nous aurons plus de broches GPIO nous permettant de contrôler quatre charges AC simultanément. De plus, depuis que nous avons intégré Blynk et Google Assistant, le projet devient intéressant et pratique à utiliser. Pour ce projet, nous avons construit les circuits imprimés en utilisant le service de fabrication PCBGOGO PCB. Dans la dernière section de l'article, nous avons fourni le fichier Gerber conçu pour le circuit et expliqué la procédure complète pour commander les PCB auprès de PCBGOGO.
Avertissement: Ce projet implique de travailler avec la tension secteur CA. Sachez qu'une extrême prudence doit être prise lorsque vous travaillez avec des tensions CA élevées. Assurez-vous d'être supervisé par une personne expérimentée si vous êtes nouveau.
Schéma de circuit pour la domotique contrôlée par Google Assistant
Le schéma de circuit complet pour la domotique se trouve ci-dessous.
Comme vous pouvez le voir, le circuit est très simple, commençons l'explication à partir du module Wi-Fi ESP12E. Vous pouvez également consulter la vidéo ci-dessous pour une explication détaillée du projet. Le module peut être programmé comme les cartes de développement nodeMCU et il réduit beaucoup d'espace. Par défaut, lorsqu'il est mis sous tension, l'ESP12E entre en mode de fonctionnement. Pour le programmer, nous devons utiliser le bouton Reset et Flash. C'est-à-dire mettre l'ESP12 en mode de programmation, appuyez et maintenez les boutons de réinitialisation et de flash, puis relâchez le bouton de réinitialisation. Cela démarrera l'ESP12E avec le bouton flash enfoncé, relâchez maintenant le bouton flash et l'ESP12E entrera en mode de programmation. Après la programmation, vous devez appuyer à nouveau sur le bouton de réinitialisation pour démarrer l'ESP12E en mode de fonctionnement normal pour exécuter le programme téléchargé. Les broches de programmation Rx, Rx,et Ground sont étendus pour pouvoir se connecter avec une carte FTDI ou un convertisseur USB vers TTL. Assurez-vous de connecter la broche Tx de l'ESP12 à la broche Rx du programmateur et vice versa.
Les autres broches d'indicateur I1 à I4 et R1 à R4 sont utilisées pour connecter les commutateurs et les relais. Les broches I1 à I4 représentent les broches d'entrée. Toutes ces broches prennent en charge une résistance de rappel interne, nous devons donc simplement connecter les commutateurs de la boîte d'extension à notre broche d'entrée via une résistance de rappel, comme indiqué ci-dessous.
De même, les broches de sortie de relais R1 à R4 sont utilisées pour contrôler les relais. Nous avons utilisé un circuit de commande de relais standard avec les diodes BC547 et IN4007 comme indiqué ci-dessous. Notez que les relais doivent être déclenchés avec 5V mais les broches de sortie ESP12E ne sont que 3,3V. Il est donc obligatoire d'utiliser un transistor pour piloter les relais. Nous avons également placé une LED dans le chemin de base du transistor de sorte que chaque fois que le transistor est déclenché, la LED s'allume également.
Enfin, pour alimenter tous nos circuits, nous avons utilisé le convertisseur Hi-Link AC-DC pour convertir notre 220V AC en 5V DC. Ce 5V DC est ensuite converti en 3,3V à l'aide d'un régulateur de tension AMS117-3.3V. Le 5V est utilisé pour déclencher les relais et 3,3V est utilisé pour alimenter le module Wi-Fi ESP21.
Configuration de l'application Blynk
Nous avons déjà construit de nombreux projets Blynk tels que le robot Arduino contrôlé par Wi-Fi, nous n'entrerons donc pas dans les détails de la configuration de l'application blynk. Mais pour faire simple, installez simplement l'application, créez un nouveau projet pour NodeMCU et commencez à placer vos widgets comme indiqué ci-dessous.
J'ai utilisé les broches virtuelles V1 à V4 pour contrôler les relais 1 à 4 sur notre projet. Assurez-vous de changer le type de bouton pour basculer. L'option de minuterie peut également être utilisée pour déclencher automatiquement les broches virtuelles pendant la durée définie, même si le téléphone est éteint. J'ai utilisé une minuterie uniquement pour la broche virtuelle V1 ici, par exemple, mais vous pouvez l'utiliser pour les quatre broches si nécessaire.
Assurez-vous d'obtenir la valeur de votre jeton d'authentification blynk à partir de la page de votre projet. Cliquez simplement sur l'icône d'écrou (entourée en rouge dans l'image ci-dessus) et copiez le jeton d'authentification en utilisant l'option Copier tout et collez-le dans un endroit sûr, nous en aurons besoin lors de la programmation de la carte Arduino.
Configurer IFTTT avec Google Assistant et Blynk pour lire la chaîne
Le moyen le plus simple d'utiliser Google Assistant pour la domotique est d'utiliser IFTTT. Nous avons également construit de nombreux projets IFTTT précédemment avec NodeMCU et Raspberry Pi. Dans ce projet, nous utiliserons l' application Blynk pour déclencher un webhook à l'aide de l'assistant Google. Il est très similaire à notre projet de domotique à commande vocale et de radio FM à commande vocale. Sauf, ici, nous utiliserons blynk avec IFTTT pour envoyer une chaîne, ce qui le rend beaucoup plus facile et intéressant.
Fondamentalement, nous utiliserons les broches virtuelles V5 et V6 sur blynk pour envoyer la commande de déclenchement. V5 sera utilisé pour les commandes d'activation et V6 sera utilisé pour les commandes d'arrêt. Par exemple, si nous disons allumer la télévision et la lampe. La commande de chaîne ici «TV et lampe» sera envoyée à NodeMCU à l'aide d'une API. La syntaxe de l'API est la suivante.
http://188.166.206.43//update/V5?value=TV et lampe
Maintenant, tout ce que nous avons à faire dans IFTTT est d'utiliser l'assistant Google comme IF et les webhooks comme CELA alors écoutez cette commande et envoyez les informations à NodeMCU à l'aide de l'API susmentionnée. L'applet d'activation de la même forme est illustré ci-dessous.
Notez que vous devez sélectionner l' option dire une phrase avec l' option d' ingrédient de texte lors de la création d'une recette pour Google Assistant. De même, vous devez répéter la même chose pour la broche virtuelle V6 pour désactiver les relais. Vous pouvez consulter la vidéo au bas de cette page pour des informations détaillées.
Programmation Arduino pour la domotique Blynk
Le code Arduino complet pour ce projet se trouve au bas de cette page. L'explication de la même chose est la suivante. Avant cela, assurez-vous que vous pouvez utiliser Blynk et Program NodeMCU à partir d'Arduino IDE. Sinon, suivez l'article de démarrage avec ESP12. Ajoutez également la bibliothèque blynk à Arduino IDE à l'aide du gestionnaire de cartes.
Comme toujours, nous commençons notre code en définissant les broches d'entrée et de sortie, ici l'entrée proviendra de commutateurs et la sortie proviendra de relais. Nous avons défini les noms de broches des quatre commutateurs comme sw et les relais comme rel comme vous pouvez le voir ci-dessous.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
Dans l'étape suivante, vous devez entrer des informations d'identification comme le jeton d'authentification blynk et le nom d'utilisateur et le mot de passe du routeur Wi-Fi auquel votre nodeMCU doit se connecter. Le jeton d'authentification blink peut être obtenu à partir de l'application blynk. Nous en apprendrons plus à ce sujet dans la section de configuration de l'application blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // extrait de l'application blynk char ssid = "home_wifi"; char pass = "fakepass123";
Ensuite, nous avons donné la définition d'une fonction appelée read_switch_toggle () . Dans cette fonction, nous comparerons l'état actuel et l'état précédent de nos commutateurs. Si l'interrupteur a été activé ou désactivé, c'est-à-dire si l'interrupteur a été basculé. Il y aura un changement dans l'état du commutateur, la fonction surveillera ce changement et retournera le numéro du commutateur. Si aucun changement n'est détecté, il renverra 0.
int read_switch_toggle () {int result = 0; // Notez toutes les valeurs précédentes pour (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Lire l'état actuel des commutateurs crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // comparer l'état actuel et l'état pvs pour (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // si un commutateur est basculé, nous obtenons le numéro du commutateur comme résultat return result; } sinon résultat = 0; // si aucun résultat de changement 0} return result; // retourne le résultat}
Ensuite, nous avons le code de l'application blynk. Nous utiliserons la broche virtuelle V1 à V6 pour contrôler notre boîte de jonction intelligente. Les broches V1 à V4 seront utilisées pour contrôler respectivement les relais 1 à 4 directement depuis l'application blynk. Le code ci-dessous montre ce qui se passe lorsque V1 est déclenché à partir de l'application blynk. Nous lisons simplement l'état (HIGH ou LOW) et contrôlons le relais en conséquence.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
De même, les broches virtuelles peuvent également être utilisées pour lire une chaîne depuis l'application blynk. Nous apprendrons plus tard comment envoyer une chaîne de l'assistant Google à NodeMCU en utilisant IFTTT et l'assistant Google, mais pour l'instant, voyons comment le code NodeMCU lit cette chaîne et recherche un mot-clé particulier et déclenche le relais en conséquence.
Dans le code ci-dessous, vous pouvez voir que lorsque la broche virtuelle V5 est déclenchée, nous obtenons la chaîne passée par elle dans une variable de chaîne appelée ON_message . Ensuite, en utilisant cette variable de chaîne et la méthode inderOf, nous recherchons si des mots clés tels que «lampe», «LED», «musique», «TV» sont présents, si oui, nous activons cette charge particulière. Si le mot-clé «tout» est détecté, nous activons tout. La même chose peut également être faite pour V6 pour désactiver les relais. Nous en saurons plus à ce sujet lorsque nous entrerons dans la section IFTTT.
BLYNK_WRITE (V5) {Chaîne ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lampe")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("musique")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("tout")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Enfin, à l'intérieur de la fonction de boucle, nous n'avons qu'à vérifier si des boutons sont la position du commutateur a changé. Si oui, nous utilisons un boîtier de commutation comme indiqué ci-dessous pour basculer la position de ce relais particulier.
commutateur (toggle_pin) {case 0: break; cas 1: Serial.println ("Toggling Relay 1"); digitalWrite (rel1, relay_state); Pause; cas 2: Serial.println ("Toggling Relay 2"); digitalWrite (rel2, relay_state); Pause; cas 3: Serial.println ("Relais à bascule 3"); digitalWrite (rel3, relay_state); Pause; cas 4: Serial.println ("Relais à bascule 4"); digitalWrite (rel4, relay_state); Pause; }}
Fabrication de PCB avec PCBGoGo
Maintenant que nous comprenons comment fonctionnent les schémas, nous pouvons procéder à la construction du PCB pour notre projet domotique. La mise en page du circuit imprimé ci-dessus est également disponible en téléchargement sous Gerber à partir du lien.
- Téléchargez GERBER pour la domotique à commande vocale à l'aide de Google Assistant
Maintenant que notre conception est prête, il est temps de les fabriquer à l'aide du fichier Gerber. Pour faire le PCB à partir de PCBGOGO est assez facile, suivez simplement les étapes ci-dessous:
Étape 1: Accédez à www.pcbgogo.com, inscrivez-vous si c'est votre première fois. Ensuite, dans l'onglet Prototype PCB, entrez les dimensions de votre PCB, le nombre de couches et le nombre de PCB dont vous avez besoin. En supposant que le PCB mesure 80 cm × 80 cm, vous pouvez définir les dimensions comme indiqué ci-dessous.
Étape 2: Continuez en cliquant sur le bouton Soumettre maintenant . Vous serez redirigé vers une page où définir quelques paramètres supplémentaires si nécessaire, comme le matériau utilisé, l'espacement des pistes, etc. Mais la plupart du temps, les valeurs par défaut fonctionneront bien. La seule chose que nous devons considérer ici est le prix et le temps. Comme vous pouvez le voir, le temps de construction n'est que de 2-3 jours et il ne coûte que 5 $ pour notre PCB. Vous pouvez ensuite sélectionner une méthode d'expédition préférée en fonction de vos besoins.
Étape 3: La dernière étape consiste à télécharger le fichier Gerber et à procéder au paiement. Pour s'assurer que le processus se déroule sans heurts, PCBGOGO vérifie si votre fichier Gerber est valide avant de procéder au paiement. De cette façon, vous pouvez être sûr que votre PCB est facile à fabriquer et vous atteindra comme engagé.
Assemblage du PCB
Après la commande de la carte, elle m'est parvenue au bout de quelques jours par courrier dans une boîte bien emballée bien étiquetée, et comme toujours, la qualité du PCB était excellente. Le PCB que j'ai reçu est illustré ci-dessous. Comme vous le voyez, les couches supérieure et inférieure se sont déroulées comme prévu.
Les vias et les pads étaient tous de la bonne taille. Il m'a fallu environ 15 minutes pour assembler la carte PCB pour obtenir un circuit fonctionnel. La carte assemblée est illustrée ci-dessous.
Connexion de la carte aux unités d'alimentation CA / cartes d'extension
La carte est conçue pour être fixée à l'intérieur des prises de courant CA de nos maisons. Mais pour le bien de ce projet, nous utiliserons une boîte d'extension. Si vous voulez une solution plus permanente, connectez-la à l'intérieur de vos prises de courant alternatif, comme vous pouvez le voir ci-dessous, la longueur du PCB est suffisamment compacte pour être placée dans une prise de courant alternatif.
Assurez-vous de suivre les précautions de sécurité lorsque vous travaillez avec le secteur. Suivez le schéma ci-dessous pour comprendre comment connecter vos relais et commutateurs à notre carte PCB.
Le schéma de connexion est en panne uniquement pour un relais et un commutateur, mais vous pouvez simplement le reproduire pour les trois autres. Une fois les connexions effectuées, votre carte devrait ressembler à ceci
Une fois les connexions effectuées, assurez-vous de les avoir bien fixées avec des bornes à vis et utilisez également de la colle chaude pour plus de sécurité. Remettez tout dans la boîte et nous devrions être prêts pour les tests. Vous pouvez retrouver le fonctionnement complet de ce projet dans la vidéo ci-dessous.
J'espère que vous avez apprécié l'article et appris quelque chose d'utile. Si vous avez des questions, laissez-les dans la section commentaires ci-dessous ou utilisez nos forums.