Бытовая Автоматизация. Начинать

«Инструменты электронных вычислений сегодня довольно тесно интегрированы в нашу повседневную жизнь, но многие из нас понятия не имеют, каков потенциал этих самых инструментов и как мы можем его использовать; или догадываются, но неспециалисту это затрудняют. Хочу рассказать о своем опыте расширения функционала своей домашней электроники.

Мои друзья, которым я показывал свои разработки, называли их системой «умный дом».

Лично мне это имя не нравится, так как «ум» — понятие довольно сложное и, на мой взгляд, присущее не каждому человеку.

И говорить о каком-либо интеллекте в компьютерах пока рано.

Я предпочитаю термины автоматизация и автоматизация.

Упрощенно электронный мир моей квартиры изображен на следующем рисунке:

Бытовая автоматизация.
</p><p>
 Начинать

Где функции между устройствами распределены следующим образом: 1) Сервер — маломощный компьютер с большим объемом дискового пространства, источником бесперебойного питания и достаточно шумной системой охлаждения.

Спрятан где-то в шкафу и спать не мешает. 2) Десктоп – тихий неигровой компьютер с аудиосистемой для просмотра фильмов, прослушивания музыки и серфинга.

3) Определенное количество других вычислительных устройств: смартфон, планшет, ноутбук жены и мой ноутбук.

На мой взгляд, это очень распространенный список «гостей» для любой современной семьи.

Очень часто в качестве медиаплеера используют рабочий стол, но включать/выключать и управлять процессом, сидя рядом, не комфортно: переключать песню хочется, не вставая с дивана; в конце фильма хочется перевернуться и заснуть вместо того, чтобы встать и выключить рабочий стол и усилитель.

Ведь вы хотите, чтобы компьютер перед сном включил немного музыки и выключился, а утром включился сам вместо будильника.

Конечно, вокруг нас много разных плееров, так или иначе выполняющих подобные функции, но компьютер этого сделать почему-то не может (пульт от AVerMedia не впечатлил, а с переходом на x64 вообще перестал работать).

Итак, я хочу автоматизировать следующие функции моего рабочего стола: 1) Вкл.

/выкл.

; 2) Управление медиаплеером (вперед/назад, тише/громче, старт/стоп) 3) Включите/выключите стереоусилитель; 4) выполнять все вышеперечисленное по графику.

Для начала этого достаточно.

Давайте проанализируем, что и где мы можем сделать.

1) Компьютер Выключить компьютер достаточно просто — вызвать функцию Windows API (SetSuspendState из библиотеки Powrprof.dll).

Включить его немного сложнее, но задача становится намного проще, если не выключать компьютер, а перевести его в спящий режим.

Теперь его можно будить либо по активности USB-устройств (с соответствующими настройками), либо с помощью технологии Wake-on-Lan (о том, что это такое, можно прочитать здесь).

здесь ).

Учитывая, что у меня всегда доступен сервер, он без проблем мог отправить команду пробуждения на рабочий стол.

2) Аудиоплеер Практически у любого современного плеера есть описание его API. Я использую АИМП.

Описание его API доступно на сайте разработчика, а готовый код на C# можно найти в Google. Библиотека позволяет управлять громкостью системы ( НАудио ), который, кстати, умеет много полезного и может быть взят за основу альтернативного аудиоплеера.

3) Усилитель Здесь дела обстоят несколько сложнее.

Лично у меня усилитель достаточно старый (электроника Д1-012-Стерео, 1982 года выпуска) и ничего не знает о спящих режимах.

Включается и выключается механической кнопкой.

Одно дело оставить спящий компьютер без присмотра (это обычное дело), и совсем другое оставить усилитель с таким сроком выдержки.

В Интернете можно найти множество возможных решений этой проблемы на любой цвет и вкус.

Мне нравится технология 1-Wire, с которой я уже сталкивался раньше.

Вы сможете получить базовое представление о технологии здесь .

После изготовления простого оборудования схему устройства можно перерисовать следующим образом:

Бытовая автоматизация.
</p><p>
 Начинать

(Я не рассматриваю здесь работу с датчиками температуры и их отображение для наглядности и демонстрации функционала, а также наличие более одной управляемой розетки.

Теоретически максимальное количество одновременно подключаемых устройств ограничено, но значение, на масштаб однокомнатной квартиры настолько велик, что о нем беспокоиться не стоит) Для начала нам необходимо собрать переходник с порта связи компьютера на шину 1-Wire. Так как я использовал COM-порт, то сначала собрал преобразователь RS232 -> UART ( по этой схеме ) А далее сам переходник - по следующему (поскольку я не особо разбираюсь в электронике, то за помощью в выборе и советом по схемам обратился к специалисту):

Бытовая автоматизация.
</p><p>
 Начинать

К сожалению, нет фотографий того, как это получилось, потому что я спрятал эту штуку в трудноразборный корпус (и использовал много изоленты, знаю, это моветон, но очень хотелось увидеть все в действии, т.к.

как можно быстрее).

