Голосовое управление светом через Алексу

Друзья, настала весна, а значит, пришло время хакнуть радиорозетки и привязать к ним голосовое управление Алексой. :) Как вы знаете, дома я не использую беспроводное соединение, поэтому розетки с WiFi отпадают автоматически. Будем использовать радиорозетки на 433.92МГц, сканировать коды их пульта, а потом все это соединим с Алексой. На данном этапе у Вас уже должна быть установлена операционная система Raspbian Buster Lite и скомпилирована Алекса из AVS SDK. Как это сделать можно прочитать в инструкции “Голосовой помощник Alexa на Raspberry Pi”.

Вам понадобится:

Шаг 1 : Сканирование кодов пульта

Подключаем приёмник к RPi согласно схеме:

Схема подключения передатчика к RPi

Схема подключения приёмника к RPi

Приёмник 433мГц. Модель RWS-371F

Приёмник 433МГц. Модель RWS-371F V1.00

Включаем RPi и заходим на неё через SSH:

ssh pi@192.168.0.XXX

Далее, установим программу rpi-rf. В терминале вводим:

sudo pip3 install rpi-rf

По умолчанию программа использует GPIO17 для передатчика и GPIO27 для приёмника.

Запускаем программу для приёма кодов пульта:

rpi-rf_receive

Она скажет:

[INFO] rpi-rf_receive: Listening for codes on GPIO 27

Направляем пульт от розеток на приёмник и нажимаем кнопки On и Off для каждой розетки, записывая их коды. В терминале вы должны увидеть что-то подобное:

[INFO] receive: 5330691 [pulselength 174, protocol 1]

Скопируйте эти данные для каждой розетки и сохраните в файл.

Все, на этом сканирование кодов розеток завершено, выключаем RPi и снимаем приёмник. Он нам больше не понадобится.

Шаг 2 : Установка передатчика 433.92МГц

Подсоединяем передатчик согласно схеме:

Схема подключения приёмника к RPi

Схема подключения передатчика к RPi

Передатчик 433.92мГц. Модель - 1442 V1.02

Передатчик 433.92МГц. Модель — TWS-BS V1.02

Также, в боковой решётке моего корпуса RPi я просверлил отверстие диаметром 6.5мм и закрепил в нем коннектор SMA. Далее, отрезаем кабель RG316 нужной длины и один конец припаиваем к SMA коннектору, а другой к антенному выходу на передатчике. Саму микросхему передатчика можно приклеить к внутренней стороне корпуса RPi на термоклей, а провода связать хомутами. Также промажьте термоклеем места пайки антенного кабеля. Аккуратно закрываем корпус RPI и прикручиваем антенну к SMA коннектору. Включаем RPi и заходим на неё через SSH:

ssh pi@192.168.0.XXX

По умолчанию rpi-rf использует GPIO17 для передатчика, но у меня он уж был занят, поэтому я его изменил на GPIO22. Чтобы это сделать, вводим команду в терминале:

sudo nano /usr/local/bin/rpi-rf_send

И заменяем данную строку:

parser.add_argument('-g', dest='gpio', type=int, default=17, 
help="GPIO pin (Default: 17)")

на

parser.add_argument('-g', dest='gpio', type=int, default=22, 
help="GPIO pin (Default: 22)")

Вставляем радиорозетку в сеть 220 вольт и к ней подключаем настольную лампу. Пробуем её включить командой в терминале:

rpi-rf_send -p 174 -t 1 5330691

Где 174 — pulselength, 1 – protocol, а 5330691 – сам код розетки на включение.

После нажатия Enter розетка должна включиться.

Проверим выключение розетки. В терминале вводим:

rpi-rf_send -p 174 -t 1 5330694

Проделайте тоже самое для 2-й и 3-й розетки, чтобы убедиться, что всё работает.

Шаг 3 : Привязываем голосовое управление Алексой

Первой розетке я назначил управление настольной лампой и на PHP написал такой код:

<?
if (isset($_POST['code'])) $code = $_POST['code']; else $code = "";

$code_lamp_light_on = "UKfX1aAC";
$code_lamp_light_off = "zPEGnFPz";

$cmd_lamp_light_on = "rpi-rf_send -p 174 -t 1 5330691";
$cmd_lamp_light_off = "rpi-rf_send -p 174 -t 1 5330694";

if ($code == $code_lamp_light_on) exec($cmd_lamp_light_on);
if ($code == $code_lamp_light_off) exec($cmd_lamp_light_off);
?>

Далее заходим на IFTTT и создаём персональные апплеты для управления розетками. О том как это сделать, можно прочитать в инструкции “Я есть универсальный ИК-пульт с голосовым управлением Алексой…”.

Теперь лампу можно включить командой: «Alexa, trigger light on…»

Profit :)

Понравилась инструкция? Тогда поделитесь ей со своими друзьями или попробуйте написать свою собственную!

Регистрация на сайте

Оставьте свой отзыв

Вы должны Войти, чтобы оставлять отзывы.