- Llançador de coets controlat per veu basat en Alexa: funciona
- Launchpad per al nostre controlador de llançament de coets NodeMCU
- Components necessaris per al llançador de coets controlat per Alexa
- Diagrama del circuit del llançador de coets Arduino
- Construint el circuit a PerfBoard
- Programació de NodeMCU per al llançador de coets controlat per Alexa
- Configuració d'Alexa amb l'aplicació d'Android d'Alexa
- Llançador de coets controlat per Alexa: proves
Quan s’acosta la temporada d’hivern; arriba aquella època de l'any en què se celebra la festa de les llums. Sí, parlem de Diwali, que és un veritable festival indi celebrat a tot el món. Aquest any, Diwali ja s’ha acabat i veient petards a la gent, se m’acut la idea de construir el llançador de coets controlat per veu o Igniter, basat en Alexa, que pugui llançar coets amb només un ordre de veu, cosa que el fa molt segur i divertit per als nens.
Per deixar-ho clar, no estic aquí per animar la gent a disparar crackers a Diwali, el govern indi ha imposat restriccions als crackers per frenar la contaminació i és la nostra responsabilitat adherir-nos-hi. La idea aquí és que, en lloc de passar tot el dia disparant crackers, construïm un encenedor de coets Arduino controlat per veu i disparem uns coets amb estil. Ho veig com un guanyar-guanyar.
Aquest llançador de coets Arduino serà molt diferent dels altres. Té un xassís molt robust de fusta contraxapada, un mecanisme de control fiable basat en relés i un mecanisme molt únic per llançar i recarregar els coets, de manera que, sense més demora, entrem directament en el procés de construcció.

Llançador de coets controlat per veu basat en Alexa: funciona
El mecanisme de funcionament del circuit és molt senzill, el component principal que s’encarrega de llançar el coet és el fil nichrome i es presenta en forma de bobina de calefacció. Aquest fil nichrome actuarà com a encenedor de coets. Com? Us ho mostraré més endavant.

Com podeu veure a la imatge superior, el filferro de nichrome es presenta en forma de serpentí d’escalfament, per a mi va ser la manera més senzilla d’aconseguir-lo. Hem de tirar-lo recte i doblegar-lo per formar una forma que sembli com es mostra a la imatge següent.

Un cop ho hàgim fet, l’alimentarem amb una bateria de plom àcid de 12V i quedarà brillant en vermell. N’hi haurà prou per encendre la pols negra a l’interior del coet i funcionarà com una dosi normal de fusible. Tingueu en compte que es tracta d’un controlador de llançament de coets d’alta potència, el corrent necessari per fer que el fil vermell sigui alt és elevat. Seguiu els consells de seguretat quan treballeu amb corrents elevats.

Un cop feta la prova, l'únic que queda és el procés de control, que anirem fent a mesura que avancem a l'article.
Launchpad per al nostre controlador de llançament de coets NodeMCU
Per a aquesta versió, fem un llançador. Un cop fet el llançador de llançament, podem tornar a carregar alguns crackers i llançar-los amb molta facilitat. He construït una plataforma de llançament que s'assembla a la que es mostra a la imatge que es mostra a continuació.

Anem a fer el pas a pas del procés de construcció de la plataforma de llançament. Per als dos costats del marc, he utilitzat dos trossos de fusta contraxapada de 25x3x1,5 polzades de llarg. Per a la part superior, he utilitzat una part de fusta contraxapada (20X3X1,5) de polzada de llarg i per a la base, he utilitzat una fusta de fusta contraxapada de (20X6X1,5) de polzada de llarg, cosa que li donarà una mica més d’estabilitat. La imatge següent us donarà una idea clara.

Ara és el moment de fabricar els filaments basats en filferro de nicrom, que actuaran com a fusible per al nostre coet. Per a això, he comprat una bobina de calefacció de base de filferro de nicrom de 1000W, l’he redreçat i he fet l’estructura que es mostra a continuació. Vaig haver d’utilitzar dues alicates i talladores laterals per donar forma al fil de nichrome com es mostra a continuació.

