Увімкнення світла голосом. "Алісо, увімкни світло". Голосове керування розумним будинком на базі openHAB. Без програмування та СМС. Налаштування розумних ламп від Xiaomi

Розглянемо кілька експериментальних схем, які реалізують голосове керування навантаженням. В основі частотних фільтрів – мікросхема LMC567CN. Вибір саме цієї мікросхеми обумовлений її економічністю, оскільки передбачається, що мікросхема може використовуватися в пристроях з безтрансформаторним живленням, наприклад, з баластним конденсатором, що гасить. Якщо обмежень щодо економічності харчування немає, можна застосувати біполярний функціональний аналог - мікросхему типу LM567 (вітчизняний клон - КР1001ХА01). На малюнку показано схему, що декодує частоту голосного звуку «(Й”Е)» в командному слові «СВІТЛО»:

У цій та наступних схемах мікрофонний підсилювач реалізований на операційному підсилювачі DA1 типу КР140УД1208. Особливістю мікросхеми є можливість встановлення струму споживання резистором (на схемі - R5), що підключається до виводу 8DA1, що дозволяє використовувати схему в економічному режимі. Коефіцієнт посилення задає резистор R4, включений між висновками 2DA1 та 6DA1. Цим резистором встановлюють чутливість схеми до голосових команд. Резистори R2 і R3 формують віртуальну середню точку живлення DA1, встановлюючи на вході 3DA1, що не інвертує, приблизно половину напруги живлення. З виходу 6DA1 посилений сигнал через розділовий С3 і обмежує струм R6 надходить на обмежувач рівня змінної напруги - два зустрічно паралельні германієві діоди VD1 і VD2. Діоди обмежують сигнал на рівні ~300…400mV від піку до піку. Через R7 та розділовий С6 обмежений сигнал надходить на вхід 3DA2. Резистори R9, R10 та конденсатор С7 задають частоту опорного генератора (центральну частоту ГУН). Резистором R10 домагаються появи низького рівня на виведенні 8DA2 під час вимови команди «СВІТЛО». На стоку транзистора VT1 (загальна точка з'єднання резисторів R11, R12 та діода VD3) сигнал інвертується - з'являється лог.1. Тригер DD1.1 працює в режимі одновібратора, постійна часу якого задана елементами R13 та С9. З зазначеними елементами час дорівнює приблизно одній хвилині.

Як правило, звукові перешкоди мають випадковий та короткочасний характер. Інтегруючий ланцюг R12-С8 необхідний придушення цих перешкод. При декодуванні команди «СВІТЛО» або звуку перешкоди на виході 8DA2 з'являється низький рівень і VT1 закривається. Через R11 та R12 починає заряджатися С8. Час заряду С8 більший за тривалість перешкоди, тому, голосну літеру «Е» у слові «СВІТЛО» слід вимовляти трохи довше звичайного - свЕ-Е-Ет. Коли перешкода припиняється, С8, заряджений до деякого рівня напруги, швидко розряджається через VD3 і відкритий канал стік-виток транзистора VT1. Це найпростіший спосіб відсікти звукові перешкоди з такою самою частотою, що і звук голосної літери «Е». Команда звучить довше завади, тому С8 зарядиться до порога перемикання тригера DD1.1 на вході «S». Тригер переключиться на «одиничне» стан - переважно виході лог.1, але в інверсному - лог.0. Через відкритий VD4 конденсатор С8 швидко розрядиться, а С9 почне заряджатися через R13. Залежно від логіки роботи виконавчого пристрою сигнал управління можна зняти з виходів 1DD1.1 або 2DD1.1. Якщо під час роботи виконавчого устрою знову надійде команда, це нічого не змінить, т.к. С8 зашунтований низьким рівнем напруги 2DD1.1 через відкритий діод VD4. Приблизно через хвилину напруга С9 досягне порога перемикання тригера по входу «R», тригер повернеться у вихідний «нульовий» стан і С9 швидко розрядиться через відкритий VD5. Навантаження знеструмиться. Для перевірки пристрій збирався на заводській перфорованій платі. Замість транзистора КП501А (VT1) було встановлено «телефонний» струмовий ключ типу КР1014КТ1В:

Ролик, що демонструє роботу схеми на рис.1 показаний нижче. Рахунок імітує звукові перешкоди, при цьому видно, що синій світлодіод, встановлений у ланцюзі транзистора VT1, гасне, але лампа не включається - тривалість перешкод мала. Тривалість команди «СВІТЛО» більше – лампа вмикається. Команди «ЛАМПА» або «ГОРІ» не включають лампу:

Відео 1

Другий ролик демонструє роботу пристрою, що реагує на команду "ГОРІ" з автовідключенням навантаження. Схема пристрою не змінювалася - така сама, як на РИС.1, але опорний генератор DA2 підстроювальним резистором R10 налаштований на частоту звуку «І». Крім того, номінал резистора R4 у ланцюгу зворотнього зв'язку DA1 збільшено до 5,1 мегаома, що визначило чутливість підсилювального тракту – команда подається з відстані п'яти метрів від мікрофона. Тут також рахунок імітує звукові перешкоди. Цікаво відзначити, що на команду «Увімкнути» пристрій не реагує, хоча голосний звук «І» за тривалістю збігається з голосним звуком «І» в команді «ГОРІ». Можна припустити, що звук «І» після приголосного звуку «Ч» у команді «Увімкнути» має більш високу частоту порівняно зі звуком «І» після приголосного звуку «Р» у команді «ГОРІ»:

Відео 2

Припустимо, при подачі живлення тригер DD1.1 встановився в стан, при якому на виведенні 2DD1.1 – лог.1, а на виведенні 1DD1.1 – лог.0. Діод VD5 закритий, а VD6 відкритий та шунтує конденсатор С8. Частота опорного генератора DA1 підстроювальним резистором R4 налаштована на частоту звуку "(Й"Е)" в командному слові "СВІТЛО". При вимові команди та декодуванні транзистор VT1 закриється, тому почнеться зарядка С7. При досягненні напругою порога перемикання DD1.1 на вході «S», тригер переключиться в «одиничний» стан при якому на виведенні 2DD1.1 - лог.0, а на виведенні 1DD1.1 - лог.1. Лог.1 надійде на затвор VT2 і відкриє його. Відкритий канал стік/витік VT2 підключить конденсатор С6 паралельно конденсатору С5 - частота опорного генератора знизиться. Пристрій готовий приймати команду «СТОП». Так як частота ГУН змінилася, низький рівень на виведенні 8DA1 зміниться на високий і VT1 відкриється. Тепер через відкритий діод VD5 зашунтований С7, а VD6 - закритий, тому якщо вимовляти команду «СТОП» для відключення навантаження, заряджатися буде С8, що призведе до чергового перемикання тригера DD1.1. У цій схемі так само, як і в схемі на малюнок 1, елементи R7, С7, VD3 і R8, С8, VD4 призначені для відсікання звукових перешкод, частоти яких збігаються з частотами голосних звуків у командних словах. Діоди VD5 та VD6 забезпечують правильний алгоритм роботи, визначаючи черговість зарядки конденсаторів С7 та С8. Ємності конденсаторів С5 та С6 можуть відрізнятися від зазначених на схемі. Спочатку, встановивши конденсатор С5 і підлаштовуючи R4, домагаються реакції на команду СВІТЛО, потім підбирають ємність С6, підключаючи його паралельно до конденсатора С5, щоб була реакція на команду СТОП. Тільки після цього С6 включають у стіковий ланцюг транзистора VT2. На РИС.3 показана схема, що реалізує управління лампою розжарювання командами «ГОРІ» та «СТОП»:

