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

Друзья, настала весна, а значит, пришло время хакнуть радиорозетки и привязать к ним голосовое управление Алексой. :) Как вы знаете, дома я не использую беспроводное соединение, поэтому розетки с 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 :)

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

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

Дайте свою оценку данной инструкции


Поделитесь этой инструкцией со своими друзьями

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

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