Оглавление:

Переключатель с голосовым управлением с использованием Alexa и Arduino: 10 шагов (с изображениями)
Переключатель с голосовым управлением с использованием Alexa и Arduino: 10 шагов (с изображениями)

Видео: Переключатель с голосовым управлением с использованием Alexa и Arduino: 10 шагов (с изображениями)

Видео: Переключатель с голосовым управлением с использованием Alexa и Arduino: 10 шагов (с изображениями)
Видео: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 2024, Ноябрь
Anonim
Переключатель с голосовым управлением с использованием Alexa и Arduino
Переключатель с голосовым управлением с использованием Alexa и Arduino

Основная цель этого проекта - использовать датчик температуры для управления переключателем (реле) для включения или выключения устройства.

Список материалов

  1. Модуль реле 12 В ==> $ 4,2
  2. Arduino uno ==> 8 долларов
  3. Датчик температуры DHT11 ==> 3 $
  4. Модуль ESP8266 ==> 4,74 $
  5. Оптрон N26 ==> 0,60 $
  6. Регулятор напряжения LM1117 ==> 0,60 $
  7. Макетная плата ==> 2,2 $
  8. Провода перемычки ==> 2,5 $
  9. Нажимаем кнопку ==> $ 2,5

Общая стоимость проекта около 30 долларов. Этот проект разделен на три части. Сначала мы используем heroku для создания приложения. Во-вторых, мы развиваем навык Amazon Alexa для выполнения нашей работы (самая важная часть). В-третьих, мы настраиваем наше оборудование и программируем его с помощью Arduino IDE.

Шаг 1. Связывание Heroku с GitHub

Связывание Heroku с GitHub
Связывание Heroku с GitHub
Связывание Heroku с GitHub
Связывание Heroku с GitHub
Связывание Heroku с GitHub
Связывание Heroku с GitHub

Heroku - это облачная платформа как услуга (PaaS), поддерживающая несколько языков программирования, которая используется в качестве модели развертывания веб-приложений. Сначала перейдите на сайт heroku, создайте новую учетную запись или войдите там. Ссылка приведена ниже

Сайт Heroku

Давайте начнем с создания нового приложения. Я дал своему приложению имя «iottempswitch», когда вы развертываете приложение, ссылка создается.

Как только приложение будет создано, перейдите на GitHub. GitHub /

Войдите в систему или зарегистрируйтесь, если у вас нет учетной записи. После входа в систему создайте новый репозиторий. Дайте любое имя, которое хотите выбрать, а затем нажмите «Создать репозиторий». На следующей странице нажмите README, на этой странице дайте описание, которым хотите поделиться с другими. После этого нажмите на фиксацию нового файла. Затем нажмите кнопку загрузки.

Есть два варианта: перетащить папку или выбрать файл. Загрузите необходимые файлы снизу. После выбора файлов нажмите кнопку фиксации изменений. Откройте приложение, которое вы создали на Heroku, затем перейдите в раздел развертывания. После этого нажмите GitHub и укажите имя репозитория, которое вы создали на стороне GitHub. В моем случае это Smart-Relay. Скопируйте это и вставьте сюда. Как только ваша ссылка появится, нажмите «Подключиться». Затем нажмите на ветку развертывания (вручную). После развертывания вы можете увидеть ссылку в журнале сборки или увидеть ссылку в настройках. Эта ссылка понадобится нам позже, когда мы будем развивать навык Amazon.

Шаг 2: Amazon

Амазонка
Амазонка
Амазонка
Амазонка
Амазонка
Амазонка

Последние изображения навыков Alexa

На сайте Amazon Developer мы используем навыки Amazon для управления триггером переключателя, устанавливая температуру и влажность.

Перейдите на сайт разработчика Amazon. Ссылка дана ниже.

Веб-сайт разработчика Amazon

  • Перейдите в консоль разработчика вверху справа, как показано на рисунке i4.
  • Перейдите в Alexa, затем выберите Alexa Skill Kit и затем создайте новый навык, нажав Добавить новый навык.

При добавлении нового навыка вы увидите страницу с информацией о навыке.

1. Информация о навыках (как показано на изображении i7)

