- Ракетная установка с голосовым управлением на базе Alexa - работает
- Панель запуска для нашего контроллера запуска ракеты NodeMCU
- Компоненты, необходимые для управляемой Alexa ракетной установки
- Принципиальная схема ракетной установки Arduino
- Создание схемы на PerfBoard
- Программирование NodeMCU для управляемой Alexa ракетной установки
- Настройка Alexa с помощью приложения Alexa для Android
- Ракетная установка, управляемая Alexa - тестирование
По мере приближения зимнего сезона; наступает то время года, когда отмечается фестиваль огней. Да, мы говорим о Дивали, настоящем индийском фестивале, отмечаемом во всем мире. В этом году Дивали уже закончился, и, увидев, что люди взрывают петарды, я пришел к идее создания ракетной установки с голосовым управлением или воспламенителя на базе Alexa, которая может запускать ракеты с помощью голосовой команды, что делает ее очень безопасной и веселой для детей.
Чтобы прояснить ситуацию, я здесь не для того, чтобы побуждать людей запускать крекеры на Дивали, индийское правительство ввело ограничения на использование крекеров, чтобы обуздать загрязнение, и мы обязаны соблюдать их. Идея здесь в том, что вместо того, чтобы тратить целый день на стрельбу крекерами, давайте создадим классный запал ракет Arduino с голосовым управлением и стильно запустим несколько ракет. Я считаю это беспроигрышным вариантом.
Эта ракетная установка Arduino будет сильно отличаться от других. У него очень прочное шасси из фанеры, надежный релейный механизм управления и очень уникальный механизм для запуска и перезарядки ракет, так что без дальнейших промедлений давайте приступим непосредственно к процессу сборки.
Ракетная установка с голосовым управлением на базе Alexa - работает
Рабочий механизм схемы очень прост, основным компонентом, отвечающим за запуск ракеты, является нихромовая проволока, и она имеет форму нагревательной спирали. Эта нихромовая проволока будет действовать как воспламенитель ракеты. Как? Я покажу вам позже.
Как вы можете видеть на изображении выше, нихромовая проволока имеет форму катушки нагревателя, для меня это был самый простой способ ее получить. Мы должны вытянуть его прямо и согнуть, чтобы сформировать форму, которая выглядит как показано на изображении ниже.
Как только мы это сделаем, мы запитаем его свинцово-кислотным аккумулятором на 12 В, и он раскалится докрасна. Этого будет достаточно, чтобы зажечь черный порох внутри ракеты, и он будет работать как обычный взрыватель. Имейте в виду, что это контроллер запуска ракеты высокой мощности, ток, необходимый для нагрева провода докрасна, велик. Соблюдайте правила техники безопасности при работе с большими токами.
После завершения тестирования остается только процесс контроля, которым мы будем заниматься по мере продвижения в этой статье.
Панель запуска для нашего контроллера запуска ракеты NodeMCU
Для этой сборки сделаем пусковую площадку. Когда панель запуска готова, мы можем легко перезагрузить некоторые взломщики и очень легко их запустить. Я создал панель запуска, которая выглядит как та, что показана на изображении ниже.
Давайте рассмотрим пошаговый процесс создания панели запуска. Для двух сторон рамы я использовал два куска фанеры (25x3x1,5) дюймов длиной. Для верхней части я использовал кусок фанеры (20x3x1,5) дюймов длиной, а для основания я использовал кусок фанеры (20x6x1,5) дюймов длиной, что придаст ему немного большей устойчивости. Изображение ниже даст вам четкое представление.
Пришло время изготовить нити из нихромовой проволоки, которые будут служить взрывателем для нашей ракеты. Для этого я купил нагревательную катушку с нихромовой проволокой мощностью 1000 Вт, выпрямил ее и сделал структуру, показанную ниже. Мне пришлось использовать два плоскогубца и боковые кусачки, чтобы сформировать нихромовую проволоку, как показано ниже.
Как только это было сделано, я разделил 20-дюймовый кусок фанеры на семь частей, измерил его и просверлил отверстия, чтобы вставить нити на основе нихромовой проволоки, и как только это было сделано, он выглядел, как на изображениях ниже.
Но перед тем, как разместить нити, я прикрепил медный провод толщиной 1 кв. Мм к каждой клемме и пропустил их через отверстия. Когда все было сделано, это выглядело как на изображении ниже.
Как видите, я также добавил двухкомпонентный клей, чтобы закрепить проволоку и нити на месте. На этом наша стартовая панель готова. И, как вы можете видеть на первом рисунке в этом разделе, я непосредственно прикрепил нити накала к печатной плате, потому что мы имеем дело с очень высокими токами, поэтому я не стал устанавливать винтовой зажим, который отмечает конец нашего шасси. строительный процесс.
Компоненты, необходимые для управляемой Alexa ракетной установки
Что касается аппаратного обеспечения, мы использовали очень общие детали, которые вы можете довольно легко получить в местном магазине для хобби, полный список предметов приведен ниже.
- 12В-реле - 3
- БД139 Транзистор - 3
- 1N4004 Диод - 3
- 5,08 мм винтовой зажим - 1
- LM7805 - Регулятор напряжения - 1
- Конденсатор развязки 100 мкФ - 2
- Стабилитрон 5.1 В - 1
- Плата NodeMCU (ESP8266-12E) - 1
- Пунктирная перфорированная плита - ½
- Соединительный провод - 10
Принципиальная схема ракетной установки Arduino
Полная схема ракетной установки, управляемой Alexa, приведена ниже. Я использовал теги, чтобы соединить один контакт с другим. Если вы посмотрите достаточно внимательно, интерпретировать схему не составит труда.
Конструкция схемы довольно проста, поэтому я не буду вдаваться в подробности.
Во-первых, у нас есть IC1, который представляет собой стабилизатор напряжения LM7805, с разделительными конденсаторами емкостью 100 мкФ, обозначенными как C1 и C2. После этого у нас есть сердце нашего проекта, плата NodeMCU, на которой находится модуль ESP-12E. Поскольку мы используем свинцово-кислотную батарею 12 В для питания всей схемы, поэтому мы должны использовать LM7805, чтобы сначала преобразовать его с 12 В на 5 В для питания платы NodeMCU. Мы делаем это, потому что встроенного регулятора напряжения AMS1117 недостаточно для прямого преобразования 12 В в 3,3 В, поэтому необходим 7805.
Двигаясь дальше, у нас есть три реле 12 В, для этой демонстрации мы используем три реле, но, как мы уже упоминали ранее, на стартовой панели есть заполнитель для 7 ракет. Вы можете немного подправить код и разместить все семь ракет для запуска вместе. Три реле управляются транзисторами T1, T2 и T3, которые являются тремя NPN-транзисторами, и их достаточно, чтобы управлять нагрузкой реального устройства. Наконец, у нас есть три свободно вращающихся диода, которые защищают схему от скачков высокого напряжения, генерируемых реле.
Создание схемы на PerfBoard
Как видно из основного изображения, идея заключалась в том, чтобы создать простую схему, которая может выдерживать огромное количество тока в течение короткого периода времени, согласно нашим тестам, 800 миллисекунд достаточно, чтобы зажечь лист бумаги. Итак, мы строим схему на куске монтажной платы и соединяем все основные соединения медным проводом толщиной 1 кв. Мм. После того, как мы закончили пайку платы. Когда мы закончили, это выглядело так, как показано ниже.
Программирование NodeMCU для управляемой Alexa ракетной установки
Теперь, когда оборудование готово, пришло время начать кодирование нашей ракетной установки с голосовым управлением на базе Alexa. Полный код можно найти в конце этой страницы, но прежде чем мы начнем, важно добавить необходимые библиотеки в вашу среду разработки Arduino. Убедитесь, что вы добавили правильные библиотеки из приведенной ниже ссылки, иначе код будет выдавать ошибки при компиляции.
- Скачать библиотеку Espalexa
После добавления необходимых библиотек вы можете напрямую загрузить код, приведенный внизу этой страницы, чтобы проверить, работает ли схема. Если вы хотите узнать, как работает код, продолжайте читать.
Как всегда, мы начинаем программу с добавления необходимых файлов заголовков и определения имен контактов и учетных данных для нашей точки доступа.
#включают
Продолжая наш код, у нас есть прототипы функций и определения функций обратного вызова.
Функция connectToWiFi () используется для подключения к сети Wi-Fi, и эта функция возвращает значение true при успешном подключении к Wi-Fi.
Затем у нас есть функции обратного вызова , эти функции будут вызываться, когда мы дадим команду Alexa, API espalexa обрабатывает эти функции.
void allrockets (uint8_t яркость); void firstrocket (яркость uint8_t); void secondrocket (яркость uint8_t); void thirdrocket (яркость uint8_t);
Затем мы определяем имена устройств. Эти определенные имена устройств будут отражены в приложении Alexa, и когда мы произнесем команду, Alexa распознает устройства по этим именам. Итак, эти имена очень важны.
// Имена устройств String First_Device_Name = "All Rockets"; String Secound_Device_Name = "Ракета-1"; String Third_Device_Name = "Вторая ракета"; String Forth_Device_Name = "Ракета-3";
Затем мы определяем логическую переменную wifiStatus, которая будет содержать статус подключения Wi-Fi. Наконец, мы создаем объект Espalexa espalexa. Мы будем использовать этот объект для настройки NodeMCU.
// проверка статуса Wi-Fi boolean wifiStatus = false; // Объект Espalexa Espalexa espalexa;
Далее у нас есть раздел void setup () . В этом разделе мы инициализируем последовательную связь для отладки с помощью функции Serial.begin () . Мы устанавливаем все предыдущие определенные контакты как выходные данные с помощью функции pinMode () , затем мы вызываем функцию connectToWiFi () , она будет пытаться подключиться к Wi-Fi пятнадцать раз, если она подключена, она вернет true, если это не так. подключиться, он вернет false, и код будет выполнять цикл while () навсегда. Если соединение Wi-Fi установлено успешно, мы добавляем ранее определенные устройства к объекту Alexa с помощью функции espalexa.addDevice (). Эта функция принимает два аргумента, первый - это имя устройства, во-вторых, это имя функции обратного вызова, когда мы отправляем команду в Alexa, будет вызвана соседняя функция. Когда мы закончим делать это для всех четырех наших устройств, мы вызываем методы begin () для объекта espalexa.
void setup () {Serial.begin (115200); // Включение последовательного порта для отладки сообщений pinMode (ROCKET_1_PIN, OUTPUT); // устанавливаем выводы ESP как выходные pinMode (ROCKET_2_PIN, OUTPUT); // устанавливаем выводы ESP как выходные pinMode (ROCKET_3_PIN, OUTPUT); // настраиваем контакты ESP как выходные wifiStatus = connectToWiFi (); // Подключаемся к локальной сети Wi-Fi if (wifiStatus) {// настраиваем все устройства espalexa // Определите здесь свои устройства. espalexa.addDevice (First_Device_Name, allrockets); // простейшее определение, состояние по умолчанию выключено espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (третье_имя_устройства, вторая ракета); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Серийный. println («Не удается подключиться к Wi-Fi. Проверьте данные и сбросьте ESP.»); задержка (2500); }}}
В разделе цикла мы вызываем метод loop () объекта espalexa, который всегда будет проверять наличие любой входящей команды и вызывать функцию обратного вызова, если она находит ее истинной.
недействительный цикл () {espalexa.loop (); задержка (1); }
Затем мы определяем все наши функции обратного вызова, в этом разделе мы определим, что происходит при вызове этой функции обратного вызова. Когда вызывается функция allrockets () , все ракеты запускаются вместе. Для этого мы собираемся включить реле на 00 мс, а после этого мы собираемся выключить реле. В своих тестах я обнаружил, что для указанной длины нихромовой проволоки мне нужно 800 мс задержки для полного нагрева проволоки, это может быть или не подходить для вас. Так что выбирайте задержку соответственно.
void allrockets (uint8_t яркость) {если (яркость == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); задержка (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println («Все ракеты запущены»); }}
Затем у нас есть первая ракета (), она вызывается, когда мы вызываем Alexa и говорим команду привязки для запуска первой ракеты. Процесс очень похож, включаем реле на 800мс и выключаем.
void firstrocket (uint8_t яркость) {если (яркость == 255) {digitalWrite (ROCKET_1_PIN, HIGH); задержка (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println («Первая запущенная ракета»); }}
Наконец, у нас есть функция connectToWiFi () . Эта функция является довольно общей и не требует пояснений, поэтому я не буду вдаваться в подробности об этой функции. Эта функция подключает ESP к Wi-Fi и возвращает статус подключения.
boolean connectToWiFi () {логическое состояние = true; int я = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, пароль); Serial.println (""); Serial.println («Подключение к WiFi»); // Ждем подключения Serial.print ("Connecting…"); в то время как (WiFi.status ()! = WL_CONNECTED) {задержка (500); Serial.print ("."); если (я> 15) {состояние = ложь; сломать; } i ++; } Serial.println (""); if (состояние) {Serial.print ("Подключено к"); Serial.println (ssid); Serial.print ("IP-адрес:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Ошибка подключения."); } вернуть состояние; }
Эта определенная функция отмечает конец части кодирования.
Настройка Alexa с помощью приложения Alexa для Android
Alexa будет принимать команды только тогда и только тогда, когда распознает устройство esp8866. Для этого нам нужно настроить Alexa с помощью приложения Alexa на Android. Прежде чем мы продолжим, необходимо сделать одну важную вещь: убедиться, что Alexa настроена с нашим приложением для Android.
Для этого перейдите в раздел «Еще» в приложении Alexa и нажмите « Добавить устройство», нажмите « Свет», затем прокрутите вниз в нижней части страницы и нажмите « Другое».
Затем нажмите DISCOVER DEVICE и подождите немного, после чего Alexa найдет новые устройства. Как только Alexa найдет устройства, вам нужно щелкнуть по ним и добавить их в соответствующие места / категории, и все готово.
Ракетная установка, управляемая Alexa - тестирование
Для процесса тестирования я пошел в свой сад, вытащил все взрыватели из ракеты, поместил их на свои места и крикнул Алекса…! Включите все ракеты, скрестив пальцы. И все ракеты полетели, отмечая мои усилия как огромный успех. Выглядело это примерно так.
Наконец, я еще раз сказал Алекса…! Включите все ракеты, чтобы получить эпическое изображение нитей, которое вы можете увидеть ниже.
Для более впечатляющих впечатлений я настоятельно рекомендую вам посмотреть видео.