Говорящая сигнализация с голосом своими руками
Возможно вы уже видели ролики с демонстрацией подобной системы. В разных местах ее называют по-разному: smart sirena, говорящий колокол, умная сигнализация и т.д. Сегодня мы поделимся с Вами информацией, о том как самостоятельно можно сделать говорящую сигнализацию, которая будет разговаривать любым голосом, например голосом трансформера, Жириновского, или любым другим.
Стоимость деталей для самостоятельной разработки вам обойдется примерно в 1000-1500 рублей.
Видео с демонстрацией умной сигнализации
Автомобильная сигнализация, как сделать самому
Для реализации данного проекта нам потребуется громкоговоритель (рупор), arduino nano, модуль mp3 плеера для ардуино («dfplayer mini»), несколько резисторов и преобразователь напряжения 12-5 вольт. Звуки необходимо записать на sd-карту. Файлы должны иметь имена 0001.mp3, 0002.mp3, 0003.mp3.
Схема для сборки
Очень простая и выглядит следующим образом:
Управляющий поступает в плюсового провода штатной сигнализации и подключается к 7 пину ардуины.
Для прошивки ардуино потребуется установить библиотеку mp3TF.h (скачать библиотеку)
Cкетч для контроллера:
#include
mp3TF mp3tf = mp3TF ();
int buttonPin1 = 7;
int buttonState1 = 0;
const int ledPin = 13;
int count = 0;
unsigned long myTimer1 = 0;
int F1 = 0;
int S1 = 1;
void setup () <
mp3tf.init (&Serial);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin1, INPUT);
delay (5000);
myTimer1 = millis();
>
void loop () <
buttonState1 = digitalRead(buttonPin1);
if (buttonState1 == HIGH) <
F1 = 1;
digitalWrite(ledPin, HIGH);
>
else<
digitalWrite(ledPin, LOW);
>
if (F1 == 1 && S1 == 1) <
myTimer1 = millis();
S1 = 0;
>
if (millis() — myTimer1 >= 1000) <
F1 = 0;
S1 = 1;
if (count == 1) <
mp3tf.play (1);
delay (3000);
>
if (count == 2) <
mp3tf.play (2);
delay (3000);
>
if (count >= 5) <
mp3tf.play (3);
delay (3000);
>
count = 0;
>
else <
if (buttonState1 == HIGH) <
count = count + 1;
delay (80);
>
>
>
Купить говорящую сигнализацию
Если по каким-либо причинам не можете самостоятельно собрать, но хотите ее установить на свой автомобиль, то можете приобрести уже собранное устройство за 2999 рублей.
OK Google, заведи мне машину
Будущее всё ближе. Лет 10 назад я и не мог подумать, что буду заводить машину с помощью голосовой команды!
Последние годы я с интересом наблюдал за бурным развитием голосовых ассистентов. После выхода Google Home Mini, решил что и мне уже пора попробовать, так как цена стала более-менее адекватной для «игрушки». Первый проект — интеграция голосового помощника с GSM модулем StarLine для автозапуска, контроля координат, напряжения аккумулятора и других параметров, отдаваемых сигнализацией автомобиля. Итак, поехали?
Наличие Google Home не обязательно, всё описанное далее будет работать и с приложением Google Assistant на телефоне. У меня установлен GSM/GPS модуль StarLine M31, но должно работать со всеми GSM сигнализациями от StarLine.
Общая схема приложения для Google Assistant
1. DialogFlow.com
Для начала нам надо создать приложение (agent) на dialogflow (бывший API.AI).
Регистрируемся с помощью Google аккаунта к которому у нас будет привязан Google Home.
К сожалению, русский язык пока не доступен для Google Assistant, выбираем английский.
Далее нам надо создать Intents. Intent в терминологии DialogFlow — одна из веток диалога отвечающая за определенное действие. В нашем случае это будут: GetBattery, GetTemperature, StartEngine, StopEngine. Так же существует Default Intent, срабатывающий в самом начале, обычно это приветствие и краткий рассказ о том, что можно делать с помощью данного приложения.
В каждом Intent нам необходимо указать примеры голосовых команд (User says), желательно по 5-10 разных вариантов.
Во всех Intents, кроме дефолтного, нам необходимо отправлять запросы к нашему скрипту (WebHook), поэтому ставим Fulfillment — Use webhook.
2. WebHook для взаимодействия с сервером Starline
Нам нужен скрипт который получает Intent из запроса от DialogFlow и дергает команды Starline. Быстрее всего у меня получилось реализовать это на Python+Flask.
Взаимодействие со StarLine взято отсюда + прочекано на актуальность снифером в браузере.
Для запуска на сервере я использовал gunicorn
+ nginx в качестве реверс прокси.
Учтите, HTTPS обязателен!
Да, пользуясь случаем, хочу обратиться к команде StarLine — ребята, почему бы не сделать нормальный API с документацией? Глядишь и интеграций со сторонними продуктами стало бы в разы больше?
3. Тестируем в симуляторе и на реальном усройстве
А вот и результат тестирования в реальном мире
Единственный косяк, в данной версии он отвечает «Engine started» до реального запуска двигателя так как не успевает дождаться ответа от Starline.
1. Запрос местоположения у Google Assistant, озвучивание расстояния до машины (Starline умеет отдавать координаты). Пока непонятно как для WebHook на Python запросить местоположение Google Home.
2. Упростить интеграцию Google Starline, тогда отпадёт необходимость хардкодить пароль. Без участия со стороны Starline, как я понимаю, это не возможно.
1. Google Assistant не успевает дождаться от сервера Starline ответа о статусе запуска двигателя
2. Пока при тестировании можно использовать только дефолтное имя приложения(Invocation) — Hey Google, talk to my test app.
ГОЛОСОВОЕ УПРАВЛЕНИЕ STARLINE С ПОМОЩЬЮ АЛИСЫ
Всем привет. Т.к. я являюсь обладателем Яндекс станции и сигнализации starline захотелось их связать. Первые попытки это сделать были успешными, но работали через костыли. Не так давно наткнулся, что теперь это все можно сделать легким путем и работает корректно. Проблем у меня пока не возникает. Наткнулся случайно, т.к. не какой рекламы и прочего не видел. Скорее всего это не рекламируют, поэтому многие даже не знаю, что уже можно сделать связку.
Для первоначальной настройки навыка, активируйте его сказав Алисе: «Алиса, запусти навык СтарЛайн» или найдите его через поиск в каталоге навыков (ищем старлайн или starline). После чего следуем инструкциям от помощника. Пароль надо диктовать быстро.
Для приложения StarLine 2 Android надо войти в меню «Аккаунт и приложение» (в правом верхнем углу главного экрана) — «Одноразовый пароль».
Для приложения StarLine 2 iOS необходимо войти в меню (в левом верхнем углу главного экрана), перейти в личный кабинет, и выбрать там пункт «Одноразовый пароль».
ЧТО УМЕЕТ ПОМОЩНИК/НАВЫК?
Он может рассказать информацию по статусам: статус автомобиля, баланс SIM-карты, заряд АКБ, местоположение автомобиля, температура двигателя и салона, пробег, уровень топлива (при условии поддержки данных возможностей оборудованием).
Выполнять команды управления: поставить на охрану, снять с охраны, запустить и остановить двигатель, управление сервисным режимом, запуск предпускового подогревателя, открыть багажник, посигналить, доп. канал.
КАК ИСПОЛЬЗОВАТЬ ПОМОЩНИК/НАВЫК?
Есть несколько вариантов. Запустить навык, после чего уже просить выполнить команды для получения статусов или выполнения команд управления.
Или самый простой вариант, сразу говорить Алисе: «Алиса, спроси у СтарЛайн статус автомобиля», «Алиса, скажи СтарЛайн завести двигатель» и т.д.
Держать в голове такие длинные фразы и тем более постоянно их произносить как не очень хотелось, да и забудешь. Поэтому я настроил сценарии для самых нужных мне команд.
Такие фразы я настроил:
Cкажи СтарЛайн запустить двигатель, Cкажи СтарЛайн остановить двигатель, Cкажи СтарЛайн закрыть машину, Cкажи СтарЛайн открыть машину, Cкажи СтарЛайн открыть багажник, Спроси у СтарЛайн статус автомобиля.
Голосовое управление своими руками
Привет друзья. Сегодня я хочу рассказать и показать Вам свою самоделку, которая использует голосовое управление. Фактически это включатель-выключатель с голосовым управление. Особенностью данной самоделки является то, что данный прибор может не только по голосовой команде управлять нагрузкой, но и может отвечать голосовыми командами, записанными ранее на флеш карту.
По внешнему виду устройство получилось такое невзрачной. Это моя вина, но я не ставил перед собой цели сделать его красивым, просто было лень. Собственно, по этой же причине я вывел минимум приспособлений для управления данным устройством, из которых на передней панели только ручка управления громкостью звука ответчика и приемник флеш карт, который по началу тоже хотел запихать внутрь.
Что же может этот выключатель? Он может выключать 3 нагрузки независимо друг от друга. Работает от следующим образом: в выключателе я организовал повышенную помехоустойчивость от нежелательных включение. Выражается это в том, что для выключения нужной нагрузки нужно сначала обратиться к прибору.
Для обращения необходимо сказать «Ардуино». Я назвал так потому что сердцем этого устройства является голосовой модуль, с котором мы будем в дальнейшим знакомиться, предназначался в первую очередь для конструктора «Arduino». Хотя я ни разу не сталкивался с Arduino и в этом приборе его модули не используются.
Обращаемся к выключателю «Ардуино», если выключатель отвечает «Слушаю», то произноси следующую из трех, назначенных мной, команд: «Лампа», «Гирлянда», «Свет». После принятия команды устройство переведет состояние подключенного прибора на противоположное: если лампа горела – выключит, если не горела – включит. И ответит, пример: «Лампа выключена» или «Лампа включена» …
Проще говоря, наш диалог с выключателем будет состоять следующим образом:
— Ардуино.
— Слушаю.
— Свет.
— Включаю свет.
Можно конечно же было запрограммировать модуль конкретными командами: «Включить свет», «Выключить свет», но я решил сделать так, чтобы одна команда и включала, и выключала.
Все ответы записаны мной на флеш карту. Это обычные файлы WAV формата. Текст читал сайт английского перевода. Это может быть любая другая программа, умеющая читать текст. Или вообще эти ответы можете записать Вы сами или Ваши родственники…
Я не знаю плюс это или минус, но данное устройство чувствительно к тембру голоса. То есть, к примеру, мою жену он пре признавал, пока я не записал отдельно её голос на модуль. И ответы я ей сделал другие: мне отвечает женщина, а ей мужчина. Прикольно, не правда ли?)
Ну теперь давайте наконец перейдем к испытания сего девайса. Включаем в сеть, подключим одну нагрузку.
Необходимо секунд 5 подождать пока загрузиться сам модуль, пока контроллер обратиться к модулю, пока плеер инициализирует флешку и фалы на ней…
Смотрите видео ниже процесса работы…
Вот так вот работает данный выключатель. Теперь давайте посмотрим на начинку выключателя. Снимаем верхнюю крышку. Первая плата плеера с усилителем. Именно она воспроизводит ответы, записанные на флешку. Управляется плата с помощью UART протокола. Команды посылает контроллер расположенный на второй плате, к которой мы вернемся чуть позже. Далее третья плата – блок питания с силовыми ключами выполнена на семестрах. Вся схема имеет гальваническую развязку по напряжению. Плата так же управляется контроллером. Блок питания выдает 5 вольт стабилизированного напряжения. Силовые ключи могут выдержать нагрузку около 200 Вт на канал. Теперь перейдем на вторую плату. На ней расположен контроллер, который всем управляет и модуль распознавания голосовых команд.
Работу, подключение и настройку модуля мы рассмотрим в следующем видео. А сейчас я поясню работу контроллера, который выполнен на atmega8. Модуль распознавший команду дает команду контроллеру по UART, контроллер обработав команду включает или выключат нагрузку и бает команду звуковому модулю на воспроизведение звукового ответа. Вроде всё просто).
Хочу сказать, что делая данную самоделку я не ставил себе задачу сделать серьёзное устройство, скорее игрушку.
В следующем видео вы рассмотрим непосредственно сам модуль, так что подпишитесь на канал, чтобы не пропустить, если конечно данный материал Вас заинтересовал.
Я построил данный выключатель пару лет назад на модуле версии V2. Но в следующем видео мы будем рассматривать более новую версию V3. Так же мы рассмотрим 2 вида работы с этим модулем: простой – это если Вы не владеете программированием и полный – это если Вы умеете программировать микроконтроллеры.
Надеюсь Вам понравилось видео на данную тему. Спасибо за просмотр данного видео. Если Вам понравилось – поставьте лайк, так я буду знать, что Вам это не безразлично. Подписывайтесь на канал, до новых встреч.
Голосовое управление авто
Привет, давно хотел поделиться доработкой своего авто, но второй год лень. Коротко опишу, как я добавил своему авто голосовое управление, а в конце видос.
Я работаю инженером-разработчиком систем «Умный дом» и в качестве хобби-работы разрабатываю различные устройства управления всем и вся!
Не обошел вниманием любимый авто, и похакав CAN шину добавил функцию голосового управления с помощью Siri.
Далее я пошагово покажу, что конкретно я сделал без влезания в технические дебри программирования.
Вводная
При нажатии на кнопку передается определенная команда по CAN шине на исполнитель и/или Блок управления. Для голосового управления авто нужно узнать эти команды и собрать устройство, которое эти команды будет отправлять.
1) Я спаял шилд с CAN чипом для Raspberry Pi. Шилд нужен, чтобы получать/отправлять команды по CAN шине с компьютера Raspberry Pi.
2) Теперь нужно подключиться проводами к CAN шине машины. У нас в машине используется 2 CAN шины (силового агрегата и комфорт), соединенные через gateway, меня интересует только шина Комфорт, которая позволяет открыть/закрыть стекла, управлять центральным замком, музыкой, кондеем и др. Лучше всего к ней подключить в двери, резать провода не нужно, просто в дверную колодку запихиваем еще 2 провода.
3) Для управления с телефона нужен еще WiFi роутер, нашел маленький TP-Link, связал их с Raspberry Pi и запихнул в нишу под рулем, благо у меня там места много.
4) Питание взял от блока предохранителей, он совсем рядом
5) Закрываем все, подключаемся с компьютера по WiFi к CAN шине и сканируем шину. Я написал программу, которая перехватывает все команды от всех устройств в машине. Чтобы узнать какую именно команду передает кнопка стеклоподъемника, я нажимаю и смотрю в какой ячейке изменились значения. Таким способом я вычислил все интересующие меня устройства (стекла, замок, фары, и чего то еще).
7) После того, как я узнал какие команды нужно отправлять, я написал программу-сервер принимающую команды с телефона и отправляющую их в CAN шину машины и написал простую программу для телефона, чтобы управлять авто. Ну а когда Apple пару лет назад представила технологию управления умными дома HomeKit с помощью голосового помощника Siri, то я добавил функцию преобразования голосовых команд в команды управления авто.
Skoda Octavia 2011, двигатель бензиновый 1.8 л., 152 л. с., передний привод, механическая коробка передач — тюнинг
Машины в продаже
Комментарии 16
Можно в CAN отыскать параметр температуры коробки? Через ОБД в моей машине посмотреть не возможно.А VCDS такую информацию выдает.
Vcds берет ее как раз по can, нужно посниффать запросы от vcds
отличный пост, тоже начну изучать коды кан шины очень скоро
На скриншоте подписи к командам предположительные, во время тестов подписывал, многие не подтвердились.