Фактично схема збігається зі схемою малюнку 2, але з деякими відмінностями. Як комутують елементів використовуються аналогові ключі. У складі мікросхеми К561КТ3 (або К1561КТ3) чотири такі ключі. У вихідному стані ключа DD1.2 відкрито, т.к. на виведенні 2DD2.1 - лог.1, а ключ DD1.3 закритий, тому що на виведенні 1DD2.1 - лог.0 і лампа розжарювання EL1 не горить. Відкритим каналом X-Y ключа DD1.2 підстроювальний резистор R12 зашунтований, тим самим виключений з ланцюга опорного генератора, тому частота ГУН визначається елементами R10, R14, С7 і налаштована (резистором R14) на частоту звуку "І" в командному слові "ГОР". У разі декодування команди тригер DD2.1 перемикається, тому ключ DD1.2 закривається, а ключ DD1.3 відкривається. Вмикається світлодіод у реле VS1 і лампа EL1 світиться. Так як ключ DD1.2 тепер закритий, то послідовно з резисторами R10 і R14 включається підстроювальний резистор R12, отже частота ГУН стає нижче. Резистором R12 її налаштовують частоту звуку «Про» у команді «СТОП». Резистори R8 і R9 задають гістерезис перемикання виведення 8DA2, що сприяє більш точному відпрацюванню команд. Ключ DD1.1 працює як інвертор. Світлодіод HL1 під час декодування сигналів гасне. Ця схема також перевірялася на макетній платі та показала позитивний результатроботи:

Демонстраційний ролик показує роботу пристрою, зібраного за схемою малюнку 3. Як і попередніх роликах, рахунок імітує звукові перешкоди, даються інші команди з різними тривалостями голосних звуків:

Відео 3

На малюнку 4 показаний варіант схеми, яка приймає командне слово із трьома голосними літерами. Як приклад вибрано команду «СИСТЕМА». Така команда може використовуватися як електронний блок, що запускає, або служити звуковим «ключом» до активації схеми з іншими голосовими командами. Може використовуватись будь-яке інше командне слово, наприклад, «САНУЗЕЛ» для керування світлом у ванній або туалетній кімнаті квартири:

Відсівання звукових перешкод відбувається інакше, ніж у попередніх схемах - за рахунок послідовного перемикання тригерів, причому наступний тригер фіксує стан попереднього. Якщо на вході з'являється звукова перешкода, то, щоб вплинути на стан навантаження, частота перешкоди повинна змінитись двічі і збігтися з частотами голосних звуків у командному слові в потрібній послідовності, а це, здається, зовсім малоймовірно. У цій схемі вихідна частота ГУН перемикається двічі, таким чином тональний декодер DA2 працює з трьома опорними частотами. У вихідному стані відкритий ключ DD1.2 і частота визначається елементами С7, R11 та R12. Підстроювальним резистором R12 вона налаштована на звук «І». Після того, як буде вимовлено та декодовано звук «І» у складі «СІ», ключ DD1.2 закриється і відкриється ключ DD1.3. Тепер частоту ГУН задають елементи С7, R11 та R15, яким налаштовують реакцію пристрою на звук "(Й"Е)" у складі "СТІ". Після декодування звуку "(Й"Е)" ключ DD1.3 закриється, але відкриється ключ DD1.4, значить, частоту опорного генератора будуть визначати елементи С7, R11 і R18, яким налаштовують частоту ГУН на звук "А" у складі "МА" ». Після вимови та декодування звуку "А" ключ DD1.4 закривається і декодер DA2 перестає працювати - його опорний генератор вимкнений, т.к. закрито всі ключі. Схема повернеться до вихідний станза сигналом RESET, який отримає від виконавчого пристрою після виконання наступних команд або завершення робочого циклу управління.

Якщо на вході з'явиться перешкода, відповідна звуку «І», то тригер DD2.1 перемикається – ключ DD1.2 закриється, а ключ DD1.3 відкриється. Тепер частота перешкоди повинна збігтися із частотою звуку «(Й”Е)». Чудеса у нашому житті трапляються, але дуже рідко. Тому, через час Т=0,7*С8*R13 тригер DD2.1 повернеться у вихідний стан, оскільки працює у режимі одновібратора.

Якщо була команда і за звуком «І» послідував звук «(Й”Е)» (були вимовлені склади СІ-СТЕ), то через відкритий діод VD5 перемкнений стан тригера DD2.1 зафіксується - конденсатор С8 не зможе зарядитися до порога перемикання тригера входу "R". Це ж станеться з тригером DD2.2, якщо за звуком «(Й”Э)» декодується звук «А» (будуть вимовлені всі три стилю СІ-СТЕ-МА) - його перемиканий стан зафіксується відкритим діодом VD7. Кожен основний вихід попереднього тригера з'єднаний з входом даних (D) наступного, тому декодування всього командного слова буде можливим тільки у випадку, якщо голосні звуки йдуть один за одним у строгій (правильній) послідовності. Світлодіоди, підключені до схеми через підсилювачі струму VT1 - VT3, показують декодування голосних звуків. При декодуванні останнього звуку світлодіод «А» залишається увімкненим, поки на схему не надійде сигнал RESET від виконавчого пристрою. При отриманні сигналу RESET світлодіоди перемикатимуться у зворотній послідовності (від «А» до «І»), індикуючи повернення пристрою (тригерних осередків) у вихідний стан. На базі цієї схеми практично випробувана схема з командним словом «Увімкнути» і автовідключення навантаження, показана далі:

Схема декодує голосні звуки (Й”У) та “І”. Зв'язок з виведення 4DD2.1 на висновок 12DD2.2 через VD5, позначений червоним кольором, для демонстрації черговості спрацьовування тригерних осередків. Якщо це з'єднання прибрати, то одновібратор DD2.1 через час Т=0,8 с буде повертатися у вихідний стан незалежно від того, декодована голосна «І» чи ні. На тактові входи «С» тригерів з виходу 8DA2 сигнал після декодування подається через інвертор, тому звук (Й”У) за часом не обмежений. Тільки після закінчення тригер DD2.1 переключиться - на тактовий вхід надійде високий рівень напруги. Тривалість звуку "І" обмежена часом Т=0,8сек. Ланцюжок R13-C9 затримує появу високого рівня напруги на вході 9DD2.2 щодо появи на вході 11DD2.2.

Нижче ролик показує роботу схеми на рис.5. З ролика видно, що після декодування звуку (Й”У) вмикається синій світлодіод, що індикує перемикання першого тригерного осередку, а лампа розжарювання включається лише після декодування звуку «І», тобто. після перемикання другого тригерного осередку, який задає час роботи навантаження за допомогою елементів R15 і C10. Повернення у вихідний стан відбувається у зворотній послідовності: лампа вимикається – одновібратор DD2.2 переключився у вихідний стан, і тільки потім гасне світлодіод – одновібратор DD2.1 переключився у вихідний стан. Подача інших команд не призводить до включення лампи розжарювання:

Відео 4

У пристроях двох останніх малюнках команди подаються звичайним чином без розтягування голосних звуків у складах. А на завершення теми для прикладу наведу ще одну експериментальну схему. Ця схема як «єдиний» пристрій не перевірялася, але її окремі вузли раніше були зібрані та показали позитивний результат у роботі. Схема дозволяє голосом включати, вимикати та регулювати яскравість лампи розжарювання, тобто цей пристрій є голосовим димером. Схема показана малюнку 6:

