В октябре прошлого года Яндекс запустил собственного голосового помощника — Алису. С ней можно поговорить на свободную тему (правда, иногда Алиса прикидывается валенком и отвечает невпопад) или попросить найти и включить какую-нибудь песню. В мае текущего года Алису интегрировали в первую «умную» колонку, разработанную Яндексом, — «Станцию». Обратившись к голосовому помощнику в колонке, пользователь может попросить его сделать потише, поставить будильник или напомнить о встрече в календаре. Но на этом возможности Алисы не исчерпываются — голосовой помощник можно сделать частью «умного» дома. Возможность этого на примере кофеварки редакции N + 1 продемонстрировали сотрудник Яндекса Николай Данилов и инженер по освещению Московского театра мюзикла Олег Митин.
Вскоре после запуска Алисы Яндекс представил платформу «Диалоги». Это веб-сервис, который позволяет учить голосового помощника новым, как говорят разработчики, «навыкам». Благодаря «Диалогам» любой пользователь может научить Алису исполнять нужные ему голосовые команды. Тут все относительно просто: распознавание команд производится на стороне Яндекса, а исполнение — в соответствии со списком действий в навыке. Возможности в этом случае практически не ограничены, и на этом базируется идея Данилова и Митина о том, что Алису можно доработать почти что до уровня дворецкого Джарвиса в системе «умного» дома.
Для демонстрации этой идеи была куплена кофемашина Philips, умеющая варить три вида кофе, и россыпь электроники, которая принимала бы команды от Алисы и исполняла их в виде «нажатия» одной из трех кнопок на кофеварке. «Нажатие» заключается в замыкании контактов тактовых кнопок на панели управления. При этом во время доработки необходимо было сохранить и оригинальную функциональность кофемашины, то есть возможность сварить кофе самостоятельно, нажав на кнопку пальцем. В россыпь электроники попали модуль NodeMCU v.2 и четыре комплекта деталей, в каждый из которых вошли диод 1N4148 с высокой скоростью переключения, резисторы с сопротивлением 430 ом и 1 килоом, биполярный транзистор КТ3102 и герконовое реле EDR201 на напряжение срабатывания 5 вольт.
Реле разработчики решили использовать для того, чтобы обеспечить пусть частичную, но все же развязку между панелью управления кофеварки и управляющей электроникой, сердцем которой стал модуль 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. В новом навыке для Алисы (вызывается командой «Запусти навык «говорящая машина») разработчики реализовали голосовое меню (голосовой помощник сообщает, что «умеет готовить эспрессо, лунго и американо»), реакции на запросы разной сложности (от «эспрессо» до «Алиса, приготовь, пожалуйста, эспрессо») и реакции на запросы сварить кофе, которого нет в «меню». Кроме того, реализовано понятие двойного кофе (при этом контроллер имитирует двойное нажатие на кнопку), есть также возможность повторить последний заказ.
В навыке Алисы также реализована возможность «адресной» варки кофе. Например, получив команду «Сделай что-нибудь хорошее для Воложа» (Аркадий Волож — сооснователь Яндекса), Алиса приготовит американо. Разработчики научили Алису и случайному выбору типа кофе: если попросить помощницу сварить кофе «на ее усмотрение», она запустит рандомайзер и, получив от него то или иное число, сварит соответствующий напиток. Наконец, новый навык для Алисы имеет ограниченную возможность интерпретации синонимов (получив запрос «Приготовь маленькую чашку кофе», помощница сварит эспрессо). Управление кофемашиной возможно в рамках той же Wi-Fi-сети, к которой подключен и смартфон с Алисой, но технически несложно наладить управление и через интернет.
Фактически способность Алисы осваивать навыки и применение контроллеров, подобных ESP8266, позволяют сделать «умной» почти любую «тупую» домашнюю электронику. А это открывает большие возможности по созданию относительно дешевого «умного» дома. У Данилова и Митина на контроллер и его «обвязку» ушло около 2,4 тысячи рублей, из которых 1400 рублей — оригинальная версия NodeMCU (аналог этого модуля в китайских интернет-магазинах можно найти за вполне вменяемые 200–250 рублей). Причем для управления тем или иным устройством не обязательно даже разворачивать Wi-Fi-сеть — ESP8266 поддерживает режим точки доступа, то есть к контроллеру можно подключиться напрямую.