В октябре прошлого года Яндекс запустил собственного голосового помощника — Алису. С ней можно поговорить на свободную тему (правда, иногда Алиса прикидывается валенком и отвечает невпопад) или попросить найти и включить какую-нибудь песню. В мае текущего года Алису интегрировали в первую «умную» колонку, разработанную Яндексом, — «Станцию». Обратившись к голосовому помощнику в колонке, пользователь может попросить его сделать потише, поставить будильник или напомнить о встрече в календаре. Но на этом возможности Алисы не исчерпываются — голосовой помощник можно сделать частью «умного» дома. Возможность этого на примере кофеварки редакции N + 1 продемонстрировали сотрудник Яндекса Николай Данилов и инженер по освещению Московского театра мюзикла Олег Митин.
Вскоре после запуска Алисы Яндекс представил платформу «Диалоги». Это веб-сервис, который позволяет учить голосового помощника новым, как говорят разработчики, «навыкам». Благодаря «Диалогам» любой пользователь может научить Алису исполнять нужные ему голосовые команды. Тут все относительно просто: распознавание команд производится на стороне Яндекса, а исполнение — в соответствии со списком действий в навыке. Возможности в этом случае практически не ограничены, и на этом базируется идея Данилова и Митина о том, что Алису можно доработать почти что до уровня дворецкого Джарвиса в системе «умного» дома.
Олег Митин «колдует» над кофемашиной с Алисой
Николай Данилов
Реле разработчики решили использовать для того, чтобы обеспечить пусть частичную, но все же развязку между панелью управления кофеварки и управляющей электроникой, сердцем которой стал модуль NodeMCU v.2 на базе контроллера 8266. Этот контроллер во многом похож на всем полюбившуюся Arduino (и даже совместим с инструментами разработчика Arduino IDE), но имеет на борту интерфейс Wi-Fi стандарта IEEE 802.11 b/g/n, позволяющий подключаться к сети на частоте 2,4 гигагерца (параметры подключения задаются либо через веб-интерфейс контроллера, либо в микропрограмме-скетче). Модуль NodeMCU разработчики выбрали потому, что он имеет на борту стабилизированные линии питания внешней слаботочной нагрузки 3 и 5 вольт и интерфейс USB для питания и программирования контроллера.
В базе разработчика ESP8266 есть множество скетчей-примеров, которые показывают, как можно использовать те или иные функциональные возможности контроллера. Для ускорения времени разработки (все-таки этап прототипирования не должен занимать много времени) Данилов и Митин решили использовать готовый скетч «Светофор». Он позволяет с помощью контроллера командами по Wi-Fi переключать состояние одного из трех светодиодов — «вкл» или «выкл». При этом контроллер принимает команды через примитивный веб-интерфейс. Модуль с контроллером и обвязкой из транзисторов, резисторов, диодов и реле был подпаян шлейфом к тактовым кнопкам на панели управления кофемашины.
Навык для Алисы разработчики написали на своем любимом Perl, а скетчи для NodeMCU традиционно пишутся на Lua, но сам контроллер поддерживает и язык C. В новом навыке для Алисы (вызывается командой «Запусти навык «говорящая машина») разработчики реализовали голосовое меню (голосовой помощник сообщает, что «умеет готовить эспрессо, лунго и американо»), реакции на запросы разной сложности (от «эспрессо» до «Алиса, приготовь, пожалуйста, эспрессо») и реакции на запросы сварить кофе, которого нет в «меню». Кроме того, реализовано понятие двойного кофе (при этом контроллер имитирует двойное нажатие на кнопку), есть также возможность повторить последний заказ.
«Материнская» плата с контролером и «обвязкой»
Олег Митин
Фактически способность Алисы осваивать навыки и применение контроллеров, подобных ESP8266, позволяют сделать «умной» почти любую «тупую» домашнюю электронику. А это открывает большие возможности по созданию относительно дешевого «умного» дома. У Данилова и Митина на контроллер и его «обвязку» ушло около 2,4 тысячи рублей, из которых 1400 рублей — оригинальная версия NodeMCU (аналог этого модуля в китайских интернет-магазинах можно найти за вполне вменяемые 200–250 рублей). Причем для управления тем или иным устройством не обязательно даже разворачивать Wi-Fi-сеть — ESP8266 поддерживает режим точки доступа, то есть к контроллеру можно подключиться напрямую.