- Прекрасний матеріал:
- Частина 1: Налаштування Raspberry Pi за допомогою SSH та VNC
- Частина 2. Налаштування облікового запису розробника Amazon та налаштування голосових служб Alexa на Raspberry Pi:
- Частина 3: Налаштування PubNub та IFTTT для домашньої автоматизації Alexa Pi :
- Частина 3-2: Налаштування IFTTT для служби Amazon Alexa:
- Частина 4: Апаратні підключення та принципова схема:
- Частина 5: Код Python для управління світлодіодом:
Ви коли-небудь замислювалися про динамік, яким можна керувати за допомогою вашого голосу !!! Що робити, якщо ми можемо таким чином контролювати свою побутову техніку та робити її розумнішою? Голосові помічники стають все більш популярними, оскільки ми рухаємося до ери систем на основі ШІ та Інтернету речей. Ви чули про 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 Модель B і SD-карта (8 ГБ або більше)
- Зовнішній динамік з 3,5-мм AUX-кабелем
- Будь-яка веб-камера або мікрофон 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 Control
Якщо ви просто хочете керувати світлодіодом за допомогою голосу, також перевірте наш проект голосового управління світлодіодами на основі 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: КАРТА = 1
3. Для відтворення записаного аудіо введіть цю команду:
omxplayer -p -o local /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.
Щоб протестувати Alexa, просто розбуди її, вимовивши її ім’я! Перевірте демонстраційне відео, подане в кінці підручника.
Ви можете запитати її про температуру вашого міста, щоб перевірити, працює вона чи ні.
Частина 3: Налаштування PubNub та IFTTT для домашньої автоматизації Alexa Pi :
Для управління Raspberry Pi GPIO за допомогою цього Alexa Pi нам потрібна допомога PubNub python SDK та IFTTT. Ми будемо передавати команди IFTTT через Alexa, а PubNub подає сигнал RPi для ввімкнення / вимкнення світлодіода. Тож спочатку ми встановимо PubNub на Raspberry Pi.
Частина 3-1: Встановлення PubNub Python SDK:
PubNub надає API обміну повідомленнями для публікації / передплати будь-якого повідомлення у їхній глобальній мережі. Тут ми використовуємо IFTTT та Alexa, щоб опублікувати повідомлення на PubNub, щоб зробити Raspberry Pi GPIO низьким / високим. Це повідомлення отримало 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: - Знайдіть веб-хуки, натисніть на нього та виберіть Зробити веб-запит
Крок 9: - Webhooks надає REST WEB-запит, використовує ключі Publish і Subscribe, отримані з 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, тому підключіть реле вашого світлодіода 18. Ви можете змінити це в сценарії python.
Частина 5: Код Python для управління світлодіодом:
Знайдіть повний сценарій Python наприкінці цього посібника.
Вам потрібно відредагувати ключ Pub та Sub за допомогою ваших ключів pubnub у коді python.
# Ініціалізуйте ключі публічного вибору pub_key = "***************************" sub_key = "*********** ************* "
Тепер запустіть сценарій
python alexaRpi.py
Тепер ми готові до демонстрації. Перш ніж продовжувати, переконайтеся, що ви використовуєте всі три служби з Частини 1 (три термінали).
Щоб дати будь-яку команду, потрібно пробудити службу Alexa, зателефонувавши “Alexa” кожного разу, коли ви хочете надіслати команду. Ви почуєте звуковий сигнал. Як тільки ви почуєте звуковий сигнал, скажіть “ Alexa Trigger Увімкніть світло. ”Ви бачите, як світло вмикається за мить. А потім, якщо ви скажете “ Alexa Trigger Turn off the Light ”, світло має вимкнутись.
Це воно…. Ви можете додатково додати реле для керування приладом змінного струму, навіть ви можете керувати багатьма приладами, використовуючи більше реле та більше контактів GPIO Raspberry pi.
Перевірте повний код та демонстраційне відео нижче. Також перегляньте всі наші проекти з автоматизації будинку тут.