- Sprachgesteuerter Raketenwerfer auf Alexa-Basis - funktioniert
- Launchpad für unseren NodeMCU Rocket Launch Controller
- Erforderliche Komponenten für Alexa Controlled Rocket Launcher
- Arduino Rocket Launcher Schaltplan
- Aufbau der Schaltung auf PerfBoard
- Programmieren von NodeMCU für Alexa Controlled Rocket Launcher
- Konfigurieren von Alexa mit der Alexa Android-Anwendung
- Alexa Controlled Rocket Launcher - Testen
Wenn sich die Wintersaison nähert; kommt die Zeit des Jahres, in der das Lichterfest gefeiert wird. Ja, wir sprechen von Diwali, einem echten indischen Festival, das auf der ganzen Welt gefeiert wird. Dieses Jahr ist Diwali bereits vorbei, und als ich Feuerwerkskörper sah, kam mir die Idee, den auf Alexa basierenden Voice Controlled Rocket Launcher oder Igniter zu bauen, mit dem Raketen mit nur Sprachbefehlen abgefeuert werden können, was es für Kinder sehr sicher und unterhaltsam macht.
Um es klar zu machen, ich bin nicht hier, um Menschen zu ermutigen, Cracker auf Diwali abzufeuern. Die indische Regierung hat Beschränkungen für Cracker durchgesetzt, um die Umweltverschmutzung einzudämmen, und es liegt in unserer Verantwortung, diese einzuhalten. Die Idee dabei ist, dass wir nicht den ganzen Tag Cracker abfeuern, sondern einen coolen, sprachgesteuerten Arduino-Raketenzünder bauen und ein paar Raketen mit Stil abfeuern. Ich sehe das als eine Win-Win-Situation.
Dieser Arduino-Raketenwerfer wird sich sehr von anderen unterscheiden. Es verfügt über ein sehr robustes Chassis aus Sperrholz, einen zuverlässigen relaisbasierten Steuerungsmechanismus und einen einzigartigen Mechanismus zum Starten und Nachladen der Raketen. Lassen Sie uns also ohne weitere Verzögerung direkt mit dem Bauprozess beginnen.
Sprachgesteuerter Raketenwerfer auf Alexa-Basis - funktioniert
Der Arbeitsmechanismus der Schaltung ist sehr einfach, die Hauptkomponente, die für den Start der Rakete verantwortlich ist, ist der Nichromdraht, und er kommt in Form einer Heizspule. Dieser Nichromdraht fungiert als Raketenzünder. Wie? Ich werde es dir später zeigen.
Wie Sie im Bild oben sehen können, das Nichromdrahtes kommt in Form einer Heizspirale für mich, war es der einfachste Weg, es zu bekommen. Wir müssen es gerade ziehen und biegen, um eine Form zu erhalten, die wie im Bild unten gezeigt aussieht.
Sobald wir dies getan haben, werden wir es mit einer 12V Blei-Säure-Batterie versorgen und es wird glühend heiß leuchten. Dies reicht aus, um das Schwarzpulver in der Rakete zu entzünden, und es funktioniert genau wie eine normale Sicherungsdosis. Beachten Sie, dass dies ein Hochleistungs-Raketenstart-Controller ist. Der Strom, der erforderlich ist, um das Kabel glühend heiß zu machen, ist hoch. Befolgen Sie die Sicherheitshinweise, wenn Sie mit hohen Strömen arbeiten.
Sobald der Test abgeschlossen ist, bleibt nur noch der Kontrollprozess, den wir im weiteren Verlauf des Artikels durchführen werden.
Launchpad für unseren NodeMCU Rocket Launch Controller
Erstellen wir für diesen Build ein Launchpad. Wenn das Launchpad fertig ist, können wir einige Cracker einfach nachladen und sehr einfach starten. Ich habe ein Launchpad erstellt, das dem im Bild unten gezeigten ähnelt.
Lassen Sie uns Schritt für Schritt durch den Aufbau des Launchpads gehen. Für die beiden Seiten des Rahmens habe ich zwei (25 x 3 x 1,5 Zoll) lange Sperrholzstücke verwendet. Für den oberen Teil habe ich einen (20X3X1,5) Zoll langen Teil Sperrholz verwendet, und für den Boden habe ich ein (20X6X1,5) Zoll langes Stück Sperrholz verwendet, das ihm etwas mehr Stabilität verleiht. Das Bild unten gibt Ihnen eine klare Vorstellung.
Jetzt ist es Zeit, die Filamente auf Nichromdrahtbasis herzustellen, die als Zündschnur für unsere Rakete dienen. Dafür habe ich eine 1000-W-Heizspule auf Nichromdrahtbasis gekauft, sie begradigt und die unten gezeigte Struktur hergestellt. Ich musste zwei Zangen und Seitenschneider verwenden, um den Nichromdraht wie unten gezeigt zu formen.
Sobald dies erledigt war, teilte ich das 20-Zoll-Stück Sperrholzblock in sieben Teile, maß es und bohrte Löcher, um die Filamente auf der Basis von Nichromdraht einzulegen. Sobald dies erledigt war, sah es wie in den folgenden Bildern aus.
Aber bevor ich die Filamente platziere, habe ich in jedem Anschluss einen 1 mm dicken Kupferdraht angebracht und sie durch die Löcher geführt. Nachdem alles erledigt war, sah es aus wie auf dem Bild unten.
Wie Sie sehen können, habe ich auch den Zweikomponentenkleber eingesetzt, um den Draht und die Filamente an Ort und Stelle zu sichern. Damit ist unser Launchpad fertig. Und wie Sie auf dem ersten Bild in diesem Abschnitt sehen können, habe ich die Filamentdrähte direkt an der Leiterplatte befestigt, da es sich um sehr hohe Ströme handelt, sodass ich mir nicht die Mühe gemacht habe, einen Schraubanschluss zu platzieren, und das markiert das Ende unseres Gehäuses Bauprozess.
Erforderliche Komponenten für Alexa Controlled Rocket Launcher
Für die Hardware-Seite haben wir sehr allgemeine Teile verwendet, die Sie ziemlich einfach in Ihrem örtlichen Hobbygeschäft erhalten können. Eine vollständige Liste der Artikel finden Sie unten.
- 12V-Relais - 3
- BD139 Transistor - 3
- 1N4004 Diode - 3
- 5,08 mm Schraubklemme - 1
- LM7805 - Spannungsregler - 1
- 100 uF Entkopplungskondensator - 2
- 5,1 V Zenerdiode - 1
- NodeMCU (ESP8266-12E) Board - 1
- Gepunktetes Perf Board - ½
- Verbindungskabel - 10
Arduino Rocket Launcher Schaltplan
Das vollständige Schema für Alexa Controlled Rocket Launcher ist unten angegeben. Ich habe Tags verwendet, um einen Pin mit einem anderen zu verbinden. Wenn Sie genau hinsehen, sollte es nicht schwierig sein, den Schaltplan zu interpretieren.
Die Schaltungskonstruktion ist ziemlich unkompliziert, daher werde ich nicht sehr auf die Details eingehen.
Erstens haben wir IC1, einen Spannungsregler LM7805, dessen 100 uF-Entkopplungskondensatoren mit C1 und C2 bezeichnet sind. Danach haben wir das Herzstück unseres Projekts, das NodeMCU-Board, in dem sich das ESP-12E-Modul befindet. Da wir eine 12-V-Blei-Säure-Batterie verwenden, um die gesamte Schaltung mit Strom zu versorgen, müssen wir den LM7805 verwenden, um ihn zuerst in 12 V bis 5 V umzuwandeln, um die NodeMCU-Karte mit Strom zu versorgen. Wir tun dies, weil der integrierte Spannungsregler AMS1117 nicht ausreicht, um 12 V direkt in 3,3 V umzuwandeln, weshalb 7805 erforderlich ist.
Im weiteren Verlauf haben wir drei 12-V-Relais. Für diese Demonstration verwenden wir drei Relais. Wie bereits erwähnt, verfügt das Launchpad über einen Platzhalter für 7 Raketen. Sie können den Code ein wenig optimieren und alle sieben Raketen platzieren, um insgesamt zu starten. Die drei Relais werden von T1, T2 und T3 angesteuert, die drei NPN-Transistoren sind, und sie reichen aus, um die Last eines Real anzutreiben. Schließlich haben wir drei Freilaufdioden, die die Schaltung vor Hochspannungsspitzen schützen, die vom Relais erzeugt werden.
Aufbau der Schaltung auf PerfBoard
Wie Sie dem Hauptbild entnehmen können, bestand die Idee darin, eine einfache Schaltung zu erstellen, die für kurze Zeit eine große Strommenge verarbeiten kann. Laut unseren Tests reichen 800 Millisekunden aus, um ein Stück Papier zum Leuchten zu bringen. Also bauen wir die Schaltung auf einem Stück Perfboard und verbinden alle wichtigen Verbindungen mit 1 mm² dickem Kupferdraht. Nachdem wir die Platine fertig gelötet haben. Als wir fertig waren, sah es wie etwas aus, das unten gezeigt wird.
Programmieren von NodeMCU für Alexa Controlled Rocket Launcher
Jetzt, da die Hardware fertig ist, ist es Zeit, mit der Codierung für unseren sprachgesteuerten Raketenwerfer auf Alexa-Basis zu beginnen. Der vollständige Code befindet sich am Ende dieser Seite. Bevor wir beginnen, ist es jedoch wichtig, die erforderlichen Bibliotheken zu Ihrer Arduino IDE hinzuzufügen. Stellen Sie sicher, dass Sie die richtigen Bibliotheken über den unten angegebenen Link hinzufügen. Andernfalls wird der Code beim Kompilieren Fehler auslösen.
- Laden Sie die Espalexa-Bibliothek herunter
Nach dem Hinzufügen der erforderlichen Bibliotheken können Sie den unten auf dieser Seite angegebenen Code direkt hochladen, um zu überprüfen, ob die Schaltung funktioniert. Wenn Sie wissen möchten, wie der Code funktioniert, lesen Sie weiter.
Wie immer beginnen wir das Programm, indem wir die erforderlichen Header-Dateien hinzufügen und die Pin-Namen und Anmeldeinformationen für unseren Hotspot definieren.
#einschließen
Weiter mit unserem Code haben wir unsere Funktionsprototypen und Rückruffunktionsdefinitionen.
Die Funktion connectToWiFi () wird verwendet, um eine Verbindung zum Wi-Fi-Netzwerk herzustellen. Diese Funktion gibt true zurück, wenn Wi-Fi erfolgreich verbunden wurde.
Als nächstes haben wir unsere Rückruffunktionen . Diese Funktionen werden aufgerufen, wenn wir Alexa einen Befehl geben. Die espalexa-API übernimmt diese Funktionen
leere Allrockets (uint8_t Helligkeit); void firstrocket (uint8_t Helligkeit); void secondrocket (uint8_t Helligkeit); Leere dritte Rakete (uint8_t Helligkeit);
Als nächstes definieren wir die Gerätenamen. Diese definierten Gerätenamen werden in der Alexa-App angezeigt. Wenn wir einen Befehl sagen, erkennt Alexa die Geräte an diesen Namen. Diese Namen sind also sehr wichtig.
// Gerätenamen String First_Device_Name = "All Rockets"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Rakete Drei";
Als nächstes definieren wir eine boolesche Variable wifiStatus, die den Verbindungsstatus des Wi-Fi enthält. Schließlich erstellen wir ein Espalexa-Objekt espalexa. Wir werden dieses Objekt verwenden, um die NodeMCU zu konfigurieren.
// WLAN-Statusprüfung boolean wifiStatus = false; // Espalexa-Objekt Espalexa espalexa;
Als nächstes haben wir unseren Abschnitt void setup () . In diesem Abschnitt initialisieren wir die serielle Kommunikation für das Debuggen mit der Funktion Serial.begin () . Wir setzen alle zuvor definierten Pins als Ausgabe mit der Funktion pinMode () . Als nächstes rufen wir die Funktion connectToWiFi () auf. Wenn eine Verbindung besteht, wird fünfzehn Mal versucht, eine Verbindung zu Wi-Fi herzustellen. Wenn dies nicht der Fall ist, wird true zurückgegeben Wenn Sie eine Verbindung herstellen, wird false zurückgegeben und der Code führt für immer eine while () - Schleife aus . Wenn die Wi-Fi - Verbindung erfolgreich ist, fügen wir die zuvor definierten Geräte mit dem Alexa - Objekt durch die Verwendung von espalexa.addDevice () function.This Funktion nimmt zwei Argumente, zunächst das ist Gerätename, Zweitens ist der Name der Rückruffunktion. Wenn wir einen Befehl an Alexa senden, wird die benachbarte Funktion aufgerufen. Sobald wir dies für alle vier unserer Geräte erledigt haben, rufen wir die begin () -Methoden für das espalexa-Objekt auf.
void setup () {Serial.begin (115200); // Serial zum Debuggen von Nachrichten aktivieren pinMode (ROCKET_1_PIN, OUTPUT); // ESP-Pins als Ausgangs-PinMode einrichten (ROCKET_2_PIN, OUTPUT); // ESP-Pins als Ausgangs-PinMode einrichten (ROCKET_3_PIN, OUTPUT); // ESP-Pins als Ausgang einrichten wifiStatus = connectToWiFi (); // Stellen Sie eine Verbindung zum lokalen Wi-Fi-Netzwerk her, wenn (wifiStatus) {// alle espalexa-Geräte einrichten // Definieren Sie Ihre Geräte hier. espalexa.addDevice (First_Device_Name, allrockets); // einfachste Definition, Standardstatus aus espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, Thirdrocket); espalexa.begin (); } else {while (1) {Seriell. println ("Es kann keine Verbindung zu WiFi hergestellt werden. Bitte überprüfen Sie die Daten und setzen Sie das ESP zurück."); Verzögerung (2500); }}}
Im Abschnitt loop rufen wir die loop () -Methode des espalexa-Objekts auf, die immer nach eingehenden Befehlen sucht und die Rückruffunktion aufruft, wenn sie wahr ist.
void loop () {espalexa.loop (); Verzögerung (1); }}
Als nächstes definieren wir alle unsere Rückruffunktionen. In diesem Abschnitt definieren wir, was passiert, wenn diese Rückruffunktion aufgerufen wird. Wenn die Funktion allrockets () aufgerufen wird, werden alle Raketen zusammen gestartet. Dafür schalten wir das Relais für 00 ms ein und danach schalten wir die Relais aus. Bei meinen Tests habe ich festgestellt, dass ich für die angegebene Länge des Nichromdrahtes eine Verzögerung von 800 ms benötige, um den Draht vollständig zu erwärmen. Dies kann bei Ihnen der Fall sein oder auch nicht. Wählen Sie also die Verzögerung entsprechend.
void allrockets (uint8_t Helligkeit) {if (Helligkeit == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); Verzögerung (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("Alle Raketen gestartet"); }}
Als nächstes haben wir unsere erste Rakete (), die aufgerufen wird, wenn wir Alexa anrufen und den Befehl binden, um die erste Rakete zu starten. Der Vorgang ist sehr ähnlich, wir schalten das Relais für 800 ms ein und aus.
void firstrocket (uint8_t Helligkeit) {if (Helligkeit == 255) {digitalWrite (ROCKET_1_PIN, HIGH); Verzögerung (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Erste Rakete gestartet"); }}
Schließlich haben wir unsere Funktion connectToWiFi () . Diese Funktion ist ziemlich allgemein und selbsterklärend, daher werde ich nicht auf die Details dieser Funktion eingehen. Diese Funktion verbindet das ESP mit Wi-Fi und gibt den Verbindungsstatus zurück.
boolean connectToWiFi () {boolean state = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, Passwort); Serial.println (""); Serial.println ("Verbindung zu WiFi herstellen"); // Warte auf Verbindung Serial.print ("Connecting…"); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); if (i> 15) {state = false; Unterbrechung; } i ++; } Serial.println (""); if (state) {Serial.print ("Verbunden mit"); Serial.println (ssid); Serial.print ("IP-Adresse:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Verbindung fehlgeschlagen."); } return state; }}
Diese definierte Funktion markiert das Ende des Codierungsteils.
Konfigurieren von Alexa mit der Alexa Android-Anwendung
Alexa akzeptiert Befehle nur dann, wenn es das esp8866-Gerät erkennt. Dazu müssen wir Alexa mit Hilfe der Alexa-App auf Android konfigurieren. Bevor wir fortfahren, müssen wir sicherstellen, dass Alexa mit unserer Android-Anwendung konfiguriert ist.
Gehen Sie dazu zum Abschnitt "Mehr" der Alexa-App und klicken Sie auf die Option " Gerät hinzufügen", klicken Sie auf " Licht", scrollen Sie unten auf der Seite nach unten und klicken Sie auf " Andere".
Klicken Sie anschließend auf ENTDECKEN DES GERÄTS und warten Sie einen Moment, bis Alexa neue Geräte gefunden hat. Sobald Alexa die Geräte gefunden hat, müssen Sie darauf klicken und sie ihren jeweiligen Orten / Kategorien hinzufügen. Fertig.
Alexa Controlled Rocket Launcher - Testen
Für den Test ging ich in meinen Garten, zog alle Sicherungen aus der Rakete, platzierte sie an ihren jeweiligen Stellen und rief Alexa…! Schalten Sie alle Raketen mit gekreuzten Fingern ein. Und alle Raketen flogen, indem sie meine Bemühungen als großen Erfolg markierten. Es sah ungefähr so aus.
Zum Schluss sagte ich noch einmal Alexa…! Schalten Sie alle Raketen ein, um ein episches Bild der Filamente zu erhalten, die Sie unten sehen können.
Für eine epischere Erfahrung empfehle ich Ihnen dringend, das Video anzuschauen.