Керівна частина складається з двох голосових каналів, про роботу яких розказано у схемах на рис.1 і рис.2. Перший голосовий канал (DA2 та DD1.1) декодує команду «СВІТЛО» та керує включенням або вимкненням лампи EL1. Другий голосовий канал (DA3 та DD1.2) декодує дві команди – «ПУСК» та «СТОП», керуючи димуванням. Симистором VS1 управляє мікросхема DA5 типу К145АП2 у типовому включенні. Мікросхема має два входи управління – інверсний 3DA5 та неінверсний 4DA5. Функціональне призначення цих входів однаково - перший короткочасний сигнал відкриє симистор, і лампа ввімкнеться, другий короткочасний сигнал - закриє симистор і лампа вимкнеться. Якщо сигнал керування подавати тривалий час, то мікросхема виробляє імпульси, які плавно відмикають або замикають симистор. Це призводить до зміни яскравості лампи. Якщо вимкнути, а потім увімкнути лампу, то яскравість лампи буде такою самою, як до вимкнення. Логіка роботи цих входів різна – вхід 3DA5 управляється низьким логічним рівнем, а вхід 4DA5 – високим. При декодуванні команди "СВІТЛО" тригер DD1.1 сформує короткий імпульс з низьким рівнем напруги, що включає лампу. При декодуванні команди "ПУСК" тригер DD1.2 встановлюється в "одиничний" стан, тому на вхід 4DA5 надійде високий рівень напруги і яскравість лампи почне плавно змінюватися. Якщо до цього моменту яскравість зменшувалася, то тепер вона збільшуватиметься. Якщо раніше яскравість збільшувалася, то тепер вона почне зменшуватися. Якщо не подавати команду "СТОП" тривалий час, то яскравість лампи змінюватиметься від мінімуму до максимуму (або від максимуму до мінімуму) і назад. Після подачі команди «СТОП» та її декодування, тригер DD1.2 повернеться у вихідний «нульовий» стан та регулювання припиниться – яскравість лампи зафіксується на вибраному рівні. Подавши ще раз команду «СВІТЛО» можна вимкнути лампу – на вході 3DA5 тригер DD1.1 знову сформує короткий імпульс із низьким логічним рівнем. Пристрій отримує живлення через конденсатор С22, що гасить, і однополуперіодний діодно-стабілітронний випрямляч VD9-VD10. Конденсатор С18 згладжує пульсацію. Мікрофонний підсилювач DA1 та тональні декодери DA2, DA3 отримують живлення +5V від лінійного стабілізатора DA4. Транзистори VT1 ​​і VT2 як виконують роль інверторів сигналів, а й узгодять логічні рівні декодерів і тригерів. У наведених експериментальних схемах як навантаження використана лампа розжарювання, але можуть застосовуватися різні інші об'єкти управління. Все залежить від вигадки та сфери застосування даних схем. Наприклад, можна налаштувати тональний декодер на частоту голосних звуків «А» і «И», а комутуючий елемент включити в ланцюг кнопки «TALK» годинника, що розмовляє. Тоді за командою «ГОДИННИК» годинник підкаже поточний час. А у третій, заключній частині, ознайомлю вас із ще однією, практичною схемою.

Вмикати і вимикати світло, просто віддаючи йому вказівки голосом… Мрія, здійснити яку неможливо? Зовсім ні! Це цілком доступна реальність, яку дозволяє використовувати в побуті система «Розумний дім». Така можливість з'явилася у користувачів розумного будинкувже давно.

Однак сьогодні набагато поширенішим і зручнішим вважається управління світлом за допомогою сценаріїв, які працюють точніше, ніж голосове управління. Але якщо Вам цікаво дізнатися, що ж була голосова система управління - ми розповімо про це трохи докладніше.

Різновиди систем та їх особливості

Отже, про все послідовно та докладно. Перший вид інтелектуального голосового управління світлом димери. Їхній принцип роботи досить простий і зрозумілий. Діють вони так само, як і перемикач на реле, але провідність електричного струмурегулюють за допомогою звукових сигналів. Наприклад, налаштувати таке устаткування можна збільшення звукової інтенсивності.

Але у такого роду голосового перемикача є цілком очевидна вада: реагувати він може не тільки на підвищення гучності Вашого голосу, а й на інші сторонні шуми, які досягають тональності, на яку він запрограмований. Однак розумний виробник подібного виду систем знайшов вихід із ситуації, запропонувавши варіант тонального реагування.

Процес налаштування

  • Насамперед, Вам необхідно надати розумному світлу зразок звуку, який він повинен реагувати.
  • Друге, що має бути при налаштуванні системи, привласнити звуковий сигнал певної дії.

Звичайно, процес налаштування такого управління освітленням досить специфічний, проте це компенсується його функціональністю, а також можливістю монтажу. Подібного роду обладнання можна, як приховати від сторонніх очей, так і виконати у вигляді звичайного перемикача.

Варіант для настінних приладів освітлення

Але цей простий і цілком бюджетний варіант для голосового управління освітленням обмежений з точки зору функціональності тим, що можна застосувати тільки для світлового обладнання, прив'язаного до розетки. Тобто, за його допомогою неможливо керувати лампами та люстрами, які встановлені на стелі.

Але зате для спалень і дитячих кімнат, в яких встановлені торшери і світильники, наприклад, для читання, такого роду система - цілком застосовна і зручна.

Повертаючись до інновацій

Як бачимо, голосові перемикачі крім переваг мають ще й низку недоліків, тому набагато раціональніше і грамотніше в системі перемикання світла для розумного будинку використовувати сценарії, сформульовані під Ваші потреби, і функціонують практично безпомилково.

  • Tutorial


