8000 GitHub - Korhog/yandex-iot-core-alice: Smart home Yandex backend based on Yandex cloud function and ESP8266 (ESP32)
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Korhog/yandex-iot-core-alice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yandex-iot-core-alice

Smart home Yandex backend based on Yandex cloud function and ESP8266 + WS2812B (Arduino IDE + FastLED)

Схема работы

Yandex.Cloud

Для начала нужно настроить окружение в Yandex.Cloud, для этого идем на https://cloud.yandex.ru/ и в верхнем правом углу жмем Подключиться

img1

на следующем экране подтверждаем ознакомление с условиями использования, и жмем Войти

img2

после этого создается наше облако

Платежный аккаунт

Для работы в облаке Yandex необходим платежный аккаунт, по-этому сразу на главной странице каталога видим баннер:

img3

В платежном аккаунте требуется привязать карту. Это формальность и данное решение будет полностью бесплатным. По-этому жмем Создать аккаунт и заполняем все необходимое. Для привязки карты потребуется списание 11 рублей, после привязки эти деньги вернутся на счет.

Сервисный аккаунт

Для хранения состояния устройств используется serverless YDB, для подключения к которой необходим сервисный аккаунт.

На главной странице каталога переходим в раздел Сервисные аккаунты. В верхнем правом углу жмем Создать сервичный аккаунт, заполняем имя, описание и добавляем роль ydb.editor

#TODO

БД для хранения состояния

TODO

MQTT брокер

TODO

Yandex Cloud Function

TODO

Для бекэнда навыка умного дома в этом проекте используется Yandex Cloud Function на языке Python.

TODO

Arduino IDE

http://arduino.esp8266.com/stable/package_esp8266com_index.json

р 8000 абота с ESP8266 через Yandex IoT Core MQTT

настройка скетча

Device CFG

В папке со скетчем для Arduino нужно создаться файл cfg.h, и в нем прописать нужные параметры

// WiFi client settings.
const char *_ssid = "";     // WiFi SSID.
const char *_password = ""; // WiFi password.
// Yandex CLOUD.
const char *_username = "";         // Yandex IoT broker ID.
const char *_devicepassword = "";   // Yandex IoT broker password.
  • проверка через Yandex Cli

Навык умного дома

авторизация через Я.ID

В отличии от навыков Алисы, навыки умного дома требуют авторизацию по протоколу oauth 2.0. Для личного использования можно воспользоваться Я.ID.

Переходим, логинимся и создаем новое приложение. Внизу, где раздел Какие данные вам нужны? ищем раздел Умный дом Яндекса • iot и ставим галочки

- Просмотр списка устройств умного дома
- Управление устройствами умного дома

Яндекс.Диалоги

Далее идем в консоль разработчика Яндекс Диалоги

выбираем Создать диалог и выбираем Умный дом и заполняем настройки:

  • Название: пишем как будет называться наш умный дом
  • Backend: выбираем Функция в Яндекс Облаке и раскрывающемся списке ниже выбираем функцию, которую мы создавали выше
  • Тип доступа: выбираем Приватный. Это позволит только нам активировать данный навык и его не нужно будет модерировать

Далее ниже заполняем все обязательные поля на свое усмотрение, сохраняемся и переходим на вкладку Связка аккаунтов и заполняем следующие поля

  • Идентификатор приложения: это Client ID приложения которое мы создавали в Я.ID
  • Секрет приложения: так же берем из Я.ID
  • URL авторизации: https://oauth.yandex.ru/authorize
  • URL для получения токена: https://oauth.yandex.ru/token

img4

Тестирование

В этом разделе можно имитировать работу приложения. В верхнем правом углу жмем плюс и выбираем Устройства умного дома. В списке производителей будет только наш навык, добавляем его и жмем обновить список устройств.

Если все предыдущие пункты выполнены, то в списке устройств появится NodeMCU, добавляем его.

Дальше можно то же самое можно провернуть в приложении Умный дом от Яндекс и пробовать управлять голосом.

About

Smart home Yandex backend based on Yandex cloud function and ESP8266 (ESP32)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0