Un cop fet això, vaig dividir el tros de 20 "de fusta contraxapada en set trossos que el vaig mesurar i vaig fer forats per posar els filaments basats en filferro de nichrome i, un cop fet, semblaven les imatges següents.

Abans de col·locar els filaments, he connectat filferro de coure de 1 mm de gruix a cada terminal i els he passat pels forats, un cop fet tot, semblava la imatge de sota.

Com podeu veure, també he posat l’adhesiu de dos components per fixar el fil i els filaments al seu lloc. Fet això, la nostra plataforma de llançament s'ha completat. I, com podeu veure a la primera imatge d’aquesta secció, he connectat directament els cables del filament a la PCB perquè estem davant de corrents molt elevats, de manera que no em vaig molestar a col·locar un terminal de cargol i això marca el final del nostre xassís. procés de construcció.

Components necessaris per al llançador de coets controlat per Alexa
Pel que fa al maquinari, hem utilitzat peces molt genèriques que podeu obtenir amb molta facilitat des de la vostra botiga local d’aficionats; a continuació es mostra una llista completa d’elements.
- Relé 12V - 3
- Transistor BD139 - 3
- 1N4004 díode - 3
- Terminal de cargol de 5,08 mm - 1
- LM7805 - Regulador de tensió - 1
- Condensador de desacoblament 100uF - 2
- Diode Zener de 5,1 V - 1
- Taula NodeMCU (ESP8266-12E): 1
- Tauler de perfils amb punts - ½
- Connexió de filferro - 10
Diagrama del circuit del llançador de coets Arduino
A continuació es mostra l’esquema complet del llançador de coets controlat per Alexa. He utilitzat etiquetes per connectar un pin a un altre. Si us veieu prou a prop, no hauria de ser difícil interpretar l’esquema.

La construcció del circuit és bastant senzilla, de manera que no aprofundiré en els detalls.
En primer lloc, tenim IC1, que és un regulador de voltatge LM7805, amb els seus condensadors de desacoblament de 100uF denotats per C1 i C2. Després d’això, tenim el cor del nostre projecte, la placa NodeMCU, que allotja el mòdul ESP-12E. Com que utilitzem una bateria de plom àcid de 12V per alimentar tot el circuit, és per això que hem d’utilitzar el LM7805 per convertir-lo primer a 12V a 5V per alimentar la placa NodeMCU. Ho estem fent perquè el regulador de voltatge AMS1117 incorporat no és suficient per convertir 12V directament a 3,3V, motiu pel qual és necessari el 7805.
Seguint, tenim tres relés de 12V, per a aquesta demostració estem utilitzant tres relés, però, com hem esmentat anteriorment, el llançador té un marcador de posició per a 7 coets. Podeu modificar una mica el codi i col·locar els set coets per llançar-los completament. Els tres relés estan impulsats per un T1, T2 i T3, que són tres transistors NPN, i són prou suficients per conduir la càrrega d’un real. Finalment, tenim tres díodes de roda lliure que protegeixen el circuit dels pics d’alta tensió generats pel relé.
Construint el circuit a PerfBoard
Com es pot veure a la imatge principal, la idea era fer un circuit senzill que pogués suportar una gran quantitat de corrent durant un curt període de temps, ja que segons les nostres proves, n’hi ha prou amb 800 mil·lisegons per il·luminar un tros de paper. Per tant, construïm el circuit sobre una peça de perfboard i connectem totes les connexions principals amb fil de coure de 1 mm de gruix. Després d’acabar de soldar el tauler. Un cop vam acabar, semblava una cosa que es mostra a continuació.