Листопад 2017 року, на календарі відображалось число одинадцять. Розпродаж на Aliexpress йшов повним ходом, руки свербіли щось купити. Вибір ліг на " Мі-світло RGBW світлодіодні лампи AC86-265V віддаленого управління Smart освітлення". У результаті було придбано два екземпляри максимальної потужності, на 9 ват, та хаб-контролер MiLight WiFi iBox. Доставка з Китаю не змусила на себе довго чекати, а через 4 місяці, 13 березня 2018 року (платформа, що дозволяє стороннім розробникам додавати вміння голосовому помічнику «Аліса»). Слідом Аліса навчиться керувати освітленням (і не тільки) у вас у квартирі, а ми з вами їй у цьому допоможемо, поетапно і без жодного рядка коду.

1. Налаштування розумних ламп від Xiaomi.

Перше, що необхідно зробити, це настроїти управління лампами, хоча б за допомогою програми від Xiaomi. Якщо для вас цей етап пройдено, сміливо переходьте далі, налаштування сервера розумного будинку, або ще далі, безпосередньо до інтеграції Аліси та openHAB. Але про все по порядку. Самі лампи до вашого домашнього роутера не підключатимуться, для цього потрібен хаб iBox, який може контролювати до чотирьох груп джерел світла. Необхідно підключити його до мережі та зв'язати з ним лампи.
  1. Подаємо харчування на iBox, підключивши його usb, наприклад, до зарядного пристроюдля телефону.
  2. При першому підключенні необхідно скинути налаштування хаба, тому натискаємо RST.
  3. Далі встановлюємо на телефон програму від Xiaomiпід iOS або Android. Переконуємось що телефон підключений до домашньої мережі Wi-Fi.
  4. Відкриваємо програму Mi-Light 3.0, натискаємо + . Тут нас цікавить вкладка Smart Link.
  5. Вводимо назвою та пароль домашньої Wi-Fi мережі, до якої підключено телефон та планується підключити iBox.
  6. Зараз у вас iBoxмає бути підключений до мережі, а індикатори SYSі LINKповинні моргати, повільно та швидко відповідно. Якщо це не так, натисніть RSTще раз.
  7. Якщо індикатори блимають, натисніть у програмі Start Configuration, розпочнеться процес налаштування підключення для хаба.
  8. Через секунд десять миготіння припиниться, потім SYSзнову почне повільно моргати, а LINKзалишиться горіти. У програмі з'явиться повідомлення Configured. Хаб підключено до мережі. Якщо у списку Device Listйого немає, то просто натисніть Searching for device.
Вже зараз можна покерувати кольором та яскравістю самого iBox, але нам необхідно підключити лампи. Для цього виконаємо прив'язку ламп до однієї з чотирьох зон, доступних хабу для керування.
  1. Відкриваємо у додатку Mi-Light 3.0зі списку хаб Mi-Light. Заходимо у розділ Colors.
  2. У верхній частині екрану вибираємо одну із зон, нехай буде Zone1. І натискаємо на іконку зв'язування пристроїв у верхньому правому кутку. Відкриється екран LINK/UNLINKз інструкцією.
  3. Тепер налаштовуємо лампи, які ми хочемо прив'язати до Zone1, Керування ними надалі відбуватиметься синхронно. Для керування яскравістю та кольором кожної лампи окремо їх треба віднести до окремих зон. Отже, вмикаємо лампу, і протягом перших трьох секунд натискаємо в додатку Link. Якщо лампа кліпнула три рази, то все добре, синхронізація пройшла вдало. Можна керувати лампою.


В принципі, на даному етапі у вас вже є пульт для віддаленого керуваннясвітлом. Більше того, ви можете написати свою систему управління освітленням, благо протокол спілкування з хабом давно відомий (колись він був доступний за посиланням limitlessled.com/dev). Є готові бібліотеки на php, javascript, python. Але управління це можливе тільки з локальної мережі, Що для Аліси явно мало. Спробуємо вирішити цю проблему.

2. Встановлення openHAB

Коротко, що таке openHab. Це сервер для керування розумним будинкомз відкритим вихідним кодом. Розробляється суспільством, підтримує управління величезною кількістю пристроїв. Є мобільний клієнт, є можливість управління Олексою від Amazon та помічником від Google. Написаний на java, на базі фреймворку Eclipse SmartHome. А значить його можна встановити хоч на холодильник, головне, щоб на цьому холодильнику працювала віртуальна машина Java. Інструкції зі встановлення є для Linux, Windows, Mac OS, Raspberry Pi, для різних мережевих сховищ Synology та QNAP. Швидко пробіжимося за першим варіантом.
  1. Додаємо ключі репозиторію:

    Wget -qO - "https://bintray.com/user/downloadSubjectPublicKey?username=openhab" | sudo apt-key add - sudo apt-get install apt-transport-https

  2. Додаємо сам репозиторій:

    Echo "deb https://dl.bintray.com/openhab/apt-repo2 stable main" | sudo tee /etc/apt/sources.list.d/openhab2.list

  3. Оновлюємося та ставимо сервер разом із доповненнями:

    sudo apt-get update sudo apt-get install openhab2 sudo apt-get install openhab2-addons sudo apt-get install openhab2-addons-legacy

  4. Налаштовуємо автоматичний запусксервісу після перезавантаження пристрою та запускаємо його:

    Sudo systemctl start openhab2.service sudo systemctl status openhab2.service sudo systemctl daemon-reload sudo systemctl enable openhab2.service

  5. Тепер чекаємо у районі 15-20 хвилин(це не перебільшення, це серйозна реальність з жартами про швидкість роботи Java), поки він завантажиться і за адресою http://openhab-device:8080 з'явиться веб-інтерфейс.
  6. На цій сторінці нас цікавить пункт Paper UI. Саме з цим типом інтерфейсу працюватимемо надалі.

3. Управління світлом через openHAB

Отже, у нас є робочий сервер розумного будинку та лампи від Xiaomi з можливістю віддаленого керування. Потрібно їх з'єднати. openHAB підтримує біндинги (інструкції, що дозволяють керувати підключеною електронікою) для багатьох пристроїв, у тому числі і для даних ламп.

4. Зовнішній доступ до openHAB

З міркувань безпеки після описаних вище маніпуляцій управління сервером розумного будинку можливе тільки з локальної мережі. Цього нашого завдання явно мало. Варіантів налаштування кілька: налаштувати VPN для доступу з інтернету до локальної мережі, налаштувати реверсивну проксі або з'єднати ваш сервер із сервісом myopenHAB Cloud за адресою myopenHAB.org. Так як в Росії кількість співробітників Роскомнагляду прямо пропорційна числу користувачів VPNта проксі-серверів, скористаємося останнім варіантом.
Не слід множити те, що існує без необхідності
  1. Реєструємося на сайті myopenHAB, авторизуємося та заходимо за адресою https://myopenhab.org/account. На цій сторінці нас цікавлять два поля: openHAB UUIDі openHAB Secret. Саме вони дозволяють організувати зв'язок серверів. Давайте розберемося де їх взяти.
  2. Заходимо в панель керування PaperUI openHAB.
  3. Відкриваємо розділ ConfigurationAdd-onsMisc.
  4. Встановлюємо openHAB Cloud Connector.
  5. У ConfigurationServicesповинен з'явитися модуль openHAB Cloudз режимом " Notifications & Remote Access".
  6. У ConfigurationSystemAdd-on Managementповинен бути активований перемикач " Acceess Remote Repository".
  7. Після встановлення аддону дані, які ми шукаємо, виявляться у файлах /var/lib/openhab2/uuidі /var/lib/openhab2/openhabcloud/secret (userdata/uuidі userdata/openhabcloud/secret, Якщо ставили не з пакета). Вводимо їх в налаштуваннях облікового запису на myopenHAB і тиснемо Update. Якщо все налаштовано коректно, то ліворуч від адреси вашої пошти має з'явитися слово " OnlineЦе говорить про те, що доступ до вашого розумного будинку з мережі інтернет відкритий, але відразу Алісаним скористатися не зможе. Для початку треба зробити доступним зовні налаштований раніше пристрій.
  8. Переходимо до розділу ConfigurationServicesopenHAB CloudConfigure.
  9. В списку Items to expose to apps such as IFTTTактивуємо чекбокс для елемента керування яскравістю та натискаємо Save.
  10. Через деякий час перевіряємо, що вибраний елемент є у списку на сторінці myopenhab.org/items зі статусом " ON".

Тепер управління лампою можливе з інтернету через API openHAB Cloud, яке підтримує авторизацію по OAuth2. Але, на жаль, клієнти наперед визначені, це Alexa, Google Assistantта сервіс IFTTT. Аліси в даному спискупоки немає. Але це не проблема!

5. IFTTT

Якщо це тоді.

Сервіс, що дозволяє побудувати з кількох сервісів ланцюжок дій. Умовно відреагувати дією в одному сервісі, якщо спрацював тригер на подію в іншому сервісі. IFTTT підтримує величезну кількість сервісів, у тому числі і myopenHAB, що цікавить нас. Але не підтримує Алісу. Взагалі, будь-хто може створити там модуль для свого сервісу, в першу чергу для цього треба зв'язатися з відділом продажів і з'ясувати розмір вашого щорічного платежу на користь IFTTT. Наша ж мета – безкоштовно скористатися сервісом, щоб мати можливість перенаправляти запити від Аліси до openHAB.
  1. Реєструємося на сайті ifttt.com та заходимо у AppletsNew Applet.
  2. Після натискання + this, необхідно вибрати сервіс, подія в якому буде тригером. Т.к. сервісу Алісиу списку немає, нам потрібно вибрати щось, що зможе отримувати від неї команди. Це сервіс Webhooks. Натискаємо Connect.
  3. Далі вибираємо зі списку з одним пунктом тригер. отримання web запиту".
  4. Вказуємо ім'я події, наприклад light_on, і тиснемо Create.
  5. Тепер треба вибрати дію у відповідь, натискаємо на + that. Наш вибір openHAB, підключаємо.
  6. У вікні, згаданому раніше OAuth2 авторизації, клацаємо по Allow.
  7. Доступна єдина реакція відправити команду".
  8. З випадаючого списку вибираємо елемент керування лампою (наприклад Light_Switcher), а як команду увімкнення світла вказуємо слово " ON". Створюємо.
Для перевірки нам потрібно викликати тригер у сервісу Webhooks. Як це зробити? Надіслати запит POST.
  1. Шукаємо на сайті IFTTTсервіс Webhooksі заходимо у пов'язану з ним документацію.
  2. На сторінці, що відкрилася, є команда, яку нам треба виконати, замінивши (event)на light_on.
  3. Після натискання на Test It, ваша лампа повинна увімкнутися.
