- Lansator de rachete controlat prin voce Alexa - Funcționează
- Launchpad pentru controlerul nostru de lansare cu rachete NodeMCU
- Componente necesare pentru lansatorul de rachete controlat de Alexa
- Diagrama circuitului Arduino Rocket Launcher
- Construirea circuitului pe PerfBoard
- Programare NodeMCU pentru lansator de rachete controlat de Alexa
- Configurarea Alexa cu aplicația Android pentru Alexa
- Lansator de rachete controlat Alexa - Testare
Pe măsură ce se apropie sezonul de iarnă; vine acea perioadă a anului când se sărbătorește festivalul luminilor. Da, vorbim despre Diwali, care este un adevărat festival indian sărbătorit pe tot globul. Anul acesta, Diwali s-a încheiat deja și, văzând oameni petarde, mi-a venit ideea de a construi lansatorul de rachete controlat prin voce Alexa sau Igniter, care poate lansa rachete doar cu comandă vocală, făcându-l foarte sigur și distractiv pentru copii.
Pentru a clarifica, nu sunt aici pentru a încuraja oamenii să tragă biscuiți pe Diwali, guvernul indian a impus restricții impuse biscuiților pentru a reduce poluarea și este responsabilitatea noastră să o respectăm. Ideea aici este că, în loc să petrecem întreaga zi trăgând biscuiți, să construim un aprindător de rachete Arduino controlat vocal și să tragem câteva rachete cu stil. Văd asta ca un câștig-câștig.
Acest lansator de rachete Arduino va fi foarte diferit de alții. Are un șasiu foarte robust din placaj, un mecanism de control fiabil pe bază de releu și un mecanism foarte unic pentru lansarea și reîncărcarea rachetelor, așa că, fără alte întârzieri, să intrăm direct în procesul de construcție.
Lansator de rachete controlat prin voce Alexa - Funcționează
Mecanismul de lucru al circuitului este foarte simplu, componenta principală care este responsabilă pentru lansarea rachetei este firul de nicrom și vine sub forma unei bobine de încălzire. Acest fir nichrom va acționa ca aprinsorul rachetei. Cum? Vă voi arăta mai târziu.
După cum puteți vedea în imaginea de mai sus, firul de nicrom vine sub forma unei bobine de încălzire, pentru mine a fost cel mai simplu mod de a-l obține. Trebuie să-l tragem drept și să-l îndoim pentru a forma o formă care arată așa cum se arată în imaginea de mai jos.
Odată ce am făcut acest lucru, îl vom alimenta cu o baterie de 12V plumb-acid și va străluci roșu. Acest lucru va fi suficient pentru a aprinde pulberea neagră din interiorul rachetei și va funcționa la fel ca o doză normală de siguranță. Rețineți că acesta este un controler de lansare a rachetelor de mare putere, curentul necesar pentru ca firul să fie aprins este mare. Respectați sfaturile de siguranță atunci când lucrați cu curenți mari.
Odată ce testarea este finalizată, singurul lucru care rămâne este procesul de control, pe care îl vom face pe măsură ce vom continua în articol.
Launchpad pentru controlerul nostru de lansare cu rachete NodeMCU
Pentru această versiune, să facem un launchpad. Odată cu lansarea terminată, putem reîncărca cu ușurință unele crackere și le putem lansa foarte ușor. Am construit un launchpad care seamănă cu cel prezentat în imaginea de mai jos.
Să parcurgem procesul pas cu pas al construirii lansării. Pentru cele două laturi ale cadrului, am folosit două bucăți de placaj (25X3X1.5) inch lung. Pentru partea de sus, am folosit o parte de placaj (20X3X1.5) inch lungime, iar pentru bază, am folosit o bucată de placaj lungă (20X6X1.5) inch, care îi va oferi un pic mai multă stabilitate. Imaginea de mai jos vă va oferi o idee clară.
Acum, este timpul să facem filamente pe bază de sârmă de nicrom, care vor acționa ca o siguranță pentru racheta noastră. Pentru aceasta, am cumpărat o bobină de încălzire cu bază de sârmă de nichrom de 1000 W, am îndreptat-o și am făcut structura care este prezentată mai jos. A trebuit să folosesc două clești și tăietori laterali pentru a modela firul de nicrom așa cum se arată mai jos.
Odată ce s-a făcut acest lucru, am împărțit bucata de 20 ”din bloc de placaj în șapte bucăți, am măsurat-o și am făcut găuri pentru a pune filamentele pe bază de sârmă de nichrom și, odată ce a fost făcut, arăta ca imaginile de mai jos.
Dar, înainte de a plasa filamentele, am atașat o sârmă de cupru de 1 mm grosime în fiecare terminal și le-am trecut prin găuri, odată ce totul a fost făcut, arăta ca imaginea de mai jos.
După cum puteți vedea, am pus și adezivul bicomponent pentru a fixa firul și filamentele la locul lor. Odată făcut acest lucru, lansatorul nostru este complet. Și, după cum puteți vedea din prima imagine din această secțiune, am atașat direct firele de filament la PCB, deoarece avem de-a face cu curenți foarte mari, așa că nu m-am deranjat să pun un terminal cu șurub și asta marchează sfârșitul șasiului nostru procesul de construire.
Componente necesare pentru lansatorul de rachete controlat de Alexa
Pentru partea hardware a lucrurilor, am folosit piese foarte generice pe care le puteți obține destul de ușor de la magazinul dvs. local de hobby-uri, o listă completă de articole este prezentată mai jos.
- Releu 12V - 3
- BD139 Tranzistor - 3
- 1N4004 Diodă - 3
- Borna cu șurub de 5,08 mm - 1
- LM7805 - Regulator de tensiune - 1
- Condensator de decuplare 100uF - 2
- Diodă Zener 5.1V - 1
- Placă NodeMCU (ESP8266-12E) - 1
- Dotted Perf Board - ½
- Conectarea firului - 10
Diagrama circuitului Arduino Rocket Launcher
Schema completă pentru lansatorul de rachete controlat de Alexa este prezentată mai jos. Am folosit etichete pentru a conecta un pin la altul. Dacă arăți suficient de aproape, nu ar trebui să fie dificil să interpretezi schema.
Construcția circuitului este destul de simplă, așa că nu voi intra în detalii prea mult.
În primul rând, avem IC1, care este un regulator de tensiune LM7805, cu condensatorii săi de decuplare 100uF notați cu C1 și C2. După aceea, avem inima proiectului nostru, placa NodeMCU, care găzduiește modulul ESP-12E. Deoarece folosim o baterie plumb-acid de 12V pentru a alimenta întregul circuit, motiv pentru care trebuie să folosim LM7805 pentru a-l converti mai întâi la 12V la 5V pentru a alimenta placa NodeMCU. O facem deoarece regulatorul de tensiune AMS1117 de la bord nu este suficient pentru a converti 12V direct la 3,3V, motiv pentru care este necesar 7805.
Mai departe, avem trei relee de 12V, pentru această demonstrație, folosim trei relee, dar după cum am menționat anterior, lansatorul are un substituent pentru 7 rachete. Puteți modifica codul puțin și puteți plasa toate cele șapte rachete pentru a lansa complet. Cele trei relee sunt acționate de un T1, T2 și T3 care sunt trei tranzistoare NPN și sunt suficient de suficiente pentru a conduce sarcina unui real. În cele din urmă, avem trei diode cu roată liberă care protejează circuitul de vârfuri de înaltă tensiune generate de releu.
Construirea circuitului pe PerfBoard
După cum puteți vedea din imaginea principală, ideea a fost să realizăm un circuit simplu care să poată gestiona o cantitate uriașă de curent pentru o perioadă scurtă de timp, conform testelor noastre, 800 de milisecunde sunt suficiente pentru a lumina o bucată de hârtie. Deci, construim circuitul pe o bucată de perfboard și conectăm toate conexiunile majore cu sârmă de cupru de 1 mm grosime. După ce am terminat de lipit placa. După ce am terminat, părea ceva care este prezentat mai jos.
Programare NodeMCU pentru lansator de rachete controlat de Alexa
Acum, când hardware-ul este gata, este timpul să începem codificarea pentru lansatorul de rachete controlat prin voce bazat pe Alexa. Codul complet poate fi găsit la sfârșitul acestei pagini, dar înainte de a începe, este important să adăugați bibliotecile necesare la ID-ul dvs. Arduino. Asigurați-vă că adăugați bibliotecile potrivite din linkul dat mai jos, altfel codul va arunca erori atunci când este compilat.
- Descărcați Biblioteca Espalexa
După adăugarea bibliotecilor necesare, puteți încărca direct codul dat în partea de jos a acestei pagini pentru a verifica dacă circuitul funcționează. Dacă doriți să știți cum funcționează codul, continuați să citiți.
Ca întotdeauna, începem programul adăugând fișierele antet necesare și definind numele PIN-urilor și acreditările pentru hotspot-ul nostru.
#include
Continuând cu codul nostru, avem prototipurile funcției și definițiile funcției de apel invers.
Funcția connectToWiFi () este utilizată pentru a vă conecta la rețeaua Wi-Fi, iar această funcție revine atunci când Wi-Fi se conectează cu succes.
Apoi, avem funcțiile noastre de apel invers , aceste funcții vor fi apelate când dăm o comandă lui Alexa, API-ul espalexa gestionează aceste funcții.
nul allrockets (uint8_t luminozitate); void firstrocket (luminozitate uint8_t); void secondrocket (luminozitate uint8_t); void thirdrocket (luminozitate uint8_t);
Apoi, definim numele dispozitivelor. Aceste nume de dispozitive definite vor fi reflectate în aplicația Alexa și atunci când spunem o comandă, Alexa va recunoaște dispozitivele după aceste nume. Deci, aceste nume sunt foarte importante.
// Nume dispozitiv String First_Device_Name = "Toate rachetele"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Rocket Three";
Apoi, definim o variabilă booleană wifiStatus, care va deține starea conexiunii Wi-Fi. În cele din urmă, creăm un obiect Espalexa espalexa. Vom folosi acest obiect pentru a configura NodeMCU.
// verificarea stării wifi boolean wifiStatus = false; // Obiect Espalexa Espalexa espalexa;
Apoi, avem secțiunea noastră de configurare nulă () . În această secțiune, inițializăm comunicarea serială pentru depanare cu funcția Serial.begin () . Setăm toți pinii definiți anterior ca ieșire cu funcția pinMode () , apoi apelăm funcția connectToWiFi () , va încerca să se conecteze la Wi-Fi de cincisprezece ori dacă este conectat, va reveni adevărat dacă nu conectați-vă, acesta va reveni fals și codul va executa o buclă while () pentru totdeauna. Dacă conexiunea Wi-Fi reușește, adăugăm dispozitivele definite anterior la obiectul Alexa utilizând funcția espalexa.addDevice (). Această funcție acceptă două argumente, primul este numele dispozitivului, al doilea este numele funcției de apel invers, când vom lansa o comandă către Alexa, va fi apelată funcția adiacentă. Odată ce am terminat să o facem pentru toate cele patru dispozitive, numim metodele begin () pentru obiectul espalexa.
void setup () {Serial.begin (115200); // Activați Serial pentru depanarea mesajelor pinMode (ROCKET_1_PIN, OUTPUT); // configurați pinii ESP ca ieșire pinMode (ROCKET_2_PIN, OUTPUT); // configurați pinii ESP ca ieșire pinMode (ROCKET_3_PIN, OUTPUT); // configurați pinii ESP ca ieșire wifiStatus = connectToWiFi (); // Conectați-vă la rețeaua Wi-Fi locală dacă (wifiStatus) {// configurați toate dispozitivele espalexa // Definiți dispozitivele aici. espalexa.addDevice (First_Device_Name, allrockets); // cea mai simplă definiție, starea implicită este dezactivată 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 ("Nu se poate conecta la WiFi. Vă rugăm să verificați datele și să resetați ESP."); întârziere (2500); }}}
În secțiunea buclă , numim metoda loop () a obiectului espalexa care va verifica întotdeauna orice comandă primită și va apela funcția de apel invers dacă o găsește adevărată.
void loop () {espalexa.loop (); întârziere (1); }
Apoi, definim toate funcțiile noastre de apel invers, în această secțiune, vom defini ce se întâmplă atunci când este apelată această funcție de apel invers. Când se apelează funcția allrockets () , toate rachetele vor fi lansate împreună. Pentru aceasta, vom porni releul pentru 00 ms și după aceea, vom opri releele. În testele mele, am constatat că, pentru lungimea specificată a firului nichrom, am nevoie de 800 ms de întârziere pentru a încălzi complet firul, acest lucru poate fi sau nu cazul pentru dvs. Așa că alegeți întârzierea în consecință.
nul allrockets (uint8_t luminozitate) {if (luminozitate == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); întârziere (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println („Toate rachetele lansate”); }}
Apoi, avem prima noastră rachetă (), aceasta este apelată când apelăm Alexa și spunem comanda tie pentru a lansa prima rachetă. Procesul este foarte asemănător, pornim releul pentru 800 ms și îl oprim.
void firstrocket (uint8_t luminozitate) {if (luminozitate == 255) {digitalWrite (ROCKET_1_PIN, HIGH); întârziere (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println („Prima rachetă lansată”); }}
În cele din urmă, avem funcția noastră connectToWiFi () . Această funcție este destul de generică și se explică de la sine, așa că nu voi intra în detaliile despre această funcție. Această funcție conectează ESP la Wi-Fi și returnează starea conexiunii.
boolean connectToWiFi () {stare booleană = adevărat; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, parolă); Serial.println (""); Serial.println („Conectarea la WiFi”); // Așteptați conexiunea Serial.print ("Conectarea…"); while (WiFi.status ()! = WL_CONNECTED) {întârziere (500); Serial.print ("."); if (i> 15) {state = false; pauză; } i ++; } Serial.println (""); if (state) {Serial.print ("Conectat la"); Serial.println (ssid); Serial.print („Adresă IP:”); Serial.println (WiFi.localIP ()); } else {Serial.println ("Conexiunea a eșuat."); } stare de returnare; }
Această funcție definită marchează sfârșitul părții de codare.
Configurarea Alexa cu aplicația Android pentru Alexa
Alexa va accepta comenzi numai dacă și numai dacă recunoaște dispozitivul esp8866. Pentru asta, trebuie să configurăm Alexa cu ajutorul aplicației Alexa de pe Android. Un lucru important de făcut înainte de a continua este că trebuie să ne asigurăm că Alexa este configurat cu aplicația noastră pentru Android.
Pentru a face acest lucru, accesați secțiunea mai mult a aplicației Alexa și faceți clic pe opțiunea Adăugați un dispozitiv, faceți clic pe Light, apoi derulați în jos în partea de jos a paginii și faceți clic pe Altele.
Apoi, faceți clic pe DISCOVER DEVICE și așteptați un moment după ce Alexa va găsi dispozitive noi. Odată ce Alexa găsește dispozitivele, trebuie să faceți clic pe ele și să le adăugați la locurile / categoriile lor respective și ați terminat.
Lansator de rachete controlat Alexa - Testare
Pentru procesul de testare, m-am dus în grădina mea, am scos toate siguranțele din rachetă, le-am așezat în locurile lor respective și am strigat Alexa…! Porniți toate Rachetele, cu degetele încrucișate. Și toate rachetele au zburat marcându-mi eforturile ca fiind un succes uriaș. Arăta cam așa.
În sfârșit, încă o dată am spus Alexa…! Porniți toate rachetele pentru a obține o imagine epică a filamentelor pe care le puteți vedea mai jos.
Pentru o experiență mai epică, vă recomand să vizionați videoclipul.