мы должны указать тип навыка, язык, имя, имя вызова.

Тип навыка ==> выберите индивидуальный

  • Имя ==> выберите любое имя.
  • Имя вызова ==>, которое вы используете при общении с Alexa. Например; - Alexa, попросите датчик включить переключатель триггера или Alexa, спросите свет, здесь имена вызовов - датчик и свет.
  • Язык ==> Английский (Индия). Выберите в соответствии с вашей страной

нажмите "Сохранить", а затем "Далее"

2. Модель взаимодействия

Здесь мы будем использовать конструктор навыков. Итак, нажмите «Запустить конструктор навыков». вы увидите страницу, как показано на изображении i8.

Сначала мы создаем новые намерения. Нажмите «Добавить» (слева) и дайте любое имя, которое я использовал «smartswitch»

  • Дайте типу слота имя "measurement_type" и значениям слота "температура" и "влажность", как показано на рисунке i9.
  • После этого добавьте имя типа слота «запрос» и значениями слота будут «что» и «есть», как показано на изображении i10.
  • После этого добавьте тип слота «switchstate», и значения слота будут «on» и «off», как показано на изображении i11.
  • Добавьте еще один тип слота «tempscale» и значениями слота «fahrenheit» и «celcuis», как показано на изображении i12.
  • После этого добавьте новый тип слота, здесь мы используем существующий тип слота, для чего мы должны нажать на использование существующего слота. В существующем слоте найдите amazon.number, выберите его и добавьте. После добавления вы увидите его в типах слотов, как показано на изображении i13.

Итак, мы закончили с типами слотов, общий тип слота, который мы используем, равен 5. Теперь переходим к следующему шагу. Щелкните намерение, которое мы создали, в моем случае это smartswitch. Справа вы увидите слот намерения, как показано на изображении i14.

  • Создайте новый слот, дайте ему имя «Switch_State» и сопоставьте его с «switchstate», используя кнопку раскрывающегося списка, как показано на изображении i15.
  • Создайте новый слот, дайте ему имя «Sensor_Values» и сопоставьте его с «measure_type», как показано на изображении i16.
  • Создайте новый слот, дайте ему имя «запрос» и сопоставьте его с «запросом», как показано на изображении i17.
  • После этого создайте новый слот «tmp_scale» и сопоставьте его с «tempscale», как показано на изображении i18.
  • Создайте новый слот «Numbers» и сопоставьте его с «Amazon. Numbers», как показано на изображении i19.

Теперь мы закончили со слотами Intent. Мы используем 5 слотов намерений. После этого мы переходим к Образцам высказываний, как показано на изображении i20.

Добавьте этот образец высказываний.

установите переключатель триггера на {Numbers} проценты {tmp_scale}

{query} - это состояние переключателя

{Switch_State} переключатель триггера

установите переключатель триггера на {Numbers} градус {tmp_scale}

поверните переключатель {Switch_State}

{query} переключатель {Switch_State}

{query} - это текущее значение {Sensor_Values}

После этого сохраните модель и постройте ее. Подождите, пока модель будет построена, после этого нажмите на конфигурацию. После построения вы увидите сообщение, как показано на изображениях i21 и i22.

3. Конфигурация

Выберите HTTPS и добавьте ссылку, созданную при создании приложения heroku. В моем случае это https://iottempswitch.herokuapp.com/. После добавления ссылки нажмите «Далее», как показано на изображении i23.

4. Сертификат SSL. Выберите второй вариант и нажмите «Далее», как показано на изображении i24.

мы успешно создали свое мастерство.

Шаг 3: Arduino

Ардуино
Ардуино
Ардуино
Ардуино
Ардуино
Ардуино

Откройте Arduino IDE, затем перейдите в File ==> Preference

В диспетчере дополнительных плат скопируйте и вставьте URL-адрес и нажмите кнопку ОК, как показано на изображении i26.

arduino.esp8266.com/versions/2.4.0/package_…

  • Откройте Board Manager, выбрав Инструменты ==> Доска ==> Board Manager.
  • Откройте Boards Manager и найдите nodemcu, как показано на изображении i27.
  • После этого скачайте библиотеку ESP8266WiFi. Откройте диспетчер библиотек: Sketch ==> Включить библиотеку ==> Управление библиотеками.
  • Найдите библиотеку ESP8266WiFi и установите ее.
  • Выберите плату ==> Generic ESP8266 Module.
  • Перед загрузкой кода нам понадобятся три библиотеки.

