- Balss kontrolēta raķešu palaišanas ierīce, kuras pamatā ir Alexa - darbojas
- Launchpad mūsu NodeMCU raķešu palaišanas kontrolierim
- Komponenti, kas nepieciešami Alexa kontrolētajai raķešu palaišanas ierīcei
- Arduino raķešu palaišanas ierīces shēma
- Circuit veidošana uz PerfBoard
- NodeMCU programmēšana Alexa kontrolētajai raķešu palaišanas programmai
- Alexa konfigurēšana ar Alexa Android lietojumprogrammu
- Alexa kontrolētais raķešu palaidējs - pārbaude
Tuvojoties ziemas sezonai; nāk tajā gada laikā, kad tiek svinēti gaismas svētki. Jā, mēs runājam par Diwali, kas ir īsts Indijas festivāls, kas tiek svinēts visā pasaulē. Šogad Diwali jau ir beidzies, un, redzot cilvēku petardes, es nācu klajā ar ideju uzbūvēt Alexa balstītu balss vadāmu raķešu palaišanas ierīci vai aizdedzinātāju, kas var palaist raķetes tikai ar balss komandu, padarot to ļoti drošu un jautru bērniem.
Lai būtu skaidrs, es neesmu šeit, lai mudinātu cilvēkus apšaudīt krekerus Diwali, Indijas valdība ir ieviesusi krekeru ierobežojumus, lai ierobežotu piesārņojumu, un mūsu pienākums ir to ievērot. Ideja ir tāda, ka tā vietā, lai pavadītu visu dienu krekeru šaušanā, izveidosim foršu ar balsi vadāmu raķešu aizdedzinātāju Arduino un stilīgi izšausim dažas raķetes. Es to redzu kā abpusēji izdevīgu.
Šis raķešu palaidējs Arduino ļoti atšķirsies no citiem. Tam ir ļoti izturīga šasija, kas izgatavota no saplākšņa, uzticams vadības mehānisms, kas balstīts uz releju, un ļoti unikāls mehānisms raķešu palaišanai un pārkraušanai, tāpēc bez turpmākas kavēšanās ķersimies klāt tieši būvniecības procesam.
Balss kontrolēta raķešu palaišanas ierīce, kuras pamatā ir Alexa - darbojas
Kontūras darba mehānisms ir ļoti vienkāršs, galvenā sastāvdaļa, kas ir atbildīga par raķetes palaišanu, ir nihroma stieple, un tā ir apkures spoles formā. Šis nihromētais vads darbosies kā raķešu aizdedzinātājs. Kā? Es jums parādīšu vēlāk.
Kā redzat attēlā iepriekš, nihroma stieple ir sildītāja spoles formā, man tas bija vienkāršākais veids, kā to iegūt. Mums tas ir jāvelk taisni un saliekt, lai izveidotu formu, kas izskatās kā parādīts attēlā zemāk.
Kad tas būs izdarīts, mēs to darbināsim ar 12V svina-skābes akumulatoru, un tas spīdēs sarkanā krāsā. Tas būs pietiekami, lai raķetes iekšpusē aizdedzinātu melno pulveri, un tas darbosies tāpat kā parastā drošinātāja deva. Jāņem vērā, ka tas ir lieljaudas raķešu palaišanas kontrolieris, kura vajadzīga, lai vads kļūtu sarkans, ir liela. Ievērojiet drošības ieteikumus, strādājot ar lielu strāvu.
Kad testēšana ir pabeigta, paliek tikai kontrolējošais process, ko mēs darīsim, turpinot rakstu.
Launchpad mūsu NodeMCU raķešu palaišanas kontrolierim
Šim veidojumam izveidosim palaišanas paliktni. Kad palaišanas paliktnis ir izdarīts, mēs varam viegli ielādēt dažus krekerus un tos ļoti viegli palaist. Esmu izveidojis palaišanas paliktni, kas izskatās tā, kā parādīts zemāk redzamajā attēlā.
Apskatīsim palaišanas soli pa solim. Abām rāmja pusēm esmu izmantojis divus (25X3X1,5) collu garus saplākšņa gabalus. Augšējai daļai esmu izmantojis (20X3X1,5) collu garu saplākšņa daļu un pamatnei - (20X6X1,5) collu garu saplākšņa gabalu, kas tam piešķirs nedaudz lielāku stabilitāti. Zemāk esošais attēls sniegs jums skaidru priekšstatu.
Ir pienācis laiks izgatavot pavedienus uz nihroma stieples bāzes, kas darbosies kā mūsu raķetes drošinātājs. Šim nolūkam esmu nopircis 1000W nihroma stieples bāzes sildīšanas spoli, iztaisnojis to un izveidojis struktūru, kas parādīta zemāk. Lai noformētu nihroma stiepli, kā parādīts zemāk, man bija jāizmanto divas knaibles un sānu griezēji.
Kad tas bija izdarīts, es sadalīju 20 collu saplākšņa bloka gabalu septiņos gabalos, kas to izmērīja, un izurbu caurumus, lai ievietotu uz nihroma stieples balstītus pavedienus, un, kad tas bija izdarīts, tas izskatījās kā zemāk redzamie attēli.
Bet pirms pavedienu ievietošanas es katrā spailē esmu piestiprinājis 1 kv mm biezu vara stiepli un izlaidis tos caur caurumiem, kad viss tika izdarīts, tas izskatījās kā zemāk redzamais attēls.
Kā redzat, esmu arī ievietojis divkomponentu līmi, lai nostiprinātu vadu un pavedienus. Kad tas izdarīts, mūsu palaišanas paliktnis ir pabeigts. Un kā redzat no šīs sadaļas pirmā attēla, esmu tieši pievienojis kvēldiega vadus pie PCB, jo mums ir darīšana ar ļoti lielām strāvām, tāpēc es neuztraucos ievietot skrūves spaili, un tas iezīmē mūsu šasijas galu būvniecības process.
Komponenti, kas nepieciešami Alexa kontrolētajai raķešu palaišanas ierīcei
Aparatūras pusē mēs esam izmantojuši ļoti vispārīgas daļas, kuras jūs varat diezgan viegli iegūt no vietējā vaļasprieku veikala. Pilns priekšmetu saraksts ir norādīts zemāk.
- 12V relejs - 3
- BD139 tranzistors - 3
- 1N4004 Diode - 3
- 5,08 mm skrūvju terminālis - 1
- LM7805 - sprieguma regulators - 1
- 100uF kondensatora atvienošana - 2
- 5,1 V Zenera diode - 1
- NodeMCU (ESP8266-12E) padome - 1
- Punktota Perf Board - ½
- Savienojošais vads - 10
Arduino raķešu palaišanas ierīces shēma
Pilna Alexa kontrolētās raķešu palaišanas shēma ir sniegta zemāk. Esmu izmantojis tagus, lai savienotu vienu tapu ar citu. Ja paskatās pietiekami tuvu, nevajadzētu būt grūti interpretēt shēmu.
Circuit Construction ir diezgan vienkārša, tāpēc es neiedziļināšos detaļās.
Pirmkārt, mums ir IC1, kas ir LM7805 sprieguma regulators, ar tā 100uF atdalīšanas kondensatoriem, kurus apzīmē ar C1 un C2. Pēc tam mums ir mūsu projekta sirds - NodeMCU dēlis, kurā atrodas ESP-12E modulis. Tā kā mēs izmantojam 12V svina-skābes akumulatoru, lai darbinātu visu ķēdi, tāpēc mums ir jāizmanto LM7805, lai vispirms to pārveidotu par 12V līdz 5V, lai darbinātu NodeMCU plāksni. Mēs to darām, jo iebūvētais sprieguma regulators AMS1117 nav pietiekams, lai 12 V tieši pārveidotu par 3,3 V, tāpēc ir nepieciešams 7805.
Pārejot uz priekšu, mums ir trīs 12 V releji, šai demonstrācijai mēs izmantojam trīs relejus, taču, kā jau iepriekš minējām, starta panelī ir 7 raķešu vietturis. Jūs varat nedaudz pielabot kodu un novietot visas septiņas raķetes, lai tās palaistu pavisam. Trīs relejus vada T1, T2 un T3, kas ir trīs NPN tranzistori, un tie ir pietiekami, lai vadītu reālā slodzi. Visbeidzot, mums ir trīs brīvriteņa diodes, kas aizsargā ķēdi no releja radītajiem augstsprieguma tapām.
Circuit veidošana uz PerfBoard
Kā redzat no galvenā attēla, ideja bija izveidot vienkāršu shēmu, kas īsā laikā spēj apstrādāt milzīgu strāvas daudzumu, kā tas ir mūsu testēšanas laikā, pietiek ar 800 milisekundēm, lai iedegtu papīra gabalu. Tātad, mēs izveidojam ķēdi uz perfboard plāksnes un savienojam visus galvenos savienojumus ar 1 kv mm biezu vara stiepli. Pēc tam, kad mēs esam pabeiguši dēļa lodēšanu. Kad bijām pabeiguši, tas izskatījās kā kaut kas, kas parādīts zemāk.
NodeMCU programmēšana Alexa kontrolētajai raķešu palaišanas programmai
Tagad, kad aparatūra ir gatava, ir pienācis laiks sākt kodēt mūsu Alexa balss kontrolēto raķešu palaišanas ierīci. Pilns kods ir atrodams šīs lapas beigās, taču pirms mēs sākam, ir svarīgi savai Arduino IDE pievienot nepieciešamās bibliotēkas. Pārliecinieties, vai esat pievienojis pareizās bibliotēkas no zemāk norādītās saites, pretējā gadījumā kods sastādīšanas laikā radīs kļūdas.
- Lejupielādējiet Espalexa bibliotēku
Pēc nepieciešamo bibliotēku pievienošanas varat tieši augšupielādēt šīs lapas apakšdaļā norādīto kodu, lai pārbaudītu, vai ķēde darbojas. Ja vēlaties uzzināt, kā kods darbojas, turpiniet lasīt.
Kā vienmēr, mēs sākam programmu, pievienojot nepieciešamos galvenes failus un nosakot mūsu karstajiem punktiem tapu nosaukumus un akreditācijas datus.
# iekļaut
Turpinot mūsu kodu, mums ir mūsu funkciju prototipi un atzvanīšanas funkciju definīcijas.
Funkcija connectToWiFi () tiek izmantota, lai izveidotu savienojumu ar Wi-Fi tīklu, un šī funkcija atgriežas kā patiesa, kad Wi-Fi tiek veiksmīgi izveidots.
Tālāk mums ir mūsu atzvanīšanas funkcijas, šīs funkcijas tiks izsauktas, kad mēs dodam komandu Alexa, espalexa API apstrādā šīs funkcijas
void allrockets (spilgtums uint8_t); void firstrocket (uint8_t spilgtums); void secondrocket (spilgtums uint8_t); void thirdrocket (uint8_t spilgtums);
Tālāk mēs definējam ierīču nosaukumus. Šie definētie ierīču nosaukumi tiks atspoguļoti lietotnē Alexa, un, kad mēs sakām komandu, Alexa ierīces atpazīs pēc šiem nosaukumiem. Tāpēc šie vārdi ir ļoti svarīgi.
// Ierīču nosaukumi String First_Device_Name = "Visas raķetes"; String Secound_Device_Name = "Viena raķete"; String Third_Device_Name = "Raķete divi"; String Forth_Device_Name = "Trīs raķetes";
Pēc tam mēs definējam boolean mainīgo wifiStatus, kas saglabās Wi-Fi savienojuma statusu. Visbeidzot, mēs izveidojam Espalexa objektu espalexa. Mēs izmantosim šo objektu, lai konfigurētu NodeMCU.
// wifi statusa pārbaude Būla wifiStatus = false; // Espalexa objekts Espalexa espalexa;
Tālāk mums ir sadaļa void setup () . Šajā sadaļā mēs inicializējam sērijveida saziņu atkļūdošanai ar funkciju Serial.begin () . Mēs iestatījām visas iepriekš definētās tapas kā izvadi ar funkciju pinMode () , pēc tam mēs saucam funkciju connectToWiFi () , tā mēģinās izveidot savienojumu ar Wi-Fi piecpadsmit reizes, ja tā ir pievienota, tā atgriezīsies taisnība, ja tā nebūs izveidojiet savienojumu, tas atgriezīsies nepatiesi un kods uz visiem laikiem izpildīs while () cilpu . Ja Wi-Fi savienojums ir veiksmīgs, mēs iepriekš definētās ierīces pievienojam objektam Alexa, izmantojot funkciju espalexa.addDevice (). Šai funkcijai nepieciešami divi argumenti, vispirms ir ierīces nosaukums, otrais ir atzvanīšanas funkcijas nosaukums, kad mēs izliksim komandu Alexa, tiks izsaukta blakus esošā funkcija. Kad tas ir izdarīts visām četrām mūsu ierīcēm, espalexa objektam mēs izsaucam sākuma () metodes.
void setup () {Serial.begin (115200); // Iespējot sērijas ziņojumu atkļūdošanai pinMode (ROCKET_1_PIN, OUTPUT); // iestatīt ESP tapas kā izvades pinMode (ROCKET_2_PIN, OUTPUT); // iestatīt ESP tapas kā izvades pinMode (ROCKET_3_PIN, OUTPUT); // iestatiet ESP tapas kā izvadi wifiStatus = connectToWiFi (); // Savienojuma izveide ar vietējo Wi-Fi tīklu, ja (wifiStatus) {// iestatiet visas espalexa ierīces // Šeit definējiet savas ierīces. espalexa.addDevice (First_Device_Name, allrockets); // vienkāršākā definīcija, noklusējuma stāvoklis izslēgts espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } cits {kamēr (1) {Seriāls. println ("Nevar izveidot savienojumu ar WiFi. Lūdzu, pārbaudiet datus un atiestatiet ESP."); kavēšanās (2500); }}}
Jo cilpas sadaļā mēs zvaniet cilpas () metodi espalexa objektu, kas vienmēr pārbaudīt jebkurā ienākošo komandu un izsauktu atzvanīšanas funkciju, ja tā konstatē, ka ir taisnība.
void loop () {espalexa.loop (); kavēšanās (1); }
Tālāk mēs definējam visas mūsu atzvanīšanas funkcijas, šajā sadaļā mēs definēsim, kas notiek, kad tiek izsaukta šī atzvanīšanas funkcija. Kad tiek izsaukta funkcija allrockets () , visas raķetes tiks palaistas kopā. Lai to izdarītu, mēs ieslēdzam releju uz 00 ms un pēc tam mēs izslēdzam relejus. Veicot testus, es atklāju, ka noteiktajam nihroma stieples garumam, lai pilnībā sasildītu vadu, man ir vajadzīga 800 ms aizkave, tas jums var būt vai var nebūt. Tāpēc attiecīgi izvēlieties kavēšanos.
void allrockets (uint8_t spilgtums) {if (spilgtums == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); kavēšanās (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Visas raķetes ir palaistas"); }}
Pēc tam mums ir pirmā raķete (), to sauc, kad mēs piezvanām Aleksai un sakām kaklasaites komandu, lai palaistu pirmo raķeti. Process ir ļoti līdzīgs, mēs ieslēdzam releju 800 ms un izslēdzam.
void firstrocket (uint8_t spilgtums) {if (spilgtums == 255) {digitalWrite (ROCKET_1_PIN, HIGH); kavēšanās (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("palaista pirmā raķete"); }}
Visbeidzot, mums ir funkcija connectToWiFi () . Šī funkcija ir diezgan vispārīga un pašsaprotama, tāpēc es neiedziļināšos detalizēti par šo funkciju. Šī funkcija savieno ESP ar Wi-Fi un atgriež savienojuma statusu.
būla savienojumsToWiFi () {būla stāvoklis = patiess; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, parole); Serial.println (""); Serial.println ("Savienojuma izveide ar WiFi"); // Gaidiet savienojumu Serial.print ("Notiek savienojuma izveide…"); while (WiFi.status ()! = WL_CONNECTED) {aizkave (500); Sērijas.druka ("."); ja (i> 15) {stāvoklis = nepatiesa; pārtraukums; } i ++; } Serial.println (""); if (stāvoklis) {Serial.print ("Savienots ar"); Serial.println (ssid); Serial.print ("IP adrese:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Savienojums neizdevās."); } atgriešanās stāvoklis; }
Šī noteiktā funkcija iezīmē kodēšanas daļas beigas.
Alexa konfigurēšana ar Alexa Android lietojumprogrammu
Alexa komandas pieņems tikai tad un tikai tad, ja tā atpazīs ierīci esp8866. Lai to izdarītu, mums ir jākonfigurē Alexa ar Android lietotnes Alexa palīdzību. Viena svarīga lieta, kas jādara, pirms mēs turpinām turpināt, ir tā, ka mums jāpārliecinās, ka Alexa ir konfigurēts ar mūsu android lietojumprogrammu.
Lai to izdarītu, dodieties uz papildu Alexa lietotnes sadaļu un noklikšķiniet uz opcijas Pievienot ierīci, noklikšķiniet uz Gaisma, pēc tam ritiniet uz leju lapas apakšdaļā un noklikšķiniet uz Cits.
Pēc tam noklikšķiniet uz ATKLĀT IERĪCI un pagaidiet mirkli pēc tam, kad Alexa atradīs jaunas ierīces. Kad Alexa atradīs ierīces, jums tās jānoklikšķina un jāpievieno attiecīgajām vietām / kategorijām, un tas ir paveikts.
Alexa kontrolētais raķešu palaidējs - pārbaude
Pārbaudes procesā es devos uz savu dārzu, izvilku no raķetes visus drošinātājus, ievietoju tos attiecīgajās vietās un es kliedzu Alexa…! Ieslēdziet visas raķetes, sakrustojot pirkstus. Un visas raķetes lidoja, atzīmējot manus centienus kā milzīgus panākumus. Tas izskatījās apmēram šādi.
Visbeidzot, es vēlreiz teicu Alexa…! Ieslēdziet visas raķetes, lai iegūtu episku priekšstatu par pavedieniem, kurus jūs varat redzēt zemāk.
Lai iegūtu episkāku pieredzi, ļoti iesaku noskatīties videoklipu.