Залишилося створити аналогічний рецепт для події light_off, який надсилатиме команду OFF елементу керування світлом. А потім навчити Алісу викликати ці тригери за нашим бажанням.

6. Аліса

На моє веління, на моє бажання Аліса включить світло, якщо використовувати платформу Яндекс.Діалоги. Платформа відкрилася у березні цього року і дозволяє будь-кому охочому додати Алісі умінь, за рахунок написання відповідного коду. на Наразіу каталозі вже представлено безліч умінь. Розробка вміння, це тема для окремої статті на хабрі, а в нас тут без єдиного рядка кодуТак скористаємося наявними напрацюваннями.
  1. Встановлюємо, тільки в ньому на даний момент є підтримка користувальницьких умінь.
  2. Говоримо Алісі "включи чарівні заклинання". Саме вміння чарівні заклинання/чарівне заклинаннядозволить нам виконувати POST запити до серверів IFTTT.
  3. Натискаємо Додатиі вказуємо адресу для включення світла виду:

    http://maker.ifttt.com/trigger/light_on/with/key/(user_id)

  4. Наступним кроком вимовляємо фразу або слово, на яке Аліса реагуватиме виконанням запиту за вказаною адресою (моя Аліса відповідає на «включи світло»).
Якщо ви тепер натиснете на відповідну кнопку або озвучите пропозицію, запит від серверів Яндекса надійде на сервер вміння, звідти в IFTTT, слідом у myopenHAB, який передасть дані у ваш локальний інстанс, що має безпосередній доступ до хабу ламп, і світло ввімкнеться. Аналогічну команду відразу додамо і для вимкнення освітлення.


Треба розуміти, що недостатньо просто включити Алісу і вимовити. Увімкни світло". Яндекс нічого не знає про наші команди для розумного будинку, дані про них зберігаються в базі вміння" чарівні заклинання". Тому спочатку потрібно викликати вміння, промовивши " включи чарівні заклинання", А вже потім вмикати і вимикати світло голосом.

P.S.

Підхід з інтеграцією Аліси та openHAB через IFTTT ні чим не обмежує вашу фантазію. Ви можете за допомогою вміння " чарівні заклинання" голосом керувати будь-якими речами у вашому розумному будинку. Наприклад, в openHAB є біндінг для Samsung SmartTV, який дозволяє керувати звуком і каналами телевізора. Взаємодія Аліси і Webhooks є реалізацією голосового інтерфейсу до всіх сервісів IFTTT, " чарівні заклинаннядозволяють виконати команду будь-якого з них. А можете взагалі не використовувати Алісу, і написати свій фронтенд, наприклад мобільний додаток, яке буде виконувати запити до IFTTT через ті самі Webhooks. Та й IFTTT використовувати не обов'язково, за аналогією можна налаштувати. чарівні заклинання Додати теги

Голосове управління – саме та функція, яку всі ми бачили у кіно. Людина заходить у будинок, вітається зі своїм невидимим помічником і дає йому усілякі команди. Всім відомий Джарвіс із Залізної людини, ну хто не мріє про такого помічника?

Поки що голосове управління не вийшло на такий рівень, як це описують фантасти, але впевнено набирає обертів.

Управління світлом перше, що спадає на думку, коли згадуєш про голосове управління. Управління освітленням - це найчастіша функція, просто зайдіть в кімнату і скажіть «Увімкни підсвічування» і в цей момент ваш невидимий помічник увімкне підсвічування, таким чином можна запускати будь-який елемент розумного будинку MiMiSmart.

Вам не потрібно діставати телефон та запускати програму. Досить просто сказати – «запусти сценарій «Кіно»» і в цей момент опустяться штори, вимкнеться світло та запуститься фільм. Як у кіно, згодні?

Також голосове керування часто використовується, коли ви йдете з дому або приходите додому. "Я прийшов" або "Я пішов" є найчастіше використовуваним голосовим сценарієм. Ви пішли з дому, а ваш невидимий помічник вимкне світло, розеткові групи та поставить на охорону ваш будинок. А приходячи додому після довгого втомливого дня, скажіть, «Я прийшов», і будинок включить вам приємну музику, що розслаблює, зменшить яскравість освітлення.

Голосові команди можуть бути будь-якими, починаючи від конкретних елементів: "Увімкни телевізор", "Вимкни торшер", або "Вимкни музику", до команд, запрограмованих у сценарії. Наприклад, "Я пішов", "Сценарій дискотека", "Увімкни Кіно", "Включи опалення", в яких виконується не одна дія, а ряд дій задля досягнення конкретної мети.

Управління може походити з телефону або через мікрофон у приміщенні. Більше того, світові бренди не стоять на місці та постійно випускають голосових помічників, таких як Google Home, Apple HomeKit або Amazon Echo.

Сама по собі система «Розумний дім» має на увазі дистанційне керуванняпрактично всіма доступними приладами та пристроями.

Причому виконання команд не обмежується функціями «включити/вимкнути» або «відкрити/закрити».

Для медіа-пристроїв ще повинні працювати функції «тише/гучніше», для освітлення – «яскравіше/темніше».

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

Для чого необхідне керування «Розумним будинком» голосом

«Розумний дім» – це не просто дорога іграшка. «Розумний будинок» – це апаратно-програмний комплекс різних приладів та пристроїв, які роблять житло безпечним, комфортним, зручним для проживання.

Управління всіма цими приладами здійснюється за допомогою різномастних ПДК, якими виробники постачають практично всі свої вироби.

Як результат – у будинку з'являються кілька пультів, а мешканцям його потрібно пам'ятати алгоритми роботи з технікою.

Подача керуючих сигналів "Розумному дому" від смартфона має свої мінуси. По-перше, гаджет необхідно постійно носити із собою з кімнати до кімнати.

По-друге, його акумулятор може розрядитися, сам смартфон може загубитися, потрапити до рук зловмисників. Тому оптимальне рішення для «Розумного дому» – пристрій голосового керування. Цей пристрій позбавить мешканців будинку необхідності тримати в кожній кімнаті по ПДУ, запам'ятовувати різні алгоритми роботи.

Таке управління у системі «Розумний дім» призводить до непотрібності різнокаліберних ПДУ, які працюють на різні «точки входу».

Саморобна система голосового керування освітленням

Зробити своїми руками керування освітленням голосом – завдання не просто. Для її вирішення мало бажання.

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

Але зробити самому голосове управління світлом за принципом «Увімк./вимк.» - Це просто зробити ефектну іграшку. Адже якщо зробити так, що голосом можна керувати лише включенням або вимкненням окремо взятого освітлювального приладу або групи приладів, то чому не можна таку саму функцію поширити на інші пристрої?

Щоб вже вийшла закінчена, відкрита для розширення система, що отримала назву «Розумний дім».

Готові модулі для роботи з голосом

Будь-яка подібна системапочинається з модуля розпізнавання голосу. Перші структури розпізнавання акустичних сигналів реагували на бавовни: одна бавовна – «включити», дві бавовни – «вимкнути».

Сучасні структури розпізнавання голосу є складні апаратно-програмні пристрої, здатні розрізняти сотні командних посилок, поданих голосом, причому, голоси можуть бути різного тембру, різної гучності, слова можуть мати синоніми.

Найбільш доступні для саморобок модулі:

  1. Voice Recognition Module V3.1 (FZ0475) ;
  2. Robotech SRL EasyVR Shield0;
  3. Voice Recognition Module LD3320;

Кожен із цих модулів має свої переваги та недоліки. Elechouse Voice Recognition Module V3.1 орієнтований працювати з комплектом «Arduino».

Robotech SRL EasyVR Shield 5.0 має три алгоритми роботи – точний, фонетичний та тоновий. Voice Recognition Module LD3320 може редагувати ключові слова.

Найпростіший голосовий вимикач освітлення

Спочатку слід визначитися зі схемою та комплектацією голосового вимикача світла.

У найпростішому випадку до складу такого приладу увійдуть:

  • модуль розпізнавання голосу;
  • підсилювач;
  • контролер;
  • мікрофон;
  • керуюче реле (кількість залежить від того, скільки освітлювальних приладів буде підключено до вимикача);
  • блок живлення п'ять вольт;
  • компоненти схем - світлодіоди, резистори, конденсатори, симістори, монтажні розетки та ін.

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

Контролер зібраний на базі мікроконтролера «Аtmega8», що має власні оперативне та постійне запам'ятовуючі пристрої.

Симистори використовуються, по-перше, як силові ключі, а, по-друге, як димери, що регулюють яскравість освітлення. Протокол обміну інформацією UART.

Як працює голосовий вимикач

Алгоритм роботи такого вимикача є наступним. Після початкового увімкнення необхідно витримати паузу в кілька секунд для того, щоб завантажився сам модуль розпізнавання голосу, ініціювали всі пристрої приладу. Потім необхідно встановити захист від несанкціонованого включення.

Адже сказати, наприклад, «включити світло» може кожен, і пристрій відреагує відповідним чином. Це саме стосується і сигналу, протилежному за значенням.

Тому потрібно задати комбінацію ініціалізації, навіщо слід вимовити умовне слово, якесь ім'я. При вимові цього слова загориться сигнальний світлодіод, що підтверджує, що пристрій готовий до роботи.

Далі може бути будь-яка команда: «Включи люстру», «Включи торшер», «Включи нічник». Ці сигнали повинні бути запрограмовані під час налаштування приладу. Команди розпізнаються модулем, передаються на контролер.

Контролер, своєю чергою, обробляє інформацію та формує керуючий сигнал на реле, включаючи заданий пристрій. За командою "Вимкни люстру", "Вимкни торшер", "Вимкни нічник", контролер дає керуючий сигнал на відключення.

Включення голосового керування світлом у систему «Розумний дім»

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

Попередньо контролер через комп'ютер має бути запрограмований на певні команди. Тоді з будь-якого місця в будинку можна буде керувати голосом будь-яким пристроєм в будь-якій кімнаті, а при необхідності і у дворі.

Висновок

Існують розробки для смартфонів, що дозволяють керувати голосом системою «Розумний дім».

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

Для саморобної системи, зібраної на базі Arduino таких обмежень немає.

Можна робити та підключати до «Розумного будинку» будь-які пристрої, а не лише освітлення.

Відео: Голосове управління освітленням Lutron, Alexa




Top