Необходимые библиотеки

Переместите эти библиотеки в папку с библиотеками Arduino

Вам нужно изменить три вещи в коде SSID, PWD и ссылку на приложение heroku. После этого загрузите код. Для модуля ESP вы должны нажать кнопку вспышки во время загрузки кода, затем нажать кнопку сброса один раз, а затем отпустить кнопку вспышки. После загрузки кода откройте терминал. вы увидите результат.

Шаг 4: Описание компонента

Компонент Описание
Компонент Описание
Компонент Описание
Компонент Описание
Компонент Описание
Компонент Описание
Компонент Описание
Компонент Описание

1. Что такое реле

Реле - это электромагнитное устройство, которое используется для электрической изоляции двух цепей и их магнитного соединения. Это очень полезные устройства, которые позволяют одной цепи переключать другую, пока они полностью разделены. Они часто используются для сопряжения электронной схемы (работающей при низком напряжении) с электрической схемой, работающей при очень высоком напряжении. Например, реле может создать цепь батареи 5 В постоянного тока для переключения цепи сети 230 В переменного тока.

Как это работает

Релейный переключатель можно разделить на две части: вход и выход. Входная секция имеет катушку, которая генерирует магнитное поле, когда на нее подается небольшое напряжение от электронной схемы. Это напряжение называется рабочим напряжением. Обычно используемые реле доступны в различных конфигурациях рабочих напряжений, таких как 6 В, 9 В, 12 В, 24 В и т. Д. Выходная секция состоит из контакторов, которые подключаются или отключаются механически. В базовом реле есть три контактора: нормально разомкнутый (NO), нормально замкнутый (NC) и общий (COM). При отсутствии входа COM подключен к NC. При подаче рабочего напряжения на катушку реле подается напряжение, и COM меняет контакт на NO. Доступны различные конфигурации реле, такие как SPST, SPDT, DPDT и т. Д., Которые имеют разное количество переключающих контактов. Используя правильную комбинацию контакторов, можно включать и выключать электрическую цепь. Получите внутреннюю информацию о структуре релейного переключателя.

Клемма COM является общей клеммой. Если на клеммы COIL подается номинальное напряжение, клеммы COM и NO имеют целостность. Если клеммы COIL не находятся под напряжением, значит, клеммы COM и NO не имеют целостности.

Клемма NC - это нормально закрытая клемма. Это клемма, на которую можно подавать питание, даже если реле не получает никакого или достаточного напряжения для работы.

Клемма NO является нормально открытой клеммой. Это клемма, на которой вы размещаете желаемый выход, когда реле получает номинальное напряжение. Если на клеммах COIL нет напряжения или напряжение недостаточное, выход разомкнут и не получает напряжения. Когда клеммы COIL получают номинальное напряжение или немного ниже, клемма NO получает достаточное напряжение и может включить устройство на выходе.

2. датчик температуры DHT

DHT11 - это датчик влажности и температуры, который генерирует откалиброванный цифровой выход. DHT11 может взаимодействовать с любым микроконтроллером, таким как Arduino, Raspberry Pi и т. Д., И получать мгновенные результаты. DHT11 - недорогой датчик влажности и температуры, обеспечивающий высокую надежность и долгосрочную стабильность.

3. ESP8266 Полное описание

WiFi-модуль ESP8266 - это автономный SOC со встроенным стеком протоколов TCP / IP, который может предоставить любому микроконтроллеру доступ к вашей сети WiFi. ESP8266 может размещать сетевые функции приложения из другого приложения. Каждый модуль ESP8266 предварительно запрограммирован с помощью AT-команды.

ESP8266 поддерживает APSD для приложений VoIP и интерфейсов сосуществования Bluetooth, он содержит самокалиброванный радиочастотный модуль, позволяющий ему работать в любых рабочих условиях, и не требует внешних радиочастотных компонентов.