Для управления розеткой будем использовать схема .

И вообще, по этому адресу вы сможете найти много полезной информации.

Вот как выглядит сокет в моей конструкции: Плата с подключением к шине 1-Wire (вверху) и расположением симистора (внизу):

Бытовая автоматизация.
</p><p>
 Начинать

Розетка и симистор:

Бытовая автоматизация.
</p><p>
 Начинать

Теперь у нас в руках есть все необходимое «оборудование» и можно переходить к программированию.

Типичный путь управления я определил так: планшет -> сервер -> компьютер.

Поскольку устройств здесь три, нам понадобится три модуля, по одному на каждое устройство.

На сервере нам нужно будет обслуживать запросы веб-интерфейса (это самое простое решение, охватывающее достаточно широкий спектр портативных и других устройств), управлять розеткой и передавать команды клиенту.

Что касается шины 1-Wire, то я решил не изобретать велосипед, а использовать готовые драйвера и обертку для .

Net. Драйверы Обертка для .

Net ВНИМАНИЕ! в ранних версиях есть ошибка в работе с датчиком температуры по схеме внешнего питания, не знаю, исправлена ли она сейчас, но имейте в виду, что если этот функционал нужен, то нужно будет немного доработать исходный код. Способов организации взаимодействия двух компьютеров/процессов существует великое множество.

Я выбрал технологию .

Net Remoting, которая хоть и устарела, но вполне подходит для наших целей.

С его помощью веб-форма взаимодействует с сервером, а сервер с клиентом.

Сначала я хотел описать либо свой тестовый проект, либо абстрактный простой пример, но потом решил, что описание достаточно громоздкое и не несет никакой смысловой нагрузки, поэтому приведу лишь скриншоты оконных интерфейсов, которые я использую для отладки всю схему и тестируйте поступающие идеи.

Форма сервера.

Сердце системы, собирающее данные о температуре с внешних (1-Wire) и внутренних (материнская плата, с использованием проекта Открытый аппаратный монитор ) датчики.

Поддержка всей инфраструктуры и мониторинг состояния ADSL-модема через телнет (мой не знает, как восстановить соединение, приходится помогать закрывать шторку):

Бытовая автоматизация.
</p><p>
 Начинать

Клиент. Отображает входящие команды от сервера и позволяет инициировать некоторые из них:

Бытовая автоматизация.
</p><p>
 Начинать

Веб-форма.

Примитивно, громоздко, но на планшете выглядит хорошо и работает ;)

Бытовая автоматизация.
</p><p>
 Начинать

Перспективы Я уверен, что каждый, присмотревшись к своему окружению, сможет предложить 5-10 идей по автоматизации своей повседневной жизни.

И вовсе не обязательно сразу приступать к изучению схемы управления газовым котлом (если он у вас есть); для первых экспериментов вполне подойдет освещение в квартире и вентиляция в ванной и на кухне.



Синтез и распознавание речи

У Microsoft есть платформа для синтеза и распознавания человеческой речи, которая находится в свободном доступе.

Скачать движок и модули синтеза и распознавания можно здесь: Время выполнения ; Языки выполнения .

Стоит отметить, что само распознавание и синтез выполнены достаточно хорошо.

Это, конечно, не то, что мы видим в научно-фантастических фильмах, но это то, что работает и может быть использовано на практике сегодня.

При тестировании распознавания голоса я столкнулся с неудобством, заключающимся в том, что мне приходилось тянуться к микрофону, но если бы я до него дотянулся, то смог бы сделать все остальное.

Но было очень интересно попробовать.

Для «доступа» к компьютеру я использовал кодовую фразу, после чего он начал «слушать» команду (некоторое время после первой команды последующие воспринимались без предварительной фразы), но оказалось, что произнесение кодовая фраза каждый раз, когда тебе что-то требовалось от компьютера — чертовски неудобно.

А сегодня увидел видео про очки от Google и понял, что лучше сегодня просто ничего нет и с голосовым управлением надо немного подождать.

А вот синтезатор речи гармонично вписывается в утренний будильник и сообщает текущее время.

Далее я планирую «научить» его сообщать прогноз погоды и курсы валют.

Безопасность

И последнее, но не менее важное: не забывайте об элементарных правилах безопасности.

В моем случае сайт недоступен из внешнего мира и можно не беспокоиться о злоумышленниках, но если вы планируете открыть доступ к внешнему миру, будьте бдительны, ведь очень наивно рассчитывать, что вас окружают только добрые и отзывчивые люди.

Одно время мой модем держал открытым стандартный порт для RDP-соединений, и оказалось, что «внешний мир» постоянно пробовал всевозможные логины и пароли для подключения.

Лучше не знать на личном опыте, что будет, если на ваш файловый сервер проникнет какой-нибудь молодой (или не очень) хакер.

Удачи в ваших экспериментах! Теги: #Электроника для начинающих #программирование #синтез речи #автоматизация

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.