Реклама
Паметне утичнице су најједноставнији начин аутоматизације вашег дома, али за око 40 УСД за утичницу засновану на Ви-Фи или ЗВаве мало је вероватно да ћете купити више од неколико.
Можда ћете можда имати неке јефтине утичнице засноване на РФ-у - врсте које долазе са сопственим прилагођеним даљинским управљачем, а на полеђини имају неке селекторе канала и ИД-а. Нажалост, нема их паметних кућних чворишта на тржишту Баттле оф тхе Смарт Хоме Хубс: Шта је тамо и шта долази? Опширније који раде с тим. Зар не би било сјајно када бисте их могли некако повезати у свој систем паметног дома "уради сам"? Па, можете - прилично лако у ствари - са око 10 долара у деловима.
Уз мало више посла можете интегрисати и неки други погодан даљински хардвер који је заснован на РФ-у, као што је овај екран буџетског биоскопа.
Шта вам је потребно:
- ЕСП8266 плоча за развој НодеМЦУ в12Е (тачан модел није важан, в1 или в3 такође би требало да буду у реду). Разлог због којег користимо плочу НодеМЦУ је тај што касније желимо лаку Ви-Фи везу. Веза је за пакет од 2, који кошта по 7 долара сваки.
- Пакет од 433Мхз предајник и пријемник (око $ 3).
- РЦСвитцх и МКТТ библиотеке, а наш код - све доступно за преузимање са Гитхуб-а.
- МКТТ сервер, локални или даљински.
- Неке РФ контролне утичнице раде на фреквенцијском опсегу од 433 мХз (требало би рећи на даљинском управљачу). Купио сам мине од Маплина у пакету од 3 за око £ 20 (25.89 $).
Ако вам је ово први пут да програмирате плочу НодеМЦУ, мораћете да преузмете Ардуино додатке за то: следите заједно са првим делом нашег Уводни водич Ардуино убице Упознајте Ардуино убицу: ЕСП8266Шта ако вам кажем да постоји Ардуино компатибилна плоча с уграђеним Ви-Фи-јем за мање од 10 долара? Па, постоји. Опширније за чип НодеМЦУ / ЕСП8266 Такође ће вам требати ЦХ430 возачи. Можете наћи овде потписали драјвере за мацОС ЦХ430, или Виндовс овде.
Користио сам в1.6.5 Ардуино-а јер било шта веће уноси више проблема него што решава. Вратите се уназад ако већ нисте.
Пре него што наставите, претпостављам основни ниво знања о Ардуино програмирање Ардуино програмирање за почетнике: Водич за контролу семафораИзградња регулатора семафора Ардуино помаже вам да развијете основне вештине кодирања! Запоцели смо. Опширније и да имате подешавање НодеМЦУ у управитељу плоча и можете да исправно отпремите неки демо код. Такође би требало да додате библиотеке укључене у нашу датотеку за преузимање Ардуино / библиотеке фолдер.
Ако имате постојеће ПубСубЦлиент или МКТТ библиотека, направите резервну копију и уклоните је - онај који сам укључио у преузимање је једини на коме могу поуздано да примам поруке на НодеМЦУ, и покушао сам много!
РФ Сниффинг (необавезно)
Овај корак није потребан ако желите само да контролишете ДИП-прекидач или утичнице за бирање бирача - оне се подржавају ван оквира, и бит ће вам потребна минимална измјена кода (ово је ипак најприје интересантно, тако да ћете схватити шта се догађа иза сцене).
Ако имате друге РФ даљинске управљаче које желите да покушате да додате, прво морате да „нањушите“ РФ кодове који се преносе. Да бисте то учинили, учитајте РецеивеДемо_Адванцед скица из Мени -> Примери -> РЦСвитцх фасциклу и промените следећи ред из 0
миСвитцх.енаблеРецеиве (0); // Пријемник на прекиду 0 => то је пин # 2
до 2.
миСвитцх.енаблеРецеиве (2); // Пријемник на ГПИО 2 / Д4.
Повежите пријемни модул на следећи начин. Гледајући предњу страну пријемне плоче (дуже је од две, предајник је квадратни) - страна са компонентама на:
- Крајње десно је ГНД. Повежите се са ГНД-ом на плочи НодеМЦУ.
- Крајње лево је ВЦЦ. Повежите се на ВИН на плочи НодеМЦУ.
- Средња два игле су сигнал. Повежите било један на Д4 на НодеМЦУ (повезани су заједно, тако да није важно који).
Сада пренесите модификоване РецеивеДемо_Адванцеди када то завршите, отворите серијски монитор и почните да притиснете тастере на даљинским управљачима. Копирајте децимални број (укључујући битну дужину), дужину пулса и протокол када притиснете дугме.
Након што сам то учинио, открио сам да користи мој екран пројектора
- СЦРЕЕН УП: Примљено 8694273 / 24бит; Дужина пулса: 355 или 356; Протокол: 1
- ЕКРОН ДОЉЕ: Примљено 8694276 / 24бит;Дужина пулса: 355 или 356; Протокол: 1
Наставите за онолико тастера колико вам треба.
Испитивање предајника
Затим ћемо покушати да пошаљемо кодове помоћу предајника. Повежите одашиљачки модул (четвртасти) на следећи начин. Будите опрезни: означавање на овим иглама је грозно.
ВЦЦ пин је заправо у средини, а не на левој страни. Уништио сам један модул у процесу откривања овога. Оно што каже „АТАД“ је заправо „ДАТА“, записано уназад. Поново, подаци иду у Д4, ВЦЦ у ВИН, а ГНД у ГНД (уклоните пријемнички модул, више вам нису потребни).
Напуните Примери -> РЦСвитцх -> ТипеБ_ВитхРотариОрСлидингСвитцхеси поново промените податке:
миСвитцх.енаблеТрансмит (10);
до
миСвитцх.енаблеТрансмит (2);
Имајте на уму да су различити примери укључени у библиотеку, а који од вас ради зависиће од тачне врсте преклопника. Тип А (дип прекидачи) и Б (точкићи или клизачи) су најчешћи - погледајте слике на страници РЦСвитцх. За тип Б укључивање и искључивање утичнице је једноставно као:
миСвитцх.свитцхОн (1, 4); миСвитцх.свитцхОфф (1, 4);
где је 1 ИД канала (горњи точкић), а 4 је ИД утичнице (доњи точкић). Биле су написане римским бројевима на мојим утичницама. Стога се може адресирати до 16 појединачних утичница, мада више утичница може користити исту адресу ако имате више уређаја за укључивање одједном.
Међутим, екран мог пројектора био је мало другачији - користио је различиту дужину пулса. Дакле, да би радили са њима, радило је следеће. Имајте на уму да такође можете дефинисати други протокол ако вам даљински управљач треба, али обавезно дефинишите протокол ПРЕ дужине импулса. Дужина импулса се преписује приликом промене протокола.
// Имајте на уму да мој екран у ствари захтева ДВА притиска на дугме (не дуго притискање, већ две физичке пресова), па одлажем мало, а затим опет шаљем исти сигнал празним сцреенУп () { миСвитцх.сетПулсеЛенгтх (358); миСвитцх.сенд (8694273,24); // (децимални код, број бита) кашњење (2000); миСвитцх.сенд (8694273,24); } воид сцреенДовн () {миСвитцх.сетПулсеЛенгтх (358); миСвитцх.сенд (8694276,24); кашњење (2000); миСвитцх.сенд (8694276,24); }
Прво тестирајте све своје кодове пре него што пређете на следећи корак.
Контрола преко МКТТ-а
Отворите скицу коју сте преузели са имена Гитхуб мктт_рцсвитцх.ино, а почните модификовањем мрежног ССИД-а и лозинке за ваш дом. Затим промените назив канала ако желите и подесите МКТТ сервер. Ако већ немате МКТТ сервер на вашој инсталацији ОпенХАБ, прочитајте део 2 нашег водича за почетнике ОпенХАБ-а ОпенХАБ водич за почетнике 2. део: ЗВаве, МКТТ, правила и графикониОпенХАБ, софтвер отвореног кода за аутоматизацију домова, далеко превазилази могућности осталих система за аутоматизацију кућа на тржишту - али није лако поставити то. У ствари, то може бити фрустрирајуће. Опширније . Имајте на уму да је мој код дизајниран за утичнице типа Б (ротациона склопка), иако бисте га лако могли модификовати и за ДИП-склопке.
Најважнији део кода је порука примљена() функција која реагује на долазне МКТТ команде. У овој функцији прво проверавамо главну кључну реч - изабрао сам „преклопник“ и „екран“. У случају „прекидача“, затим анализирамо канал и ИД прикључка; затим проверите тело корисног оптерећења за команду.
воид мессагеРецеивед (Стринг топиц, Низ корисног оптерећења, цхар * бајтова, ненаписана дужина инт) {иф (топиц.индекОф ("свитцх")> = 0) {// прекидач за контролу, рашчлањивање канала и повезивање ид инт канала = гетВалуе (тема, '/', 3) .тоИнт (); инт плуг = гетВалуе (тема, '/', 4) .тоИнт (); иф (паилоад == "он") {миСвитцх.свитцхОн (канал, утикач); } елсе {миСвитцх.свитцхОфф (канал, утикач); }} елсе иф (топиц.индекОф ("екран")> = 0) {// контрола екрана иф (паилоад == "уп") {сцреенУп (); } елсе иф (паилоад == "доле") {сцреенДовн (); }} / * додајте још једну ако овде слушате више команди (или само модификујте горњу ако не желите екран) * / }
Тада подразумевано раде следеће МКТТ команде:
дневна соба / контрола / прекидач / Кс / И (где је Кс канал, а И је ИД утикача; са укљученим или искљученим телом поруке)
дневна соба / контрола / екран (са телом поруке горе или доле)
Употријебите командну линију или ГУИ МКТТ клијент за тестирање уређаја прије додавања у ОпенХАБ.
Додавање у ОпенХАБ
Као последњи корак, само морамо креирати неке ставке за ове склопке у ОпенХАБ-у. За сада сам дефинисао следеће ставке, али требали бисте бити у могућности да смислите како да додате још:
/ * РФ433мХз уређаји * / Пребаците ЦинемаСцреен "екран" (биоскоп) {мктт = "> [брокер: дневни боравак / контрола / екран: наредба: УКЉУЧЕН: доле],> [брокер: дневна соба / контрола / екран: наредба: ОФФ: горе]"} Свитцх Свитцх41 "Свитцх41" (Биоскоп) {мктт = "> [брокер: дневни боравак / контрола / прекидач / 4/1: наредба: УКЉУЧЕНО: укључено],> [брокер: дневна соба / контрола / прекидач / 4/1: наредба: ОФФ: ван]"} Свитцх Свитцх42 "Свитцх42" (Биоскоп) {мктт = "> [брокер: дневна соба / контрола / прекидач / 4/2: наредба: УКЉУЧЕНО: укључено],> [брокер: дневна соба / контрола / прекидач / 4/2: наредба: ОФФ: ван]"}
Сада бисте могли да контролишете своје РФ уређаје са ОпенХАБ-а! Једна ме ствар пријатно изненадила је домет - један чвор могао је да покрије већи део моје куће. Наравно можете додати још један чвор, слушајући исти канал, који једноставно понавља исте команде, ако вам треба додатно покривање.
Једино ограничење које треба имати на уму је да саме утичнице не могу да пријаве свој статус, па ако и ви користите оригинални даљински управљач, контрола статуса утичнице можда се унутар тачно не одражава ОпенХАБ. Држите се само ОпенХАБ интерфејса и требало би да будете добро.
Питања или проблеми? Затражите у коментарима и потрудит ћу се да помогнем. Ако желите да побољшате мој код, слободно пошаљите захтев за повлачење.
Јамес има диплому о вештачкој интелигенцији и сертификат је ЦомпТИА А + и Нетворк +. Он је водећи програмер МакеУсеОф-а и своје слободно време проводи играјући ВР паинтбалл и таблегамес. Градио је рачунаре још од детета.