Функции

  • 802.11 б / г / л
  • Wi-Fi Direct (P2P),
  • soft-API: интегрированный стек протоколов TCP / IP
  • Встроенный переключатель TR, балун, малошумящий усилитель, усилитель мощности и согласующая сеть
  • Интегрированные PLL, регуляторы, DCXO и блоки управления питанием
  • Выходная мощность +19,5 дБм в режиме 802.11b
  • Ток утечки при отключении питания <10 мкА
  • Флэш-память 1 МБ
  • Встроенный 32-разрядный ЦП с низким энергопотреблением может использоваться в качестве процессора приложений
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU и агрегация A-MSDU и защитный интервал 0,4 мс
  • Пробуждение и передача пакетов менее 2 мс
  • Потребляемая мощность в режиме ожидания <1,0 мВт (DTIM3)

Описание контакта, как показано на изображении i34.

Для подключения модуля ESP к Arduino UNO нам понадобится регулятор напряжения Lm1117 3.3 или любой другой регулятор, потому что Arduino не может обеспечить 3.3 В для ESP8266.

Примечание: - Во время загрузки кода нажмите кнопку вспышки, затем нажмите кнопку сброса один раз, а затем отпустите кнопку вспышки, как показано на изображении i29.

Для подключения датчика и реле DHT11 мы используем два контакта GPIO модуля ESP8266. После загрузки кода вы можете отключить контакты RX, TX, GPIO0. Я использовал GPIO0 для датчика DHT11 и GPIO2 для реле. Датчик DHT11 отлично работает с ESP8266, но для реле нам нужна одна дополнительная вещь, а именно оптоизолятор или оптопара. Смотрите изображение i30, i31, i32 и i33.

Шаг 5: Подключения

ESP8266 ===> DHT11GPIO0 ===> Выходной контакт

ESP8266 ===> RelayGPIO2 ===> Вход

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Кнопка сброса ===> RST

Кнопка Flash ===> GPIO0

Шаг 6: проверка всего

Проверяем все
Проверяем все
Проверяем все
Проверяем все
Проверяем все
Проверяем все
Проверяем все
Проверяем все

Мы успешно создали наше приложение, навыки и наше оборудование готово. Итак, пора проверить.

Для этого ваш ESP8266 включен, потому что наш сервер работает на ESP8266. Здесь я не подключал датчик к ESP8266, я просто проверяю, работает он или нет, но вы можете подключить датчик, реле к ESP8266. Как только он будет подключен к Heroku, вы увидите, что он подключен. Для тестирования перейдите в созданный вами навык Amazon, затем нажмите на тестовую страницу. Как только он убедится, что он работает, я подключу свой датчик к ESP8266. Вы можете увидеть результаты, как показано на изображениях i35, i36, 37, 38, 39, 40.

Если вы используете его без подключения ESP8266, вы получите эту ошибку, как показано на изображении i41.

Высказывание, которое вы можете использовать

установите переключатель триггера на {Numbers} проценты {tmp_scale}

Пример: - установите триггерный переключатель на влажность 50 процентов.

{query} - это состояние переключателя

ex- on / off - состояние переключателя

{Switch_State} переключатель триггера

ex -on / off триггерный переключатель

установите переключатель триггера на {Numbers} градус {tmp_scale}

ex - установить триггерный переключатель на 76 градусов по Фаренгейту

ex - установить триггерный переключатель на 24 градуса Цельсия

поверните переключатель {Switch_State}

ex - включить / выключить переключатель

См. Изображения с i41 по i46 для получения результатов.

Во время разговора с AlexaAlexa попросите arduino включить / выключить триггер.

Алекса, попроси arduino установить триггер переключателя на 24 градуса Цельсия.

Алекса, попроси arduino установить триггер переключателя на влажность 50%

Алекса, попроси arduino включить / выключить

Шаг 7: Схема VUI (голосового интерфейса пользователя)

Схема VUI (голосового интерфейса пользователя)
Схема VUI (голосового интерфейса пользователя)

Шаг 8: демонстрация

Image
Image

1. Установите триггер для температуры и влажности.

2. Установите триггер на 20 градусов Цельсия.

3. Установите триггер на влажность 80%.

Шаг 9: Схема

Рекомендуемые: