- Необходимый материал:
- Часть 1: Настройка Raspberry Pi с SSH и VNC
- Часть 2: Настройте учетную запись разработчика Amazon и настройте голосовые службы Alexa на Raspberry Pi:
- Часть 3: Настройка PubNub и IFTTT для домашней автоматизации Alexa Pi :
- Часть 3-2: Настройка IFTTT для службы Amazon Alexa:
- Часть 4: Аппаратные соединения и принципиальная схема:
- Часть 5: Код Python для управления светодиодом:
Вы когда-нибудь задумывались о динамике, которым можно управлять по голосу !!! Что, если мы сможем таким образом контролировать нашу бытовую технику и сделать ее умнее? Голосовые помощники становятся все более популярными по мере того, как мы приближаемся к эре систем на основе AI и IoT. Вы слышали о Google Assistant, Apple Siri и Amazon Alexa . Все это системы искусственного интеллекта на основе голоса, что отличает их друг от друга, так это их экосистемы, и именно здесь Amazon Alexa выделяется больше всего. Google, Apple и Amazon, все эти компании уже выпустили свои умные колонки, но Amazon первой представила умные колонки. Amazon echo, Echo Dot Spot и т. Д. - это умные колонки, доступные на рынке.
Amazon предоставляет API для использования своей очень популярной голосовой службы Alexa. Это открытый исходный код, доступный на Github. Кроме того, вы можете установить или интегрировать Alexa на пользовательские устройства, такие как Raspberry Pi, и получить на этом устройстве полную функциональность Amazon Echo.
Используя голосовой сервис Alexa, мы можем воспроизводить музыку, получать информацию о погоде, бронировать билеты и многое другое. Все, что вам нужно сделать, это спросить'. В этом руководстве мы увидим, как мы можем управлять Raspberry Pi GPIO с помощью сервисов Alexa Voice для свечения светодиода.
Необходимый материал:
Требования к оборудованию:
- Raspberry Pi 3 или Raspberry Pi 2 Model B и SD-карта (8 ГБ или больше)
- Внешний динамик с кабелем AUX 3,5 мм
- Любая веб-камера или микрофон USB 2.0
- Модуль реле
- СВЕТОДИОД
Примечание. Веб-камера имеет встроенный микрофон, поэтому мы будем использовать его вместо микрофона USB 2.0.
Программные приложения и веб-требования:
- Зарегистрируйте учетную запись в Alexa Voice Services
- Зарегистрируйте учетную запись в PubNub
- Зарегистрируйте аккаунт в IFTTT
Мы также предполагаем, что ваш Raspberry pi уже настроен с ОС Raspbian и подключен к Интернету. Установив их, продолжим обучение. Если вы новичок в Raspberry Pi, сначала прочтите Начало работы с Raspberry Pi.
Весь учебник в основном разделен на 5 частей, а именно:
- Если у вас нет монитора, нам нужно настроить Raspberry Pi с SSH и VNC, а также проверить подключение USB-микрофона.
- Настройте своего разработчика Amazon и установите Alexa на Raspberry Pi
- Настройка PubNub и IFTTT для Alexa Home Automation
- Подключение оборудования
- Код Python для управления Alexa Pi GPIO
Если вы просто хотите управлять светодиодом с помощью голоса, также проверьте наш проект светодиодного управления с голосовым управлением на основе Bluetooth.
Часть 1: Настройка Raspberry Pi с SSH и VNC
Сначала мы подключим Raspberry Pi к SSH и VNC. Для этого следуйте инструкциям на официальном сайте Raspberry Pi, ссылки приведены ниже.
Для SSH: ссылка SSH
Для VNC: ссылка VNC
Если у вас есть Monitor, вы можете оставить этот шаг и сразу перейти к шагу 2, который является настройкой голосовой службы Alexa (Avs). Перед этим мы должны проверить подключение микрофона.
Проверка микрофона веб-камеры с помощью Raspberry Pi:
1. Откройте терминал Raspberry Pi и введите команду arecord -l. Это отобразит аппаратные устройства, подключенные к Raspberry Pi, как показано ниже:
Карточка 1 - это микрофон вашей веб-камеры, который мы собираемся использовать. Если он не отображается, возможно, ваша веб-камера неисправна.
2. Теперь проверьте, работает ли микрофон, выполнив команду записи звука как:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. Чтобы воспроизвести записанный звук, введите эту команду:
omxplayer -p -o локальный /home/pi/Desktop/test.wav
Если вы подключили Raspberry Pi к монитору с помощью кабеля HDMI, то по умолчанию аудиовыход идет через динамик вашего монитора (если в нем есть встроенный динамик). Итак, чтобы изменить его на 3,5 мм, вам нужно ввести следующую команду:
sudo raspi-config и перейдите к опции Advance.
Выберите Audio из списка -> выберите Force 3.5mm -> выберите Ok и перезапустите Raspberry Pi.
Теперь вы должны услышать звук через разъем 3,5 мм.
ПРИМЕЧАНИЕ. Если вы хотите увеличить или уменьшить громкость входящего голоса для микрофона, введите в терминале alsamixer . Выберите звуковую карту в терминале, нажав F6.
Нажмите F4, чтобы изменить усиление микрофона в дБ, и установите его по своему усмотрению.
Если у вас есть микрофон USB 2.0, выполните те же действия, чтобы проверить микрофон. Здесь мы использовали веб-камеру для USB-микрофона.
Часть 2: Настройте учетную запись разработчика Amazon и настройте голосовые службы Alexa на Raspberry Pi:
Мы уже подробно объясняли это в нашем предыдущем руководстве, где мы создали интеллектуальный динамик Amazon Echo. Здесь мы сосредоточены на управлении Raspberry Pi GPIO с помощью Alexa, поэтому мы не будем снова объяснять весь процесс, поэтому прочитайте предыдущую статью и подготовьте свой динамик с голосовыми службами Alexa, установленными на вашем Raspberry pi.
Чтобы проверить Алексу, просто разбудите ее, сказав ее имя! Посмотрите демонстрационное видео, представленное в конце урока.
Вы можете спросить ее о температуре в вашем городе, чтобы проверить, работает она или нет.
Часть 3: Настройка PubNub и IFTTT для домашней автоматизации Alexa Pi :
Для управления GPIO Raspberry Pi с помощью этого Alexa Pi нам понадобится помощь PubNub python SDK и IFTTT. Мы будем давать команды IFTTT через Alexa, а PubNub дает сигнал RPi включить / выключить светодиод. Итак, сначала мы установим PubNub на Raspberry Pi.
Часть 3-1: Установка PubNub Python SDK:
PubNub предоставляет API обмена сообщениями для публикации / подписки на любое сообщение в своей глобальной сети. Здесь мы используем IFTTT и Alexa для публикации сообщения в PubNub, чтобы сделать GPIO Raspberry Pi низким / высоким. Это сообщение получает Raspberry Pi, и Pi соответственно включает или выключает светодиод. Выполните следующие шаги, чтобы настроить PubNub на Raspberry Pi:
Шаг 1. Откройте терминал на своем RPi и выполните следующую команду для установки SDK:
sudo pip установить pubnub == 3.9.0
Установите только версию 3.9.0, другая версия не будет работать со скриптом python, который мы собираемся запустить в последнем.
Шаг 2: Теперь перейдите в PubNub и войдите в систему, используя свои учетные данные.
Шаг 3:. Получите ключи публикации и подписки, которые мы будем использовать позже.
Часть 3-2: Настройка IFTTT для службы Amazon Alexa:
IFTTT - это бесплатная веб-служба, которая позволяет пользователям создавать цепочки простых условных операторов, называемых «рецептами», которые запускаются на основе изменений в других веб-службах, таких как Gmail, Facebook, Instagram и. IFTTT - это аббревиатура от «If This Then That».
В этом проекте IFTTT используется для настройки Raspberry Pi GPIO LOW / HIGH на основе речевой команды, полученной службой Alexa, работающей на RPi.
Выполните следующие шаги, чтобы создать апплет:
Шаг 1: - Войти в IFTTT с учетными данными или Зарегистрируйтесь , если у вас нет учетной записи на нем.
Шаг 2: - В «Моих апплетах» нажмите « Новый апплет».
Шаг 3: - Нажмите + это
Шаг 4: - Найдите Amazon Alexa и нажмите на нее, войдите в систему, указав данные своей учетной записи разработчика Amazon.
Шаг 5: - Выберите триггер, произнесите определенную фразу
Шаг 6: - Укажите фразу « включи свет» и нажмите « Создать триггер».
Шаг 7: - Нажмите на + это
Шаг 8: - Найдите Webhooks, щелкните по нему и выберите « Сделать веб-запрос».
Шаг 9: - Webhooks предоставляет веб-запрос REST, используйте ключи публикации и подписки, полученные из PubNub, и измените следующий URL-адрес.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Шаг 10: - Вставьте измененный URL-адрес в текстовое поле URL-адреса.
Шаг 11: - Установите Метод как GET, Контент как application / json и нажмите « Сохранить».
Шаг 12: - Выполните те же шаги, чтобы создать триггер для « выключить свет » и измените URL-адрес на следующий.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
Шаг 13: - Теперь мы готовы со всеми веб-компонентами для демонстрации.
Часть 4: Аппаратные соединения и принципиальная схема:
Для этого проекта нам понадобится простой светодиод для тестирования. Ниже приведена принципиальная схема и подключения оборудования для управления Raspberry Pi GPIO с помощью Amazon Alexa.
Мы будем использовать GPIO18 в нашем скрипте python, поэтому подключите реле вашего LED 18. Вы можете изменить это в скрипте python.
Часть 5: Код Python для управления светодиодом:
Найдите полный сценарий Python в конце этого руководства.
Вам нужно отредактировать Pub и Sub ключ с вашими ключами pubnub в коде Python.
# Инициализировать ключи Pubnub pub_key = "***************************" sub_key = "*********** ************* "
Теперь запустите скрипт
python alexaRpi.py
Теперь мы готовы к демонстрации. Прежде чем продолжить, убедитесь, что у вас запущены все три службы из Части 1 (три терминала).
Чтобы дать любую команду, вам нужно разбудить службу Alexa, вызывая «Alexa» каждый раз, когда вы хотите отправить команду. Вы услышите звуковой сигнал. Как только вы услышите звуковой сигнал, произнесите « Alexa Trigger, включите свет. «Вы можете видеть, как через мгновение загорается свет. А затем, если вы скажете « Alexa Trigger Turn off the Light », свет должен погаснуть.
Это оно…. Вы также можете добавить реле для управления устройством переменного тока, даже если вы можете управлять многими устройствами, используя больше реле и больше контактов GPIO Raspberry pi.
Проверьте полный код и демонстрационное видео ниже. Также проверьте все наши проекты домашней автоматизации здесь.