- „Alexa“ pagrindu valdoma balso valdoma raketų paleidimo priemonė - veikia
- „NodeMCU“ raketų paleidimo valdiklio paleidimo pultas
- „Alexa“ valdomam raketos paleidimo įrenginiui reikalingi komponentai
- „Arduino“ raketų paleidimo įrenginio schema
- Grandinės sukūrimas ant „PerfBoard“
- „Alexa“ valdomos raketos paleidimo priemonės „NodeMCU“ programavimas
- „Alexa“ konfigūravimas naudojant „Alexa Android“ programą
- „Alexa“ valdoma raketų paleidimo priemonė - bandymai
Artėjant žiemos sezonui; ateina tas metų laikas, kai švenčiama šviesos šventė. Taip, mes kalbame apie Diwali, kuris yra tikras Indijos festivalis, švenčiamas visame pasaulyje. Šiais metais Diwali jau baigėsi ir, matydamas žmonių petardas, sugalvojau pastatyti „ Alexa“ pagrindu veikiantį balso valdomą raketų paleidimo įrenginį arba „Igniter“, kuris gali paleisti raketas tiesiog balsu komandomis, todėl tai labai saugu ir smagu vaikams.
Aiškiai sakant, aš nesu čia, kad skatinčiau žmones šaudyti į spiralę Diwalyje. Indijos vyriausybė įgyvendino krekerių apribojimus, kad sutramdytų taršą, ir mūsų pareiga jų laikytis. Idėja yra ta, kad užuot praleidę visą dieną krekerių šaudymui, pastatykime šaunų balsu valdomą „Arduino“ raketinį uždegiklį ir stilingai paleiskime kelias raketas. Aš tai matau kaip laimėjimą.
Šis „ Arduino“ raketų paleidėjas labai skirsis nuo kitų. Ji turi labai tvirtą važiuoklę, pagamintą iš faneros, patikimą relės valdymo mechanizmą ir labai unikalų raketų paleidimo ir perkrovimo mechanizmą, todėl nedelsdami įsitraukime į statybos procesą.
„Alexa“ pagrindu valdoma balso valdoma raketų paleidimo priemonė - veikia
Kontūro darbo mechanizmas yra labai paprastas, pagrindinis komponentas, kuris yra atsakingas už raketos paleidimą, yra nichromo viela, kuri yra šildymo ritės pavidalu. Ši nichromo viela veiks kaip raketos uždegiklis. Kaip? Aš jums parodysiu vėliau.
Kaip matote aukščiau esančiame paveikslėlyje, nichromo viela yra šildytuvo ritės pavidalu, man tai buvo lengviausias būdas ją gauti. Turime jį ištraukti tiesiai ir sulenkti, kad susidarytume figūrą, kuri atrodo taip, kaip parodyta žemiau esančiame paveikslėlyje.
Tai padarę, maitinsime 12 V švino rūgšties akumuliatoriumi ir jis šviečia raudonai. To pakaks, kad raketoje užsidegtų juodi milteliai, ir jie veiks kaip ir įprasta saugiklio dozė. Atkreipkite dėmesį, kad tai yra didelės galios raketos paleidimo valdiklis, srovė, reikalinga laidui raudonai įkaisti, yra didelė. Laikykitės saugos patarimų dirbdami su didele srove.
Atlikus testavimą, beliks tik kontrolinis procesas, kurį atliksime toliau dirbdami toliau.
„NodeMCU“ raketų paleidimo valdiklio paleidimo pultas
Šiam komponavimui sukurkime paleidimo pultą. Atlikę paleidimo pultą, galime lengvai perkrauti kai kuriuos krekerius ir juos labai lengvai paleisti. Aš sukūriau paleidimo pultą, kuris atrodo taip, kaip parodyta paveikslėlyje, parodytame žemiau.
Peržiūrėkime palaipsniui paleidimo pulto kūrimo procesą. Dviejoms rėmo pusėms naudojau du (25X3X1,5) colio ilgio faneros gabalus. Viršutinei daliai naudojau (20X3X1,5) colio ilgio faneros dalį, o pagrindui - (20X6X1,5) colio ilgio faneros gabalėlį, kuris suteiks jai šiek tiek daugiau stabilumo. Žemiau pateiktas vaizdas suteiks jums aiškią idėją.
Dabar atėjo laikas pagaminti iš nichromo vielos pagamintus siūlus, kurie taps mūsų raketos saugikliu. Tam nusipirkau 1000 W nichromo vielos pagrindo šildymo ritę, ją ištiesinau ir padariau struktūrą, kuri parodyta žemiau. Norėdamas suformuoti nichromo vielą, kaip parodyta žemiau, turėjau naudoti dvi replės ir šoninius pjaustytuvus.
Kai tai buvo padaryta, aš padalinau 20 colių faneros kaladėlę į septynias jos išmatavimo dalis ir išgręžiau skyles, kad įdėčiau nichromo vielos pagrindu sukurtas gijas, ir tai padarius atrodė, kaip parodyta žemiau.
Bet prieš dedant siūlus, kiekviename gnybte pritvirtinau 1 kv. Mm storio varinę vielą ir praleidau jas pro skylutes, kai viskas buvo padaryta, atrodė, kaip pavaizduota žemiau.
Kaip matote, aš taip pat įdėjau dviejų komponentų klijus, kad pritvirtintumėte vielą ir gijas. Tai padarius, mūsų paleidimo pultas baigtas. Kaip matote iš šio skyriaus pirmojo paveikslėlio, aš tiesiogiai pritvirtinau kaitinamųjų siūlų laidus prie PCB, nes mes susiduriame su labai didelėmis srovėmis, todėl aš nesivarginau įdėti varžto gnybto ir tai pažymi mūsų važiuoklės galą statybos procesą.
„Alexa“ valdomam raketos paleidimo įrenginiui reikalingi komponentai
Aparatinės įrangos srityje mes panaudojome labai bendrąsias dalis, kurias galite lengvai gauti iš savo vietinių hobių parduotuvės, visas daiktų sąrašas pateiktas žemiau.
- 12 V relė - 3
- BD139 tranzistorius - 3
- 1N4004 Diodas - 3
- 5,08 mm varžto gnybtas - 1
- LM7805 - įtampos reguliatorius - 1
- 100uF atjungimo kondensatorius - 2
- 5,1 V „Zener“ diodas - 1
- „NodeMCU“ (ESP8266-12E) plokštė - 1
- Dotted Perf lenta - ½
- Jungiamoji viela - 10
„Arduino“ raketų paleidimo įrenginio schema
Visa „ Alexa“ valdomo raketos paleidimo įrenginio schema pateikta žemiau. Naudojau žymes, kad galėčiau prijungti vieną kaištį prie kito. Jei pažvelgsite pakankamai arti, neturėtų būti sunku interpretuoti schemą.
Grandinių konstrukcija yra gana paprasta, todėl aš nesigilinsiu į detales.
Pirma, mes turime IC1, kuris yra LM7805 įtampos reguliatorius, su jo 100uF atsiejimo kondensatoriais, pažymėtais C1 ir C2. Po to mes turime savo projekto esmę - „NodeMCU“ plokštę, kurioje yra ESP-12E modulis. Kadangi mes naudojame 12 V švino rūgšties akumuliatorių, kad galėtume maitinti visą grandinę, todėl mes turime naudoti „LM7805“, kad pirmiausia jį paverstume iš 12 V į 5 V, kad maitintume „NodeMCU“ plokštę. Tai darome todėl, kad laive esančio AMS1117 įtampos reguliatoriaus nepakanka 12 V tiesiogiai konvertuoti į 3,3 V, todėl reikia 7805.
Toliau mes turime tris 12 V reles, šiai demonstracijai naudojame tris reles, tačiau, kaip jau minėjome anksčiau, paleidimo skydelyje yra 7 raketų vietos ženklas. Galite šiek tiek pakoreguoti kodą ir iš viso paleisti visas septynias raketas. Trys relės yra valdomos T1, T2 ir T3, kurie yra trys NPN tranzistoriai, ir jų pakanka valdyti tikrosios apkrovą. Galiausiai turime tris laisvai judančius diodus, kurie apsaugo grandinę nuo relės generuojamų aukštos įtampos šuolių.
Grandinės sukūrimas ant „PerfBoard“
Kaip matote iš pagrindinio paveikslėlio, kilo mintis sukurti paprastą grandinę, kuri trumpą laiką galėtų apdoroti didžiulį srovės kiekį, kaip nurodyta mūsų bandymuose, popieriaus gabalui apšviesti pakanka 800 milisekundžių. Taigi, mes sukuriame grandinę ant perfboardo gabalo ir sujungiame visas pagrindines jungtis 1 kv. Mm storio varine viela. Pabaigę lituoti lentą. Kai baigėme, atrodė kažkas, kas parodyta žemiau.
„Alexa“ valdomos raketos paleidimo priemonės „NodeMCU“ programavimas
Dabar, kai aparatinė įranga yra paruošta, laikas pradėti koduoti mūsų „Alexa“ pagrindu valdomą balso valdomą raketų paleidimo priemonę. Visą kodą galite rasti šio puslapio pabaigoje, tačiau prieš pradedant, svarbu pridėti reikalingas bibliotekas prie „Arduino IDE“. Įsitikinkite, kad pridėjote tinkamas bibliotekas iš žemiau pateiktos nuorodos, kitaip kodas sukels klaidas, kai bus sudarytas.
- Atsisiųskite „Espalexa“ biblioteką
Pridėję reikalingas bibliotekas, galite tiesiogiai įkelti kodą, pateiktą šio puslapio apačioje, kad patikrintumėte, ar grandinė veikia. Jei norite sužinoti, kaip veikia kodas, toliau skaitykite.
Kaip visada, programą pradedame pridėdami reikiamus antraštės failus ir apibrėždami savo viešosios interneto prieigos taško vardus ir kredencialus.
# įtraukti
Tęsdami savo kodą, turime savo funkcijų prototipus ir atgalinio skambučio funkcijų apibrėžimus.
Funkcija „ connectToWiFi“ () naudojama prisijungti prie „Wi-Fi“ tinklo ir ši funkcija bus teisinga, kai „Wi-Fi“ bus sėkmingai prijungtas.
Tada mes turime savo atgalinio skambinimo funkcijas, šios funkcijos bus iškviestos, kai duosime komandą Alexa, espalexa API tvarkys šias funkcijas
negaliojančios visos vietos (uint8_t ryškumas); tuštuma ugniakuras (uint8_t ryškumas); void secondrocket (uint8_t ryškumas); negaliojantis trečiasis ratas (uint8_t ryškumas);
Toliau mes nustatome įrenginių pavadinimus. Šie apibrėžti įrenginių pavadinimai atsispindės „Alexa“ programoje, o kai pasakysime komandą, „Alexa“ atpažins įrenginius pagal šiuos pavadinimus. Taigi šie vardai yra labai svarbūs.
// Įrenginių pavadinimai String First_Device_Name = "Visos raketos"; String Secound_Device_Name = "Raketa viena"; String Third_Device_Name = "Antroji raketa"; String Forth_Device_Name = "Raketa trys";
Toliau mes apibrėžiame loginį kintamąjį „ wifiStatus“, kuris palaikys „Wi-Fi“ ryšio būseną. Galiausiai sukuriame „Espalexa“ objektą „espalexa“. Šį objektą naudosime „NodeMCU“ konfigūravimui.
// „wifi“ būsenos tikrinimo loginis „wifiStatus“ = klaidingas; // Espalexa objektas Espalexa espalexa;
Tada mes turime skyrių „ void setup“ () . Šiame skyriuje mes inicijuojame nuoseklųjį ryšį derinimui su funkcija Serial.begin () . Mes nustatėme visus ankstesnius apibrėžtus kaiščius kaip išvestį su funkcija pinMode () , tada mes vadiname funkciją connectToWiFi () , jis bandys prisijungti prie „Wi-Fi“ penkiolika kartų, jei jis bus prijungtas, jis bus teisingas, jei jis nebus prisijungti, jis grąžins klaidingą, o kodas visam laikui vykdys „ while“) ciklą . Jei „Wi-Fi“ ryšys yra sėkmingas, prie „Alexa“ objekto pridedame anksčiau apibrėžtus įrenginius naudodami funkciją espalexa.addDevice (). Šiai funkcijai reikia dviejų argumentų, pirmiausia yra įrenginio pavadinimas, antra yra atgalinio skambinimo funkcijos pavadinimas, kai mes pateiksime komandą Alexa, bus iškviesta gretima funkcija. Kai tai padarysime visiems keturiems savo įrenginiams, vadiname „espalexa“ objekto pradžios () metodais.
negaliojanti sąranka () {Serial.begin (115200); // Įgalinti nuoseklų pranešimų derinimą pinMode (ROCKET_1_PIN, OUTPUT); // nustatykite ESP kaiščius kaip išvesties pinMode (ROCKET_2_PIN, OUTPUT); // nustatykite ESP kaiščius kaip išvesties pinMode (ROCKET_3_PIN, OUTPUT); // nustatykite ESP kaiščius kaip išvestį wifiStatus = connectToWiFi (); // Prisijunkite prie vietinio „Wi-Fi“ tinklo, jei („wifiStatus“) {// nustatykite visus „espalexa“ įrenginius // Čia apibrėžkite savo įrenginius. espalexa.addDevice (First_Device_Name, allrockets); // paprasčiausias apibrėžimas, numatytoji būsena išjungta espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice („Third_Device_Name“, „secondrocket“); espalexa.addDevice („Forth_Device_Name“, „thirdrocket“); espalexa.begin (); } else {while (1) {Serialas. println ("Nepavyksta prisijungti prie" WiFi ". Patikrinkite duomenis ir iš naujo nustatykite ESP."); vėlavimas (2500); }}}
Į kilpą skyriuje, mes vadiname kilpa () metodas espalexa objektą, visada patikrinkite, ar gaunamus komandą ir skambinkite atgalinio ryšio funkcija jei ji mano, kad tiesa.
tuštuma kilpa () {espalexa.loop (); vėlavimas (1); }
Toliau mes apibrėžsime visas mūsų atgalinio ryšio funkcijas, šiame skyriuje mes apibrėžsime, kas atsitiks, kai bus paskambinta ši atgalinio ryšio funkcija. Kai iškviečiama allrockets () funkcija, visos raketos bus paleistos kartu. Tam mes įjungsime relę 00 ms, o po to - išjungsime. Atlikdamas testus, radau, kad norint nichromuoto vielos ilgio nurodyti, man reikia 800 ms delsos, kad visiškai sušilčiau laidą. Tai gali būti jūsų atvejis. Taigi atitinkamai pasirinkite vėlavimą.
negaliojančios allrockets (uint8_t ryškumas) {if (ryškumas == 255) {digitalWrite (ROCKET_1_PIN, HIGH); „digitalWrite“ (ROCKET_2_PIN, HIGH); „digitalWrite“ (ROCKET_3_PIN, HIGH); vėlavimas (800); „digitalWrite“ (ROCKET_1_PIN, LOW); „digitalWrite“ (ROCKET_2_PIN, LOW); „digitalWrite“ (ROCKET_3_PIN, LOW); Serial.println („Visos raketos paleistos“); }}
Tada mes turime savo pirmąją raketą (), tai iškviečiama, kai paskambiname Alexai ir sakome komandą kaklaraištis, kad paleistume pirmąją raketą. Procesas yra labai panašus, įjungiame relę 800 ms ir išjungiame.
void firstrocket (uint8_t ryškumas) {if (ryškumas == 255) {digitalWrite (ROCKET_1_PIN, HIGH); vėlavimas (800); „digitalWrite“ (ROCKET_1_PIN, LOW); „Serial.println“ („Paleista pirmoji raketa“); }}
Galiausiai, turime savo connectToWiFi () funkciją. Ši funkcija yra gana bendrinė ir savaime suprantama, todėl nesigilinsiu į šią funkciją. Ši funkcija sujungia ESP su „Wi-Fi“ ir grąžina ryšio būseną.
boolean connectToWiFi () {loginės būsenos = true; int i = 0; „WiFi.mode“ (WIFI_STA); „WiFi.begin“ (ssid, slaptažodis); Serial.println (""); Serial.println („Prisijungimas prie„ WiFi “); // Palaukite ryšio Serial.print ("Prisijungiama…"); while (WiFi.status ()! = WL_CONNECTED) {delsa (500); Serijinis spaudinys ("."); jei (i> 15) {būsena = netikra; pertrauka; } i ++; } Serial.println (""); if (būsena) {Serial.print ("Prisijungta prie"); Serial.println (ssid); Serial.print („IP adresas:“); Serial.println („WiFi.localIP“ ()); } else {Serial.println ("Prisijungimas nepavyko."); } grįžimo būsena; }
Ši apibrėžta funkcija žymi kodavimo dalies pabaigą.
„Alexa“ konfigūravimas naudojant „Alexa Android“ programą
„Alexa“ komandas priims tik tada ir tik tada, jei atpažins „esp8866“ įrenginį. Tam mes turime sukonfigūruoti „Alexa“ naudodami „Alexa“ programą „Android“. Vienas svarbus dalykas, kurį reikia padaryti prieš tęsiant toliau, yra tai, kad turime įsitikinti, kad „Alexa“ yra sukonfigūruota naudojant mūsų „Android“ programą.
Norėdami tai padaryti, eikite į daugiau „Alexa“ programos skyrių ir spustelėkite parinktį Pridėti įrenginį, spustelėkite Šviesa, tada slinkite žemyn puslapio apačioje ir spustelėkite Kita.
Tada spustelėkite ATRASTI ĮRENGINĮ ir palaukite akimirką, po to Alexa ras naujus įrenginius. Kai Alexa suras įrenginius, turite juos spustelėti ir pridėti prie atitinkamų vietų / kategorijų, ir viskas bus baigta.
„Alexa“ valdoma raketų paleidimo priemonė - bandymai
Norėdamas išbandyti, nuėjau į savo sodą, iš raketos ištraukiau visus saugiklius, padėjau juos į savo vietas ir sušukau Alexa…! Įjunkite visas raketas sukryžiavęs pirštus. Ir visos raketos skrido pažymėdamos mano pastangas kaip didžiulę sėkmę. Tai atrodė maždaug taip.
Galiausiai dar kartą pasakiau Alexa…! Įjunkite visas raketas, kad gautumėte epinį gijų vaizdą, kurį galite pamatyti žemiau.
Norėdami gauti daugiau epinės patirties, labai rekomenduoju jums pažiūrėti vaizdo įrašą.