- Composants requis pour construire des stores automatisés Arduino
- Contrôle des stores enrouleurs à l'aide d'Arduino
- Concevoir et construire le store de fenêtre
- Impression 3D du support de moteur et de l'engrenage aveugle
- Schéma de circuit pour le contrôle des stores Arduino
- Application Blynk pour Arduino Blind Control
- Programmation de NodeMCU pour contrôler les stores à l'aide de Blynk
- Contrôle des stores à l'aide de l'Assistant Google
- Contrôle automatique des fenêtres aveugles basé sur Arduino - Démonstration
"Bonjour. Il est 7 heures du matin. Le temps à Malibu est de 72 degrés… »ce furent les premiers mots de JARVIS lors de son introduction dans l'univers Marvel Cinematics. La plupart des fans d'Iron Man devraient pouvoir se souvenir de cette scène et se rappeler que JARVIS a pu ouvrir une fenêtre (en quelque sorte) le matin et donner des mises à jour sur l'heure et la météo. Dans le film, les lunettes de fenêtre étaient en fait constituées d'écrans tactiles transparents et JARVIS a donc pu le faire passer du noir au transparent et afficher des statistiques météorologiques dessus. Mais, en réalité, nous sommes loin des écrans tactiles transparents, et plus nous pouvons nous rapprocher du contrôle automatique des stores ou des contraintes.
Donc, dans ce projet, nous allons construire exactement cela, nous allons construire un store motorisé automatisé qui s'ouvrirait et se fermerait automatiquement à des heures prédéfinies. Auparavant, nous avons construit de nombreux projets domotiques dans lesquels nous avons automatisé les lumières, les moteurs, etc. Vous pouvez les consulter si vous êtes intéressé. Donc, pour revenir, ces stores contrôlés par Arduino peuvent également prendre des commandes de l'assistant Google afin que vous puissiez ouvrir ou fermer vos stores à distance via des commandes vocales. Intrigant? Ensuite, faisons-le construire.
Composants requis pour construire des stores automatisés Arduino
Le projet est relativement simple et il n'y a pas beaucoup de composants requis. Rassemblez simplement les éléments énumérés ci-dessous.
- NodeMCU
- Moteur pas à pas - 28BYJ-48
- Module de pilote de moteur pas à pas
- LM117-3.3V
- Condensateurs (10uf, 1uf)
- Adaptateur 12 V CC
- Conseil Perf
- Kit de soudure
- Imprimante 3D
Contrôle des stores enrouleurs à l'aide d'Arduino
Il existe maintenant de nombreux types de stores sur le marché, mais le plus couramment utilisé a une corde avec des baguettes (comme indiqué ci-dessous) qui peut être tirée pour ouvrir ou fermer les stores.
Lorsque nous tirons cette corde circulaire dans le sens des aiguilles d'une montre, les stores de fenêtre s'ouvriront et lorsque nous tirons cette corde dans le sens anti-horaire, les stores de fenêtre se fermeront. Donc, si nous devions automatiser ce processus, tout ce que nous avons à faire est d'utiliser un moteur pour tirer cette corde dans le sens horaire ou anti-horaire et nous en aurons terminé. En fait, c'est ce que nous allons faire dans ce projet; nous utiliserons le moteur pas à pas 28BYJ-48 avec un NodeMCU pour tirer la corde perlée.
Concevoir et construire le store de fenêtre
La partie électronique de ce projet était assez simple et directe, le défi consistait à construire le Blind Gear qui pouvait tirer la corde perlée. Commençons donc cet article par la conception de l'engrenage aveugle, je ne vais pas entrer dans les détails sur la façon de concevoir l'équipement, mais cette idée de base devrait vous aider. Une image de la corde avec les perles dessus est montrée ci-dessous.
Encore une fois, il existe de nombreux types de cordes, mais les cordes les plus couramment utilisées sont la distance centre à centre de chaque perle est de 6 mm et le diamètre de chaque perle est de 4 mm. En utilisant ces informations, nous pouvons commencer la conception de notre équipement. Si la corde de vos stores a les mêmes dimensions que celles décrites, vous pouvez simplement ignorer cette étape et télécharger le fichier STL fourni dans cet article et imprimer le matériel. Si votre corde a un arrangement de perles différent, voici comment vous devez reconcevoir l'engrenage aveugle.
J'ai décidé d'avoir 24 perles sur mon équipement pour obtenir une taille de roue dentée optimale, vous pouvez sélectionner n'importe quel nombre proche de cela pour que votre roue dentée soit grande ou petite. Alors maintenant, nous savons que la distance entre chaque perle est de 6 mm et nous avons besoin de 24 perles sur notre équipement. Multiplier les deux donnera la circonférence de la roue dentée. Avec ces données, vous pouvez calculer le rayon de la roue dentée. Comme vous pouvez le voir sur l'image ci-dessus, le diamètre de ma roue dentée a été calculé à environ 46 mm. Mais rappelez-vous, ce n'est pas le diamètre réel de l'engrenage car nous n'avons pas pris en compte le diamètre du bourrelet qui est de 4 mm. Ainsi, le diamètre réel de la roue dentée sera de 42 mm, j'ai imprimé et testé de nombreuses roues dentées avant de trouver celle qui fonctionne le mieux. Si vous n'êtes pas dans les designs,il suffit de télécharger et d'imprimer les fichiers STL du paragraphe suivant et de poursuivre votre projet.
Impression 3D du support de moteur et de l'engrenage aveugle
En plus de l'engrenage, nous aurons également besoin d'un petit boîtier qui peut être percé sur le mur et maintenir le moteur pas à pas en position, le boîtier et l'engrenage utilisés dans ce projet sont illustrés ci-dessous.
Vous pouvez trouver des fichiers de conception complets et des fichiers STL sur la page Arduino Blind Control Thingiverse ci-dessous. Vous pouvez simplement télécharger et imprimer votre engrenage aveugle et votre boîtier de moteur.
Télécharger les fichiers STL pour les engrenages aveugles et le boîtier du moteur
Schéma de circuit pour le contrôle des stores Arduino
Une fois que vous êtes prêt avec l'équipement et l'assemblage, il est facile de procéder avec l'électronique et la partie logicielle. Le schéma de circuit complet du projet de contrôle IoT Blind est illustré ci-dessous.
Nous avons utilisé un adaptateur 12V pour alimenter l'ensemble de l'installation; le régulateur LM1117-3.3V convertit le 12V en 3,3V qui peut être utilisé pour alimenter la carte NodeMCU. Le module de pilotage du moteur pas à pas est directement alimenté par l'adaptateur 12V. J'ai essayé de faire fonctionner le moteur pas à pas sur 5V, mais il n'a pas fourni suffisamment de couple pour tirer les stores, alors assurez-vous que vous utilisez également 12V.
En dehors de cela, le circuit est assez simple, si vous êtes nouveau dans les moteurs pas à pas, examinez les bases de l'article sur les moteurs pas à pas pour comprendre comment cela fonctionne et comment il peut être utilisé avec un microcontrôleur.
Application Blynk pour Arduino Blind Control
Avant d'entrer dans le programme Arduino pour le contrôle des stores, ouvrons l'application blynk et créons des boutons à l'aide desquels nous pouvons ouvrir ou fermer nos stores. Nous en aurons également besoin plus tard pour contrôler depuis Google Home.
Je viens d'ajouter deux boutons pour ouvrir et fermer les stores et une minuterie pour ouvrir les stores à 10h00 tous les jours. Vous pouvez ajouter plusieurs minuteries pour ouvrir ou fermer les stores à différents intervalles de la journée. En gros, lorsque nous devons fermer les stores, nous devons déclencher la broche virtuelle V1 et lorsque nous devons ouvrir les stores, nous devons déclencher la broche virtuelle V2. Le programme pour contrôler le moteur pas à pas basé sur le bouton enfoncé ici sera écrit sur l'IDE Arduino, la même chose est discutée ci-dessous.
Programmation de NodeMCU pour contrôler les stores à l'aide de Blynk
Le code ESP8266 complet pour ce projet de contrôle des aveugles se trouve au bas de cette page. Notre programme doit attendre une commande de l'application blynk et sur la base de cette commande, nous devons faire tourner le moteur pas à pas dans le sens des aiguilles d'une montre ou dans le sens inverse des aiguilles d'une montre. Les segments importants du code sont décrits ci-dessous.
Selon notre schéma de circuit, nous avons utilisé les broches numériques 1, 2, 3 et 4 sur nodemcu pour contrôler notre moteur pas à pas. Nous devons donc créer une instance appelée stepper en utilisant ces broches comme indiqué ci-dessous. Notez que nous avons défini les broches dans l'ordre 1, 3, 2 et 4. Cela a été fait délibérément et ce n'est pas une erreur; nous devons permuter les broches 2 et 3 pour que le moteur fonctionne correctement.
// crée une instance de la classe stepper en utilisant les étapes et les broches Stepper stepper (STEPS, D1, D3, D2, D4);
Dans l'étape suivante, nous devons partager notre jeton d'authentification d'application blynk et les informations d'identification Wi-Fi auxquelles notre contrôleur IoT Blind doit être connecté. Si vous ne savez pas comment obtenir ce jeton d'authentification Blynk, reportez-vous au projet Blynk LED Control pour comprendre les bases de l'application blynk et comment l'utiliser.
// Vous devriez obtenir un jeton d'authentification dans l'application Blynk. // Allez dans les paramètres du projet (icône en forme d'écrou). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Vos informations d'identification WiFi. // Définit le mot de passe sur "" pour les réseaux ouverts. char ssid = "CircuitDigest"; char pass = "dummy123";
Passant à notre code, après la fonction de configuration, nous avons défini deux méthodes pour blynk. Comme mentionné précédemment, nous devons définir ce que les broches virtuelles V1 et V2 doivent faire. Le code pour le même est donné ci-dessous.
BLYNK_WRITE (V1) // FERMER les BLINDS {Serial.println ("Closing Blinds"); if (open == true) {for (int c_val = 0; c_val <= 130; c_val ++) // tourner dans le sens anti-horaire pour fermer {stepper.step (c_val); rendement(); } fermé = vrai; ouvert = faux; disable_motor (); // toujours désactiver les moteurs pas à pas après utilisation pour réduire la consommation d'énergie et le chauffage}} BLYNK_WRITE (V2) // OUVRIR les stores {Serial.println ("Opening Blinds"); if (closed == true) {for (int cc_val = 0; cc_val> = -130; cc_val--) // tourner dans le sens des aiguilles d'une montre pour ouvrir {stepper.step (cc_val); rendement(); } ouvert = vrai; fermé = faux; } disable_motor (); // moteurs pas à pas toujours désactivables après utilisation pour réduire la consommation d'énergie et le chauffage}
Comme vous pouvez le voir, V1 est utilisé pour fermer les stores et le V2 est utilisé pour ouvrir les stores. Une boucle for est utilisée pour faire tourner les moteurs dans le sens horaire ou anti-horaire pendant 130 pas. J'ai expérimenté mes stores pour constater qu'avec 130 marches, je suis capable d'ouvrir et de fermer complètement mes stores. Votre numéro peut varier. La boucle for pour faire tourner le moteur pas à pas dans le sens horaire et antihoraire est illustrée ci-dessous.
for (int c_val = 0; c_val <= 130; c_val ++) // tourner dans le sens anti-horaire pour fermer {stepper.step (c_val); rendement(); } for (int cc_val = 0; cc_val> = -130; cc_val--) // tourner dans le sens des aiguilles d'une montre pour ouvrir {stepper.step (cc_val); rendement(); }
Vous pouvez également remarquer deux variables booléennes «ouvertes» et «fermées» dans notre programme. Ces deux variables sont utilisées pour empêcher le moteur d'ouvrir ou de fermer les stores deux fois. Cela signifie que les stores ne s'ouvriront que lorsqu'ils ont été précédemment fermés et ils ne se fermeront que lorsqu'ils sont précédemment ouverts.
Comment augmenter la vitesse du moteur pas à pas 28BJY-48?
Un inconvénient de l'utilisation du moteur pas à pas 28BJY-48 est qu'il est très lent. Ces moteurs ont été fabriqués à l'origine pour être utilisés dans des applications à faible vitesse de haute précision, ne vous attendez donc pas à ce que ces moteurs tournent à haute vitesse. Si vous souhaitez augmenter la vitesse du moteur pas à pas en utilisant Arduino, vous pouvez modifier deux paramètres. L'un est le #define STEPS 64, j'ai trouvé que lorsque les étapes sont définies comme 64, le moteur était comparativement plus rapide. Un autre paramètre est un stepper.setSpeed (500); encore une fois, j'ai trouvé que 500 était une valeur optimale, rien de plus que cela rend le moteur pas à pas plus lent.
Connaissez-vous un autre moyen d'augmenter la vitesse de ces moteurs? Si oui, laissez-les dans la section commentaires ci-dessous.
Comment éviter la surchauffe du moteur pas à pas?
Les moteurs pas à pas doivent toujours être désactivés lorsqu'ils ne sont pas utilisés pour éviter la surchauffe. La désactivation d'un moteur pas à pas est très simple; il suffit de changer l'état des broches des quatre broches GPIO qui contrôlent le moteur pas à pas sur bas. Ceci est très important, sinon votre moteur pourrait devenir très chaud à + 12V et s'endommager définitivement. Le programme pour désactiver le moteur pas à pas est donné ci-dessous.
void disable_motor () // éteint le moteur une fois terminé pour éviter de chauffer {digitalWrite (D1, LOW); DigitalWrite (D2, LOW); DigitalWrite (D3, LOW); DigitalWrite (D4, LOW); }
Contrôle des stores à l'aide de l'Assistant Google
Nous allons utiliser l'API blynk pour contrôler les stores via l'assistant Google, ce sera similaire à notre projet de domotique à commande vocale, alors vérifiez-le si vous êtes intéressé. Fondamentalement, nous devons déclencher le lien ci-dessous lorsque nous disons une phrase prédéfinie à Google Assistant.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Assurez-vous de remplacer le jeton d'authentification par celui fourni par votre application blynk. Vous pouvez même tester ce lien sur votre navigateur Chrome pour voir s'il fonctionne comme prévu. Maintenant que le lien est prêt, nous devons simplement passer à IFTTT et créer deux applets qui peuvent déclencher les broches virtuelles V1 et V2 lorsque nous demandons de fermer et d'ouvrir les stores. Encore une fois, je n'entre pas dans les détails parce que nous l'avons fait à plusieurs reprises. Si vous avez besoin de plus d'aide, reportez-vous à ce projet de radio FM à commande vocale, remplacez simplement les services adafruit par des webhooks. Je partage également une capture d'écran de mon extrait de code pour référence.
Contrôle automatique des fenêtres aveugles basé sur Arduino - Démonstration
Une fois le circuit et les boîtiers imprimés en 3D prêts, il suffit d'assembler l'appareil sur le mur en perçant deux trous sur le mur. Ma configuration de montage est illustrée ci-dessous.
Après cela, assurez-vous que vos stores sont dans un état ouvert, puis mettez le circuit sous tension. Maintenant, vous pouvez essayer de fermer les stores depuis l'application blynk ou via Google Assistant et cela devrait fonctionner. Vous pouvez également définir des minuteries sur l'application blynk pour ouvrir et fermer automatiquement le store à une heure particulière de la journée.
Le fonctionnement complet du projet peut être trouvé dans la vidéo ci-dessous; si vous avez des questions, n'hésitez pas à les écrire dans la section commentaires ci-dessous. Vous pouvez également utiliser nos forums pour d'autres discussions techniques.