Programació de NodeMCU per al llançador de coets controlat per Alexa
Ara que el maquinari està a punt, és hora de començar a codificar el nostre llançador de coets controlat per veu basat en Alexa. El codi complet es pot trobar al final d’aquesta pàgina, però abans de començar, és important afegir les biblioteques necessàries al vostre IDE Arduino. Assegureu-vos d’afegir les biblioteques adequades des de l’enllaç que es mostra a continuació; en cas contrari, el codi generarà errors.
- Descarrega la Biblioteca Espalexa
Després d'afegir les biblioteques necessàries, podeu penjar directament el codi que es dóna a la part inferior d'aquesta pàgina per comprovar si el circuit funciona. Si voleu saber com funciona el codi, continueu llegint.
Com sempre, comencem el programa afegint els fitxers de capçalera necessaris i definint els noms de pin i les credencials del nostre punt d'accés.
#incloure
Seguint amb el nostre codi, tenim els nostres prototips de funcions i definicions de funció de devolució de trucada.
Funció connectToWiFi () s’utilitza per connectar-se a la xarxa Wi-Fi i aquesta funció es torna veritable quan es connecta correctament la Wi-Fi.
A continuació, tenim les nostres funcions de devolució de trucada , aquestes funcions es criden quan donem una ordre a Alexa, l'API espalexa gestiona aquestes funcions
buit allrockets (uint8_t brillantor); void firstrocket (brillantor uint8_t); void secondrocket (brillantor uint8_t); void thirdrocket (brillantor uint8_t);
A continuació, definim els noms dels dispositius. Aquests noms de dispositius definits es reflectiran a l'aplicació Alexa i, quan diem una ordre, Alexa reconeixerà els dispositius amb aquests noms. Per tant, aquests noms són molt importants.
// Noms del dispositiu String First_Device_Name = "Tots els coets"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Coet dos"; String Forth_Device_Name = "Coet tres";
A continuació, definim una variable booleana wifiStatus, que mantindrà l'estat de connexió del Wi-Fi. Finalment, creem un objecte Espalexa espalexa. Utilitzarem aquest objecte per configurar el NodeMCU.
// comprovació de l'estat del wifi wifiStatus booleà = fals; // Espalexa Object Espalexa espalexa;
A continuació, tenim la secció void setup () . En aquesta secció, inicialitzem la comunicació en sèrie per a la depuració amb la funció Serial.begin () . Establim tots els pins definits anteriorment com a sortida amb la funció pinMode () , a continuació anomenem la funció connectToWiFi () , intentarà connectar-se a Wi-Fi quinze vegades si està connectat, tornarà cert si no ho fa connecteu-vos, tornarà fals i el codi executarà un bucle while () per sempre. Si la connexió Wi-Fi té èxit, afegim els dispositius definits prèviament a l’objecte Alexa mitjançant la funció espalexa.addDevice (). Aquesta funció té dos arguments, el primer és el nom del dispositiu, el segon és el nom de la funció de devolució de trucada, quan posem una ordre a Alexa, es cridarà la funció adjacent. Un cop hem acabat de fer-ho per als quatre dispositius, anomenem mètodes begin () per a l'objecte espalexa.
configuració nul·la () {Serial.begin (115200); // Habiliteu la sèrie per depurar missatges pinMode (ROCKET_1_PIN, OUTPUT); // configureu els pins ESP com a pinMode de sortida (ROCKET_2_PIN, OUTPUT); // configureu els pins ESP com a pinMode de sortida (ROCKET_3_PIN, OUTPUT); // configureu els pins ESP com a sortida wifiStatus = connectToWiFi (); // Connecteu-vos a la xarxa Wi-Fi local si (wifiStatus) {// configureu tots els dispositius espalexa // Definiu els vostres dispositius aquí. espalexa.addDevice (First_Device_Name, allrockets); // definició més simple, estat per defecte desactivat espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Sèrie. println ("No es pot connectar a WiFi. Comproveu les dades i restableix l'ESP."); retard (2500); }}}
A la secció loop , anomenem el mètode loop () de l’objecte espalexa que sempre comprovarà si hi ha cap ordre entrant i cridarà la funció de devolució de trucada si la troba certa.
void loop () {espalexa.loop (); retard (1); }
A continuació, definim totes les nostres funcions de devolució de trucada, en aquesta secció definirem què passa quan es crida aquesta funció de devolució de trucada. Quan es crida la funció allrockets () , tots els coets es llançaran junts. Per a això, encendrem el relé durant 00 ms i, després, desactivarem els relés. En les meves proves, he comprovat que per a la longitud especificada del cable de nichrome, necessito 800 ms de retard per escalfar completament el cable, això pot ser o no el vostre cas. Escolliu el retard en conseqüència.
void allrockets (uint8_t brillantor) {if (brillantor == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); retard (800); digitalWrite (ROCKET_1_PIN, BAIX); digitalWrite (ROCKET_2_PIN, BAIX); digitalWrite (ROCKET_3_PIN, BAIX); Serial.println ("Tots els coets llançats"); }}
A continuació, tenim el nostre primer coet (), que es diu quan trucem a Alexa i diem ordre tie per llançar el primer coet. El procés és molt similar, encenem el relé durant 800 ms i el desactivem.
void firstrocket (uint8_t brillantor) {if (brillantor == 255) {digitalWrite (ROCKET_1_PIN, HIGH); retard (800); digitalWrite (ROCKET_1_PIN, BAIX); Serial.println ("Llançament del primer coet"); }}
Finalment, tenim la nostra funció connectToWiFi () . Aquesta funció és bastant genèrica i s'explica per si mateixa, de manera que no entraré en els detalls sobre aquesta funció. Aquesta funció connecta l'ESP a Wi-Fi i retorna l'estat de la connexió.
boolean connectToWiFi () {estat booleà = cert; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, contrasenya); Serial.println (""); Serial.println ("Connexió a WiFi"); // Espereu la connexió Serial.print ("Connectant…"); while (WiFi.status ()! = WL_CONNECTED) {demora (500); Serial.print ("."); if (i> 15) {state = false; trencar; } i ++; } Serial.println (""); if (state) {Serial.print ("Connectat a"); Serial.println (ssid); Serial.print ("adreça IP:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Error de connexió"); } estat de retorn; }
Aquesta funció definida marca el final de la part de codificació.
Configuració d'Alexa amb l'aplicació d'Android d'Alexa
Alexa només acceptarà ordres si només reconeix el dispositiu esp8866. Per a això, hem de configurar Alexa amb l'ajut de l'aplicació Alexa d'Android. Una cosa important que cal fer abans de continuar és que hem d’assegurar-nos que Alexa estigui configurat amb la nostra aplicació per a Android.
Per fer-ho, aneu a la secció més de l'aplicació Alexa i feu clic a l' opció Afegeix un dispositiu, feu clic a Llum i desplaceu-vos cap avall a la part inferior de la pàgina i feu clic a Altres.

A continuació, feu clic a DESCOBREIX EL DISPOSITIU i espereu un moment després que Alexa trobi nous dispositius. Un cop Alexa trobi els dispositius, haureu de fer-hi clic i afegir-los als seus llocs / categories respectius, i ja haurà acabat.

Llançador de coets controlat per Alexa: proves
Durant el procés de proves, vaig anar al meu jardí, vaig treure tots els fusibles del coet, els vaig col·locar als seus llocs respectius i vaig cridar Alexa…! Enceneu tots els coets, amb els dits creuats. I tots els coets van volar marcant els meus esforços com un gran èxit. Semblava una cosa així.

Finalment, una vegada més vaig dir Alexa…! Enceneu tots els coets per obtenir una imatge èpica dels filaments que podeu veure a continuació.

Per a una experiència més èpica, us recomano que mireu el vídeo.
