- Lanceur de roquettes à commande vocale basé sur Alexa - Fonctionnement
- Launchpad pour notre contrôleur de lancement de fusée NodeMCU
- Composants requis pour le lance-roquettes contrôlé par Alexa
- Schéma du circuit du lance-roquettes Arduino
- Construire le circuit sur PerfBoard
- Programmation NodeMCU pour le lance-roquettes contrôlé par Alexa
- Configurer Alexa avec l'application Android Alexa
- Lanceur de roquettes contrôlé par Alexa - Test
À l'approche de la saison d'hiver; vient cette période de l'année où la fête des lumières est célébrée. Oui, nous parlons de Diwali qui est un véritable festival indien célébré à travers le monde. Cette année, Diwali est déjà terminée, et en voyant des pétards, j'ai eu l'idée de construire le lance-roquettes à commande vocale ou Igniter basé sur Alexa, qui peut lancer des fusées avec une simple commande vocale, ce qui le rend très sûr et amusant pour les enfants.
Pour être clair, je ne suis pas ici pour encourager les gens à tirer des crackers sur Diwali, le gouvernement indien a imposé des restrictions sur les crackers pour réduire la pollution et il est de notre responsabilité d'y adhérer. L'idée ici est qu'au lieu de passer toute la journée à tirer des crackers, construisons un allumeur de fusée Arduino à commande vocale cool et tirons quelques roquettes avec style. Je vois cela comme un gagnant-gagnant.
Ce lance-roquettes Arduino sera très différent des autres. Il a un châssis très robuste en contreplaqué, un mécanisme de contrôle fiable basé sur un relais et un mécanisme tout à fait unique pour lancer et recharger les fusées, donc sans plus tarder, passons directement au processus de construction.
Lanceur de roquettes à commande vocale basé sur Alexa - Fonctionnement
Le mécanisme de fonctionnement du circuit est très simple, le principal composant qui est responsable du lancement de la fusée est le fil nichrome, et il se présente sous la forme d'une bobine chauffante. Ce fil nichrome agira comme allumeur de fusée. Comment? Je vous montrerai plus tard.
Comme vous pouvez le voir sur l'image ci-dessus, le fil nichrome se présente sous la forme d'une bobine de chauffage, pour moi, c'était le moyen le plus simple de l'obtenir. Nous devons le tirer droit et le plier pour former une forme qui ressemble à celle illustrée dans l'image ci-dessous.
Une fois que nous avons fait cela, nous l'alimenterons avec une batterie au plomb de 12 V et il deviendra rouge vif. Ce sera suffisant pour enflammer la poudre noire à l'intérieur de la fusée et cela fonctionnera comme une dose de fusible normale. Sachez qu'il s'agit d'un contrôleur de lancement de fusée haute puissance, le courant nécessaire pour rendre le fil rouge chaud est élevé. Suivez les conseils de sécurité lorsque vous travaillez avec des courants élevés.
Une fois le test terminé, la seule chose qui reste est le processus de contrôle, que nous ferons au fur et à mesure que nous avancerons dans l'article.
Launchpad pour notre contrôleur de lancement de fusée NodeMCU
Pour cette version, créons un tableau de bord. Une fois le tableau de bord terminé, nous pouvons facilement recharger certains crackers et les lancer très facilement. J'ai construit un tableau de bord qui ressemble à celui montré dans l'image ci-dessous.
Passons en revue le processus étape par étape de création du tableau de bord. Pour les deux côtés du cadre, j'ai utilisé deux morceaux de contreplaqué de 25 x 3 x 1,5 pouces de long. Pour la partie supérieure, j'ai utilisé une partie de contreplaqué de 20 x 3 x 1,5 pouces de long et pour la base, j'ai utilisé un morceau de contreplaqué de 20 x 6 x 1,5 pouces de long, ce qui lui donnera un peu plus de stabilité. L'image ci-dessous vous donnera une idée claire.
Il est maintenant temps de fabriquer les filaments à base de fil nichrome, qui serviront de fusible pour notre fusée. Pour cela, j'ai acheté un serpentin chauffant à base de fil nichrome de 1000W, je l'ai redressé et j'ai fabriqué la structure illustrée ci-dessous. J'ai dû utiliser deux pinces et des pinces coupantes latérales pour façonner le fil nichrome comme indiqué ci-dessous.
Une fois que cela a été fait, j'ai divisé le morceau de 20 pouces de bloc de contreplaqué en sept morceaux, je l'ai mesuré et j'ai percé des trous pour y placer les filaments à base de fil nichrome, et une fois cela fait, cela ressemblait aux images ci-dessous.
Mais avant de placer les filaments, j'ai attaché un fil de cuivre de 1 mm d'épaisseur dans chaque borne et les ai passés à travers les trous, une fois que tout était fait, cela ressemblait à l'image ci-dessous.
Comme vous pouvez le voir, j'ai également mis en place l'adhésif à deux composants pour fixer le fil et les filaments en place. Cela fait, notre tableau de bord est terminé. Et comme vous pouvez le voir sur la première photo de cette section, j'ai directement attaché les fils de filament au PCB car nous avons affaire à des courants très élevés donc je n'ai pas pris la peine de placer une borne à vis, et cela marque la fin de notre châssis processus de construction.
Composants requis pour le lance-roquettes contrôlé par Alexa
Pour le côté matériel, nous avons utilisé des pièces très génériques que vous pouvez obtenir assez facilement auprès de votre magasin de bricolage local, une liste complète des articles est donnée ci-dessous.
- Relais 12V - 3
- Transistor BD139 - 3
- Diode 1N4004 - 3
- Borne à vis de 5,08 mm - 1
- LM7805 - Régulateur de tension - 1
- Condensateur de découplage 100uF - 2
- Diode Zener 5.1V - 1
- Carte NodeMCU (ESP8266-12E) - 1
- Planche à pois Perf - ½
- Câble de connexion - 10
Schéma du circuit du lance-roquettes Arduino
Le schéma complet du lanceur de fusée contrôlé par Alexa est donné ci-dessous. J'ai utilisé des balises pour connecter une broche à une autre. Si vous regardez suffisamment près, il ne devrait pas être difficile d'interpréter le schéma.
La construction du circuit est assez simple, donc je n'entrerai pas beaucoup dans les détails.
Tout d'abord, nous avons IC1 qui est un régulateur de tension LM7805, avec ses condensateurs de découplage de 100 uF désignés par C1 et C2. Après cela, nous avons le cœur de notre projet, la carte NodeMCU, qui abrite le module ESP-12E. Étant donné que nous utilisons une batterie plomb-acide de 12 V pour alimenter l'ensemble du circuit, c'est pourquoi nous devons d'abord utiliser le LM7805 pour le convertir en 12 V en 5 V pour alimenter la carte NodeMCU. Nous le faisons parce que le régulateur de tension AMS1117 embarqué n'est pas suffisant pour convertir directement 12V en 3,3V, c'est pourquoi le 7805 est nécessaire.
Passant, nous avons trois relais 12V, pour cette démonstration, nous utilisons trois relais, mais comme nous l'avons mentionné précédemment, le tableau de bord a un espace réservé pour 7 fusées. Vous pouvez modifier un peu le code et placer les sept fusées à lancer ensemble. Les trois relais sont pilotés par un T1, T2 et T3 qui sont trois transistors NPN, et ils sont suffisants pour piloter la charge d'un réel. Enfin, nous avons trois diodes de roue libre qui protègent le circuit des pointes de haute tension générées par le relais.
Construire le circuit sur PerfBoard
Comme vous pouvez le voir sur l'image principale, l'idée était de créer un circuit simple capable de gérer une énorme quantité de courant pendant une courte période, selon nos tests, 800 millisecondes suffisent pour éclairer un morceau de papier. Ainsi, nous construisons le circuit sur un morceau de perfboard et connectons toutes les connexions principales avec un fil de cuivre de 1 mm d'épaisseur. Après avoir fini de souder la carte. Une fois que nous avons terminé, cela ressemblait à quelque chose qui est montré ci-dessous.
Programmation NodeMCU pour le lance-roquettes contrôlé par Alexa
Maintenant que le matériel est prêt, il est temps de commencer à coder pour notre lance-roquettes à commande vocale basé sur Alexa. Le code complet se trouve à la fin de cette page, mais avant de commencer, il est important d'ajouter les bibliothèques requises à votre IDE Arduino. Assurez-vous d'ajouter les bonnes bibliothèques à partir du lien donné ci-dessous, sinon le code générera des erreurs lors de la compilation.
- Télécharger la bibliothèque Espalexa
Après avoir ajouté les bibliothèques requises, vous pouvez directement télécharger le code donné en bas de cette page pour vérifier si le circuit fonctionne. Si vous voulez savoir comment fonctionne le code, continuez à lire.
Comme toujours, nous commençons le programme en ajoutant les fichiers d'en-tête requis et en définissant les noms de broches et les informations d'identification de notre hotspot.
#comprendre
En poursuivant notre code, nous avons nos prototypes de fonctions et nos définitions de fonctions de rappel.
La fonction connectToWiFi () est utilisée pour se connecter au réseau Wi-Fi et cette fonction retourne true lorsque le Wi-Fi est connecté avec succès.
Ensuite, nous avons nos fonctions de rappel , ces fonctions seront appelées lorsque nous donnerons une commande à Alexa, l'API espalexa gère ces fonctions
void allrockets (luminosité uint8_t); void firstrocket (luminosité uint8_t); void secondrocket (luminosité uint8_t); void thirdrocket (luminosité uint8_t);
Ensuite, nous définissons les noms de périphériques. Ces noms d'appareils définis seront reflétés sur l'application Alexa et lorsque nous prononçons une commande, Alexa reconnaîtra les appareils par ces noms. Donc, ces noms sont très importants.
// Noms des périphériques String First_Device_Name = "All Rockets"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Rocket Three";
Ensuite, nous définissons une variable booléenne wifiStatus, qui contiendra l'état de la connexion du Wi-Fi. Enfin, nous créons un objet Espalexa espalexa. Nous utiliserons cet objet pour configurer le NodeMCU.
// vérification de l'état du wifi booléen wifiStatus = false; // Objet Espalexa Espalexa espalexa;
Ensuite, nous avons notre section void setup () . Dans cette section, nous initialisons la communication série pour le débogage avec la fonction Serial.begin () . Nous définissons toutes les broches définies précédemment comme sortie avec la fonction pinMode () , ensuite nous appelons la fonction connectToWiFi () , il essaiera de se connecter au Wi-Fi pendant quinze fois s'il est connecté, il retournera vrai s'il ne le fait pas connectez-vous, il retournera false et le code exécutera une boucle while () pour toujours. Si la connexion Wi-Fi réussit, nous ajoutons les appareils précédemment définis à l'objet Alexa en utilisant la fonction espalexa.addDevice () Cette fonction prend deux arguments, le premier est le nom de l' appareil, le deuxième est le nom de la fonction de rappel, lorsque nous émettons une commande à Alexa, la fonction adjacente sera appelée. Une fois que nous avons fini de le faire pour nos quatre appareils, nous appelons les méthodes begin () pour l'objet espalexa.
void setup () {Serial.begin (115200); // Activer Serial pour le débogage des messages pinMode (ROCKET_1_PIN, OUTPUT); // configuration des broches ESP comme sortie pinMode (ROCKET_2_PIN, OUTPUT); // configuration des broches ESP comme sortie pinMode (ROCKET_3_PIN, OUTPUT); // configuration des broches ESP comme sortie wifiStatus = connectToWiFi (); // Connectez-vous au réseau Wi-Fi local si (wifiStatus) {// configurez tous les appareils espalexa // Définissez vos appareils ici. espalexa.addDevice (First_Device_Name, allrockets); // définition la plus simple, état par défaut désactivé espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Serial. println ("Impossible de se connecter au WiFi. Veuillez vérifier les données et réinitialiser l'ESP."); retard (2500); }}}
Dans la section loop , nous appelons la méthode loop () de l'objet espalexa qui vérifie toujours toute commande entrante et appelle la fonction de rappel si elle la trouve vraie.
boucle vide () {espalexa.loop (); retard (1); }
Ensuite, nous définissons toutes nos fonctions de rappel, dans cette section, nous définirons ce qui se passe lorsque cette fonction de rappel est appelée. Lorsque la fonction allrockets () est appelée, toutes les fusées vont être lancées ensemble. Pour cela, nous allons activer le relais pendant 00 ms et après cela, nous allons désactiver les relais. Dans mes tests, j'ai constaté que pour la longueur de fil nichrome spécifiée, j'ai besoin de 800 ms de retard pour chauffer complètement le fil, cela peut ou non être le cas pour vous. Alors choisissez le délai en conséquence.
void allrockets (uint8_t luminosité) {if (luminosité == 255) {digitalWrite (ROCKET_1_PIN, HIGH); DigitalWrite (ROCKET_2_PIN, HIGH); DigitalWrite (ROCKET_3_PIN, HIGH); retard (800); DigitalWrite (ROCKET_1_PIN, LOW); DigitalWrite (ROCKET_2_PIN, LOW); DigitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Toutes les fusées lancées"); }}
Ensuite, nous avons notre première fusée (), elle est appelée lorsque nous appelons Alexa et disons la commande tie pour lancer la première fusée. Le processus est très similaire, nous allumons le relais pendant 800 ms et l'éteignons.
void firstrocket (uint8_t luminosité) {if (luminosité == 255) {digitalWrite (ROCKET_1_PIN, HIGH); retard (800); DigitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Première fusée lancée"); }}
Enfin, nous avons notre fonction connectToWiFi () . Cette fonction est assez générique et explicite, je n'entrerai donc pas dans les détails de cette fonction. Cette fonction connecte l'ESP au Wi-Fi et renvoie l'état de la connexion.
booléen connectToWiFi () {état booléen = vrai; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, mot de passe); Serial.println (""); Serial.println ("Connexion au WiFi"); // Attendre la connexion Serial.print ("Connecting…"); while (WiFi.status ()! = WL_CONNECTED) {délai (500); Serial.print ("."); si (i> 15) {état = faux; Pause; } i ++; } Serial.println (""); if (state) {Serial.print ("Connecté à"); Serial.println (ssid); Serial.print ("adresse IP:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("La connexion a échoué."); } état de retour; }
Cette fonction définie marque la fin de la partie codage.
Configurer Alexa avec l'application Android Alexa
Alexa n'acceptera les commandes que si et seulement si elle reconnaît l'appareil esp8866. Pour cela, nous devons configurer Alexa à l'aide de l'application Alexa sur Android. Une chose importante à faire avant de continuer est que nous devons nous assurer qu'Alexa est configuré avec notre application Android.
Pour ce faire, allez dans la section plus de l'application Alexa et cliquez sur l' option Ajouter un appareil, cliquez sur Lumière, puis faites défiler vers le bas en bas de la page et cliquez sur Autre.
Ensuite, cliquez sur DÉCOUVREZ L'APPAREIL et attendez un moment après qu'Alexa trouve de nouveaux appareils. Une fois qu'Alexa a trouvé les appareils, vous devez cliquer dessus et les ajouter à leurs emplacements / catégories respectifs, et vous avez terminé.
Lanceur de roquettes contrôlé par Alexa - Test
Pour le processus de test, je suis allé dans mon jardin, j'ai sorti tous les fusibles de la fusée, je les ai placés à leur place respective, et j'ai crié Alexa…! Allumez tous les Rockets, avec mes doigts croisés. Et toutes les roquettes ont volé en marquant mes efforts comme un énorme succès. Cela ressemblait à quelque chose comme ça.
Enfin, une fois de plus j'ai dit Alexa…! Allumez toutes les fusées pour obtenir une image épique des filaments que vous pouvez voir ci-dessous.
Pour une expérience plus épique, je vous recommande vivement de regarder la vidéo.