- Alexa-baserad röststyrd raketlansering - fungerar
- Startplatta för vår NodeMCU Rocket Launch Controller
- Komponenter som krävs för Alexa Controlled Rocket Launcher
- Arduino Rocket Launcher Circuit Diagram
- Bygga kretsen på PerfBoard
- Programmering av NodeMCU för Alexa Controlled Rocket Launcher
- Konfigurera Alexa med Alexa Android-applikationen
- Alexa Controlled Rocket Launcher - Testing
När vintersäsongen närmar sig; kommer den tiden på året då ljusfesten firas. Ja, vi pratar om Diwali, som är en riktig indisk festival som firas över hela världen. I år är Diwali redan över, och när jag såg folk smällare kom jag på idén att bygga den Alexa-baserade Voice Controlled Rocket Launcher eller Igniter, som kan starta raketer med bara röstkommando, vilket gör det väldigt säkert och roligt för barn.
För att göra det tydligt är jag inte här för att uppmuntra människor att skjuta smällare på Diwali, den indiska regeringen har infört begränsningar för smällare för att begränsa föroreningar och det är vårt ansvar att följa den. Tanken här är att istället för att spendera hela dagen med att knäcka smällare, låt oss bygga en cool röststyrd Arduino-rakettändare och skjuta några raketer med stil. Jag ser det som en vinn-vinn.
Denna Arduino raketraketer kommer att skilja sig mycket från andra. Den har ett mycket robust chassi av plywood, en pålitlig reläbaserad styrmekanism och en mycket unik mekanism för att starta och ladda raketerna, så utan ytterligare fördröjning, låt oss gå in i byggprocessen.
Alexa-baserad röststyrd raketlansering - fungerar
Kretsens arbetsmekanism är mycket enkel, huvudkomponenten som är ansvarig för att skjuta raketen är nikromtråden, och den kommer i form av en värmebatteri. Denna nikromtråd fungerar som raketändaren. Hur? Jag visar dig senare.
Som du kan se på bilden ovan kommer nikromtråden i form av en värmespole, för mig var det det enklaste sättet att få det. Vi måste dra det rakt och böja det för att bilda en form som ser ut som bilden visar nedan.
När vi har gjort detta kommer vi att driva det med ett 12V blybatteri och det lyser glödhet. Detta kommer att räcka för att antända det svarta pulvret inuti raketen och det kommer att fungera precis som en normal säkringsdos. Observera att detta är en högeffekt raketlanseringskontroll, strömmen som krävs för att göra ledningen rödglödande är hög. Följ säkerhetsanvisningarna när du arbetar med höga strömmar.
När testet är klart är det enda som återstår kontrollprocessen, som vi kommer att göra när vi går vidare i artikeln.
Startplatta för vår NodeMCU Rocket Launch Controller
För den här byggnaden, låt oss skapa en startplatta. När startplattan är klar kan vi enkelt ladda om några smällare och starta dem mycket enkelt. Jag har byggt en startplatta som ser ut som den som visas i bilden nedan.
Låt oss gå igenom steg för steg-processen för att bygga startplattan. För de två sidorna av ramen har jag använt två (25X3X1,5) tum långa plywoodstycken. För den övre delen har jag använt en (20X3X1.5) tum lång del av plywood och för basen har jag använt en (20X6X1.5) tum lång plywoodbit, vilket ger den lite mer stabilitet. Bilden nedan ger dig en tydlig uppfattning.
Nu är det dags att göra de nikroma trådbaserade trådarna, som kommer att fungera som en säkring för vår raket. För det har jag köpt en 1000W nikrom trådbaserad värmebatteri, rätat upp den och gjort strukturen som visas nedan. Jag var tvungen att använda två tänger och sidoskärare för att forma nikromtråden enligt bilden nedan.
När detta var klart delade jag in 20-tums bitar av plywood i sju delar och mättade det och borrade hål för att sätta de nikroma trådbaserade filamenten i, och när det var gjort såg det ut som bilderna nedan.
Men innan jag placerade filamenten har jag fäst 1 kvm tjock koppartråd i varje terminal och skickat dem genom hålen, när allt var klart såg det ut som bilden nedan.
Som du kan se har jag också lagt i tvåkomponentlimet för att säkra tråden och filamenten på plats. Med det gjort är vår startplatta komplett. Och som du kan se från den första bilden i det här avsnittet, har jag direkt anslutit glödtrådarna till kretskortet eftersom vi har mycket höga strömmar så jag brydde mig inte om att placera en skruvterminal, och det markerar slutet på vårt chassi byggprocess.
Komponenter som krävs för Alexa Controlled Rocket Launcher
För maskinvarusidan har vi använt mycket generiska delar som du enkelt kan få från din lokala hobbybutik. En komplett lista med artiklar ges nedan.
- 12V-relä - 3
- BD139 Transistor - 3
- 1N4004 Diod - 3
- 5,08 mm skruvplint - 1
- LM7805 - Spänningsregulator - 1
- 100uF avkopplingskondensator - 2
- 5.1V Zener-diod - 1
- NodeMCU (ESP8266-12E) Board - 1
- Prickad Perf Board - ½
- Anslutningskabel - 10
Arduino Rocket Launcher Circuit Diagram
Det fullständiga schemat för Alexa Controlled Rocket Launcher ges nedan. Jag har använt taggar för att ansluta en stift till en annan. Om du ser tillräckligt nära bör det inte vara svårt att tolka schemat.
Circuit Construction är ganska enkel, så jag kommer inte att gå in på detaljerna så mycket.
Först har vi IC1, som är en LM7805-spänningsregulator, med dess 100uF-frikopplingskondensatorer betecknade med C1 och C2. Efter det har vi hjärtat i vårt projekt, NodeMCU-kortet, som rymmer modulen ESP-12E. Eftersom vi använder ett 12V blybatteri för att driva hela kretsen, är det därför som vi måste använda LM7805 för att först konvertera det till 12V till 5V för att driva NodeMCU-kortet. Vi gör det eftersom den inbyggda AMS1117-spänningsregulatorn inte räcker för att konvertera 12V direkt till 3,3V, varför 7805 är nödvändigt.
När vi går vidare har vi tre 12V-reläer, för denna demonstration använder vi tre reläer, men som vi tidigare nämnde har startplattan en platshållare för 7 raketer. Du kan justera koden lite och placera alla sju raketerna för att starta helt. De tre reläerna drivs av en T1, T2 och T3 som är tre NPN-transistorer, och de är tillräckliga för att driva en reals belastning. Slutligen har vi tre friluftsdioder som skyddar kretsen från högspänningspinnar som genereras av reläet.
Bygga kretsen på PerfBoard
Som du kan se från huvudbilden var tanken att skapa en enkel krets som kan hantera en enorm mängd ström under en kort period, enligt våra tester räcker 800 millisekunder för att tända ett papper. Så vi bygger kretsen på en bit perfboard och ansluter alla större anslutningar med 1 kvm tjock koppartråd. När vi är färdiga med lödning. När vi var färdiga såg det ut som något som visas nedan.
Programmering av NodeMCU för Alexa Controlled Rocket Launcher
Nu när hårdvaran är klar är det dags att börja koda för vår Alexa-baserade röststyrda raketstartare. Den fullständiga koden finns i slutet av denna sida, men innan vi börjar är det viktigt att lägga till de bibliotek som krävs till din Arduino IDE. Se till att du lägger till rätt bibliotek från länken nedan, annars kommer koden att kasta fel när den kompileras.
- Ladda ner Espalexa-biblioteket
När du har lagt till de önskade biblioteken kan du ladda upp koden direkt längst ner på denna sida för att kontrollera om kretsen fungerar. Om du vill veta hur koden fungerar, fortsätt läsa.
Som alltid börjar vi programmet med att lägga till de nödvändiga rubrikfilerna och definiera stiftnamn och referenser för vår hotspot.
#omfatta
När vi fortsätter med vår kod har vi våra funktionsprototyper och definitioner av återuppringningsfunktioner.
Funktion connectToWiFi () används för att ansluta till Wi-Fi-nätverket och den här funktionen returnerar sant när Wi-Fi har anslutits.
Därefter har vi våra återuppringningsfunktioner , dessa funktioner kommer att anropas när vi ger ett kommando till Alexa, espalexa API hanterar dessa funktioner
ogiltiga allrockets (uint8_t ljusstyrka); ogiltigt första hjul (uint8_t ljusstyrka); ogiltigt andrahjul (uint8_t ljusstyrka); ogiltigt tredjehjul (uint8_t ljusstyrka);
Därefter definierar vi enhetsnamnen. Dessa definierade enhetsnamn kommer att återspeglas i Alexa-appen och när vi säger ett kommando känner Alexa igen enheterna med dessa namn. Så dessa namn är mycket viktiga.
// Enhetsnamn String First_Device_Name = "Alla raketer"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Rocket Three";
Därefter definierar vi en boolesk variabel wifiStatus, som kommer att hålla anslutningsstatus för Wi-Fi. Slutligen skapar vi ett Espalexa-objekt espalexa. Vi kommer att använda detta objekt för att konfigurera NodeMCU.
// wifi-statuskontroll boolesk wifiStatus = falsk; // Espalexa Object Espalexa espalexa;
Därefter har vi vår tomrumsinställning () . I det här avsnittet initialiserar vi seriekommunikation för felsökning med funktionen Serial.begin () . Vi ställer in alla tidigare definierade stift som utgång med pinMode () -funktion, nästa kallar vi connectToWiFi () -funktionen, den försöker ansluta till Wi-Fi i femton gånger om den är ansluten, den kommer att återvända om den inte bli ansluten kommer den att returnera falsk och koden kommer att köras en while () loop för alltid. Om Wi-Fi-anslutningen lyckas lägger vi till de tidigare definierade enheterna i Alexa-objektet med funktionen espalexa.addDevice (). Den här funktionen tar två argument, först är enhetsnamnet, andra är namnet på återuppringningsfunktionen, när vi lägger ut ett kommando till Alexa kommer den intilliggande funktionen att kallas. När vi är klara att göra det för alla våra fyra enheter kallar vi start () -metoderna för espalexa-objektet.
ogiltig installation () {Serial.begin (115200); // Aktivera Serial för felsökning av meddelanden pinMode (ROCKET_1_PIN, OUTPUT); // ställa in ESP-stift som utgångs pinMode (ROCKET_2_PIN, OUTPUT); // ställa in ESP-stift som output pinMode (ROCKET_3_PIN, OUTPUT); // ställa in ESP-stift som utgång wifiStatus = connectToWiFi (); // Anslut till lokalt Wi-Fi-nätverk om (wifiStatus) {// ställa in alla espalexa-enheter // Definiera dina enheter här. espalexa.addDevice (First_Device_Name, allrockets); // enklaste definition, standardläge från espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } annat {medan (1) {Seriell. println ("Kan inte ansluta till WiFi. Kontrollera data och återställ ESP."); fördröjning (2500); }}}
I loop- avsnittet kallar vi loop () -metoden för espalexa-objektet som alltid söker efter inkommande kommando och ringer upp återuppringningsfunktionen om den finner det sant.
ogiltig slinga () {espalexa.loop (); fördröjning (1); }
Därefter definierar vi alla våra återuppringningsfunktioner, i det här avsnittet definierar vi vad som händer när denna återuppringningsfunktion anropas. När allrockets () -funktionen anropas kommer alla raketer att lanseras tillsammans. För det ska vi slå på reläet i 00 ms och därefter stänga vi av reläerna. I mina tester har jag funnit att för den specificerade längden på nikromtråd, behöver jag 800 ms fördröjning för att helt värma upp tråden, detta kanske eller inte kan vara fallet för dig. Så välj förseningen därefter.
ogiltiga allrockets (uint8_t ljusstyrka) {if (ljusstyrka == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); fördröjning (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Alla raketer lanserade"); }}
Därefter har vi vår första raket (), det här kallas när vi ringer Alexa och säger tie-kommando för att starta den första raketen. Processen är mycket lik, vi slår på reläet i 800 ms och stänger av.
ogiltigt första hjul (uint8_t ljusstyrka) {if (ljusstyrka == 255) {digitalWrite (ROCKET_1_PIN, HÖG); fördröjning (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("First Rocket Launched"); }}
Slutligen har vi vår connectToWiFi () -funktion. Denna funktion är ganska generisk och självförklarande, så jag kommer inte att gå in på detaljerna om den här funktionen. Denna funktion ansluter ESP till Wi-Fi och returnerar anslutningsstatus.
boolean connectToWiFi () {boolean state = true; int i = 0; WiFi-läge (WIFI_STA); WiFi.begin (ssid, lösenord); Serial.println (""); Serial.println ("Ansluter till WiFi"); // Vänta på anslutning Serial.print ("Ansluter…"); medan (WiFi.status ()! = WL_CONNECTED) {fördröjning (500); Serial.print ("."); om (i> 15) {state = false; ha sönder; } i ++; } Serial.println (""); if (state) {Serial.print ("Connected to"); Serial.println (ssid); Serial.print ("IP-adress:"); Serial.println (WiFi.localIP ()); } annat {Serial.println ("Anslutningen misslyckades."); } returstatus; }
Den definierade funktionen markerar slutet på kodningsdelen.
Konfigurera Alexa med Alexa Android-applikationen
Alexa accepterar bara kommandon om och bara om den känner igen esp8866-enheten. För det måste vi konfigurera Alexa med hjälp av Alexa-appen på Android. En viktig sak att göra innan vi fortsätter är att vi måste se till att Alexa är konfigurerad med vår Android-applikation.
För att göra det, gå till det mer avsnittet i Alexa-appen och klicka på alternativet Lägg till en enhet, klicka på Ljus, rulla sedan ned längst ner på sidan och klicka på Annat.
Klicka sedan på UPPTÄCK ENHET och vänta en stund efter att Alexa hittar nya enheter. När Alexa har hittat enheterna måste du klicka på dem och lägga till dem i deras respektive platser / kategorier, så är du klar.
Alexa Controlled Rocket Launcher - Testing
För testprocessen gick jag till min trädgård, drog alla säkringar från raketen, placerade dem på sina respektive platser och jag ropade Alexa…! Sätt på alla raketer med korsade fingrar. Och alla raketer flög genom att markera mina ansträngningar som en enorm framgång. Det såg ut så här.
Äntligen sa jag än en gång Alexa…! Slå på alla raketer för att få en episk bild av filamenten som du kan se nedan.
För en mer episk upplevelse rekommenderar jag att du tittar på videon.