Wifi реле своїми руками. Розумний WiFi вимикач світла

  • Інтернет речей
  • DIY або Зроби сам
  • Доброго часу доби, шановний читачу.

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

    У цій статті я розповім, як я зробив вимикач, який буде працювати як звичайний (тобто зазвичай закріплений на стіні) і в той же час дозволить керувати ним через WiFi (або через Інтернет, як це зроблено в даному випадку).

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

    Також мені знадобилися: сервер, за допомогою якого вимикач керуватиметься через Інтернет, Arduino Uno, за допомогою якого я програмував ESP, роутер і витратні матеріали як дроти, клеми і т.д., все це може варіюватися від смаків і ніяк не вплине на кінцевий результат.

    Ціни взяті з Ebay, де я їх купував.

    А ось як виглядають елементи з таблиці:

    Тепер можна скласти і схему підключення:

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

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

    Ізолента врятує від удару струмом... сподіваюсь.

    А тепер поговоримо про програмну частину.

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

    Сподіваюся, я коли-небудь все перепишу і зв'язок буде заснована на швидшому протоколі, ніж HTTP, але для початку зійде. Віддалено лампочка змінює свій стан приблизно за 1-1.5 секунди, а з вимикача миттєво, як і личить порядному вимикачу.

    Програмування ESP8266-01

    Найпростіший спосіб зробити це – за допомогою Arduino. Завантажити необхідні бібліотеки для Arduino IDE можна з GitHub. Там же всі інструкції щодо встановлення та налаштування.

    Далі нам необхідно підключити ESP до комп'ютера, для цього знадобиться або USB to Serial Адаптер (типу FTDi , CH340 , FT232RL) або будь-яка платформа Arduino (у мене була Arduino Uno) з виходами RX і TX.

    Варто відзначити, що ESP8266-01 живиться від 3.3 Вольта, а значить ні в якому разі не підключайте його до живлення Arduino, які (часто) харчуються від 5 Вольт, інакше все згорить до чортів. Можна використовувати понижувач напруги, який наведено у таблиці вище.

    Схема підключення проста: підключаємо TX, RX та GND ESP до RX, TX та GND адаптера/Arduino відповідно. Після цього, власне, підключення готове до використання. Мікроконтролер можна програмувати за допомогою Arduino IDE.

    Пара нюансів при використанні Arduino Uno:

    • На Uno є вихід для 3.3В, але його виявилося замало. При підключенні до нього ESP все ніби працює, індикатори горять, але зв'язок з COM портом втрачається. Тому я використав інше джерело живлення на 3.3В для ESP.
    • До того ж у UNO не виникло проблем при спілкуванні з ESP, з урахуванням того, що UNO харчувався від 5В, а ESP від ​​3В.
    Після кількох експериментів з ESP8266-01, з'ясувалося, що ESP чутливі до підключених до GPIO0 та GPIO2 напруг. У момент старту вони в жодному разі не повинні бути заземлені, якщо ви маєте намір запустити його в штатному режимі. Докладніше про старт мікроконтролера. Я цього не знав і мені довелося трохи змінювати схему, т.к. у версії ESP-01 присутні тільки ці 2 піна і в моїй схемі використовуються обидва.

    А ось і сама програма для ESP:

    Показати код

    #include #include #include #include #include extern "C" ( // ця частина обов'язкова щоб отримати доступ до функції initVariant #include "user_interface.h") const char * ssid = "WIFISSID"; // Ім'я WiFi const char * password = "***************"; // Пароль WiFi const String self_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен для мінімальної безпеки зв'язку const String serv_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен для мінімальної безпеки зв'язку const String name = "IOT_lamp"; // ім'я вимикача, читай лампочки const String serverIP = "192.168.1.111"; // внутрішній IP WEB сервер bool lamp_on = false; bool can_toggle = false; int button_state; ESP8266WebServer server(80); // веб-сервер HTTPClient http; // Веб клієнт const int lamp = 2; // Управляємо реле через GPIO2 const int button = 0; // "Ловим" вимикач через GPIO0 // функція для пінгу лампочки void handleRoot() ( server.send(200, "text/plain", "Hello! I am " + name); ) // функція для недійсних запитів void handleNotFound ()( String message = "not found"; server.send(404, "text/plain", message); ) // Нехай буде світло void turnOnLamp()( digitalWrite(lamp, LOW); lamp_on = true; ) / / Нехай буде темрява void turnOffLamp()( digitalWrite(lamp, HIGH); lamp_on = false; ) // Відправляємо серверу події ручного вкл./вимк. void sendServer(bool state)( http.begin("http://"+serverIP+"/iapi/setstate"); String post = "token="+self_token+"&state="+(state?"on":"off "); // За токеном сервер визначатиме що це за пристрій http.addHeader("Content-Type", "application/x-www-form-urlencoded"); int httpCode = http.POST(post); http.end (); ) // Змінюємо стан лампи void toggleLamp()( if(lamp_on == true) ( ​​turnOffLamp(); sendServer(false); ) else ( turnOnLamp(); sendServer(true); ) ) // Отримуємо від сервера команду включити void handleOn()( String token = server.arg("token"); if(serv_token != token) ( String message = "access denied"; server.send(401, "text/plain", message)); return; ) turnOnLamp(); String message = "success"; token"); if(serv_token != token) ( String message = "access denied"; server.send(401, "text/plain", message); return; ) turnOffLamp(); String message = "success"; server.send(200, "text/plain", message); ) // Встановлюємо MAC щоб давати однаковий IP void initVariant() ( uint8_t mac = (0x00, 0xA3, 0xA0, 0x1C, 0x8C, 0x45); wifi_set_macaddr(STATION_IF, &mac); ) void setup( );pinMode(button, INPUT_PULLUP); // Важливо зробити INPUT_PULLUP turnOffLamp(); = WL_CONNECTED) (delay(500); ) // Призначимо функції на запити server.on("/", handleRoot); server.on("/on", HTTP_POST, handleOn); server.on("/off", HTTP_POST, handleOff); server.onNotFound(handleNotFound); // Стартуємо сервер server.begin(); ) void loop(void)( server.handleClient(); // Перевіряємо натискання вимикача button_state = digitalRead(button); if (button_state == HIGH && can_toggle) ( toggleLamp(); can_toggle = false; delay(500); ) else if(button_state == LOW)( can_toggle = true; ) )


    Пару зауважень за кодом:
    • Дуже важливо оголосити пін GPIO0 як pinMode(button, INPUT_PULLUP), т.к. у схемі ми використовуємо резистор цієї кнопки. А у ESP є свої «вшиті» для цих цілей.
    • При відлові стану кнопки бажано встановити затримку при зчитуванні, щоб уникнути помилкового спрацьовування в момент натискання.

    Програмування WEB сервера

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

    Я використав для цих цілей

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

    Сильні та слабкі сторони пристрою

    Wi-fi вимикач світла має такі переваги:

    1. Не потрібно прокладати додатковий кабель.
    2. Є можливість централізовано керувати освітлювальними пристроями, тобто з однієї командної точки. Для того, щоб керувати бездротовим вимикачем світла, можна використовувати смартфон, планшет, комп'ютер, а також пульт дистанційного керування. Для планшетів та інших електронних пристроїв слід встановити потрібне програмне забезпечення. Його можна завантажити з Інтернету або встановити з диска.
    3. Велика площа сигналу покриття. Незважаючи на стіни, цифровий радіосигнал проникає у потрібне приміщення.
    4. Ця система є дуже безпечною. Навіть якщо конструкція пристрою буде пошкоджена, це не загрожує мешканцю сильним ударом струму, адже Wi-fi вимикача має дуже незначну силу струму.
    5. Пристрій нормально працює з усіма видами лампочок (світлодіодні, розжарювання, енергозберігаючі).
    6. Можна встановити різні комбінації, а також режими роботи освітлювальних приладів.

    Якщо говорити про недоліки вимикачів світла, їх лише кілька. Головні — ціна набагато вища за звичайні клавішні моделі і існує певний ризик розряду батарейок у пульті, або поганий сигнал Wi-fi.

    Конструктивні особливості

    У комплекті Wi-fi вимикачів є приймач та передавач. Приймач – це реле в управлінні. Можна керувати через смартфон з доступом до мережі Wi-fi, або за допомогою пульта дистанційного керування. Коли реле отримує певний сигнал, воно замикає ланцюг електропроводки. Встановлення реле здійснюється біля або всередині світильника. Це можливо завдяки невеликим габаритам пристрою. Причина установки приладу біля світильника полягає в тому, щоб він не випадав із радіусу, в якому працює передавач. Якщо в приміщенні точкове освітлення, приймач можна розмістити в розподільчій коробці або за підвісною стелею.

    Вимикач або передавач має невеликий енергогенератор, який здатний виробляти електрику при натисканні кнопки пульта або надсилання певної команди зі смартфона через Wi-Fi з'єднання. У свою чергу, імпульс переробляється в радіосигнал, який потрапляє в пристрій. Такі радіокеровані вимикачі світла коштують досить дорого, які аналогом є регулювання з пульта, у якому знаходяться батарейки.

    Види вимикачів та найкращі виробники

    Зараз асортимент Wi-fi вимикачів світла не дуже великий. Проте продукція класифікується за кількома ознаками:

    1. Апарат може регулюватись електронними або механічними клавішами. У першому випадку йдеться про сенсорний дисплей пристрою. Клавіші знаходяться на дистанційному керуванні (пульті).
    2. Також є вимикачі світла як із , так і звичайні клавішні. За допомогою перших пристроїв можна регулювати яскравість освітлення, тим самим змінюючи його інтенсивність. Для налаштування яскравості слід або утримувати або прокручувати відповідну кнопку.
    3. Цей вимикач може забезпечувати повний контроль не лише однією, а й двома чи трьома групами освітлювальних пристроїв. Однак ціна на бездротовий пристрій, який може керувати цілими групами, є досить високою.

    На даний момент є сім основних виробників бездротової електричної фурнітури для керування освітленням:

    1. Legrand – країна-виробник Франція. Компанія має цілу лінію продукції, яка називається Celian.
    2. Vitrum – країна-виробник Італія. Ця компанія застосовує технологію під назвою Z-Wave. Вона дозволяє повністю автоматизувати контроль за освітленням у будинку.
    3. Delumo – продукцію виготовляє російська фірма, яка, зокрема, виробляє димери, вимикачі та термостати.
    4. Noolite – фурнітуру виготовляють білоруські виробники.
    5. Livolo – країна-виробник Китай. Ця компанія випускає спеціалізовані прилади для автоматизації. Також в асортиментній лінійці є продукція як на одномісні, так і двомісні рамки під вимикачі.
    6. Broadlink (Китай). Цей виробник має досить великий вибір товару регулювання освітленням.
    7. Kopou – остання компанія, яка також знаходиться у Китаї. Виробник виготовляє димери у вигляді різних брелоків.

    На відео нижче надано огляд ще однієї цікавої моделі Wi-fi вимикача світла:

    Правильне підключення

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

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

    Процес підключення складається лише з двох етапів:

    1. Встановлення приймача радіосигналів.
    2. Монтаж вимикача світла (кнопки керування).

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

    У разі, коли необхідно підключити більше однієї групи освітлення, слід діяти так:

    • нуль подається на всі освітлювальні прилади;
    • фаза розгалужується у Wi-fi вимикачі;
    • фазу слід подати окремо на групу світильників.

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

    Подобається( 0 ) Не подобається( 0 )

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

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

    Ще недавно такі технології були недоступні через високу ціну та обмеженість виробництва.

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

    Навіщо потрібен безпровідний вимикач?

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

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

    За допомогою такого пристрою можна з легкістю керувати освітленням у будинку, змінювати яскравість, вмикати та вимикати лампи.

    Крім того, завдяки особливій конструкції, немає необхідності псувати стіни та робити великі отвори для монтажу.

    Сфера застосування

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

    Вони відрізняються стильним зовнішнім виглядом та встановлюються протягом кількох хвилин.

    Застосування таких виробів є актуальним у таких випадках:


    Різновиди

    Бездротові вимикачі не відрізняються різноманіттям, але певний вибір таки є.

    Вони класифікуються за трьома основними ознаками:

    • На кшталт управління;
    • по можливості регулювання рівня освітленості;
    • За кількістю освітлювальних пристроїв, якими вони керують.

    З урахуванням згаданої вище класифікації, можна виділити такі види бездротових вимикачів:


    Пристрій та принцип роботи основних елементів пристрою

    Бездротовий вимикач складається з наступних елементів:


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

    Другий варіант управління кращий, адже управління можливо на великій відстані і навіть з іншої кімнати.

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

    Старий вимикач можна залишити як додаткове джерело увімкнення/вимкнення при розряді батареї в пульті керування.

    Управління світлом провадиться такими способами:

    • Шляхом дотику до спеціальної сенсорної панелі;
    • Натисканням на механічну кнопку;
    • Подача сигналу з пульта дистанційного керування або телефону.

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

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

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

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

    Найчастіше сигнал передається відстань від двадцяти до двадцяти п'яти метрів. Передавач живиться від батарейок.

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

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

    Деякі радіовимикачі здатні не лише вмикати та вимикати лампу, а й регулювати рівень освітленості. І тут схема доповнюється ще одним елементом - .

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

    Переваги та недоліки безпровідних вимикачів

    Незважаючи на зручність застосування, бездротові вимикачі навантаження (у нашому випадку освітлення) мають не лише переваги, а й недоліки. Але про все подібніше.

    • Легкість монтажу. Для встановлення та підключення не потрібно довбати стіни та прокладати окрему «гілка» електричної проводки.
    • Можливість керування відразу кількома джерелами світла з пульта дистанційного керування або через смартфон.
    • Великий діапазон дії. Сигнал керування на відкритій ділянці може досягати приймача на відстані до 30 метрів. При цьому стіни або меблі не є перешкодою.
    • Безпека для дорослих та дітей. Навіть випадкове пошкодження конструкції не має ризиків для здоров'я. Робочий струм у бездротових дистанційних вимикачах мінімальний та небезпечний для здоров'я.
    • Вартість таких виробів вища за класичні «провідні» вимикачі. Прихильники економії та консерватори віддають перевагу звичним виробам.
    • Неможливість керування через розряд батареї в пульті дистанційного керування або неможливість керування через слабкий Wi-Fi зв'язок.

    Особливості та принцип роботи дистанційного вимикача світла

    Докладніше зупинимося на бездротовій системі керування. Вона включає комплект обладнання, який застосовується для управління рівнем освітленості в квартирі або будинку.

    Для керування використовується не стандартний вимикач, а спеціальний пульт дистанційного керування або телефон (про це частково згадувалося вище).

    Пульт керування (залежно від моделі) може бути розрахований на різну кількість каналів. Він може діяти одну чи цілу групу світильників (до кількох десятків).

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

    Якщо правильно налаштувати датчик руху, він реагуватиме лише на людину.

    В основі дистанційного вимикача лежить радіопередавач. Саме він передає сигнал про увімкнення/вимкнення на освітлювальні пристрої.

    Дальність дії, як зазначалося вище, у більшості пристроїв становить до 30 метрів. Але у продажу можна знайти моделі, які здатні передавати сигнал на відстань до 300 метрів.

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

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

    У комплект з бездротовим дистанційним пристроєм часто вмикається радіолокатор. Він застосовується для підключення пульта та розеток. З його допомогою керування може здійснюватися через мобільний телефон. Такі пристрої отримали назву GSM-вимикачів.

    Управління може здійснюватися одним із таких способів:


    Характеристики, на які варто звертати увагу при виборі

    При покупці бездротового дистанційного вимикача варто звертати увагу на такі параметри:

    • Тип лампочок, яким керує пристрій;
    • Матеріал, колір та зовнішній вигляд корпусу;
    • Робоча напруга;
    • Число каналів;
    • Радіус дії;
    • Габарити;
    • Номінальний струм;
    • Комплектація.

    Також варто приділити увагу наступним критеріям:

    • Робочий діапазон частот;
    • Спосіб передачі сигналу;
    • Наявність кодування;
    • Тип живлення передавача;
    • Розрахунковий час заміни батареї;
    • Спосіб кріплення;
    • Робочий діапазон температур;
    • Ціна.

    Що пропонує ринок?

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

    Нижче розглянемо лише кілька моделей, які пропонує ринок:

    • Fenon TM-75 - вимикач з дистанційним керуванням, виконаний із пластику та розрахований на напругу 220 В. До особливостей пристрою варто віднести наявність двох каналів, 30-метровий радіус дії, наявність пульта дистанційного керування та функцію включення із затримкою.
      До кожного каналу можна підключити групою освітлювальних приладів і керувати ними. Бездротовий вимикач Fenon TM-75 можна використовувати з люстрами, точковими, світлодіодними та іншими приладами, що працюють від 220 Вольт.
    • Inted 220V - бездротовий вимикач радіопризначений для кріплення на стіні. Він має одну клавішу та встановлюється в комплексі з приймальним блоком. Робоча напруга виробу становить 220 Вольт, а радіус дії 10-50 метрів. Кріплення бездротового вимикача світла проводиться за допомогою шурупів або на двосторонній скотч. Корпус виконаний із пластику.
    • INTED-1-CH – вимикач світла з дистанційним керуванням від ДУ. За допомогою цієї моделі можна керувати джерелами світла дистанційно. Потужність ламп може становити до 900 Вт, а робоча напруга виробу дорівнює 220 В. За допомогою радіовимикача можна керувати обладнанням, вмикати та вимикати світло або сигналізацію. В основі виробу лежить приймач та передавач. Останній має вигляд брелока, що має невеликий розмір і передає сигнал на відстань до 100 м. Корпус виробу немає захисту від вологи, тому при монтажі на вулиці необхідно передбачити додатковий захист.
    • Бездротовий сенсорний вимикач із керуванням через пульт ДК. Виріб кріпиться на стіні, відрізняється невеликими габаритами та виконаний із загартованого скла та ПВХ. Робоча напруга становить від 110 до 220В, а номінальна потужність – до 300 Вт. В комплектацію входить вимикач, пульт дистанційного керування та болти для кріплення аксесуара. Середній цикл життя складає 1000 натискань.
    • Inted 220 В на 2 приймачі - бездротовий вимикач освітлення для кріплення на стіні. Керування здійснюється за допомогою двох кнопок. Корпус виконується із пластику. Робоча напруга становить 220 В. Кількість незалежних каналів – 2.
    • BAS-IP SH-74 - бездротовий радіовимикач, що має два незалежні канали. Управління здійснюється за допомогою мобільного телефону на операційній системі Android. Для роботи необхідно встановити програму BAS. Модель SH-74 застосовується для керування лампами розжарювання, що мають потужність до 500 Вт, а також лампочками денного світла (обмеження потужністю - 200 Вт).
    • Feron TM72 – бездротовий вимикач, що управляє освітленням на відстані до 30 метрів. Джерела світла об'єднуються на приймальний блок, а включення та вимкнення здійснюється за допомогою пульта. У моделі TM72 передбачено два канали, до кожного з яких можна підключити певну групу пристроїв. Виріб має великий запас потужності на один канал (до 1 кВт), що дозволяє підключати різні типи джерела світла. Великим плюсом моделі є наявність затримки, що дорівнює від 10 до 60 секунд.
    • Бездротовий 3-канальний вимикач на 220В Smartbuy призначений для підключення джерел світла на три канали з обмеженням потужності до 280 Вт. Номінальна напруга живлення становить 220 В. Управління здійснюється від пульта дистанційного керування, що має діапазон дії, що дорівнює 30 метрам.
    • Z-Wave CH-408 - радіовимикач настінного типу, що дозволяє програмувати різні сценарії керування світловими приладами. За потреби до нього можна підключити до восьми вимикачів. З додаткових можливостей варто виділити управління Z-Wave пристроями (до 80-ти) та зручність налаштування незалежно від головного контролера. Пристрій живиться від двох батарейок, при розряді яких подається відповідний сигнал. Оновлення прошивки здійснюється через мережу Z-Wave. Максимальна відстань до контролера не повинна перевищувати 75 метрів. Клас захисту – IP-30.
    • Feron TM-76 – бездротовий вимикач освітлення, який керується дистанційно за допомогою радіосигналу. Приймач з'єднується з джерелами світла, а пульт дистанційного керування управляє приймальним блоком на відстані до 30 метрів. Модель Feron TM-76 має три незалежні канали, до кожного з яких можна підключити свою групу освітлювальних приладів. Управління в цьому випадку проводитиметься окремо за допомогою пульта. Максимальний запас потужності складає до 1 кВт, що дозволяє підключати лампи різних типів (у тому числі розжарювання). Робоча напруга становить 220 Ст.

    Як підключити бездротовий дистанційний вимикач своїми руками

    Розглянемо порядок підключення бездротового вимикача з прикладу Zamel RZB-04.

    У комплект поставки моделі входять такі елементи:

    • 2-канальний радіоприймач невеликих розмірів (тип ROP-02);
    • 2-канальний 4-х режимний радіовимикач (тип RNK-04);
    • Кріплення для встановлення виробу (дюбелі із саморізами, а також спінений двосторонній скотч).

    Приймач може працювати у п'яти різних режимах:

    • Увімкнення. При включенні клавіші відбувається запалення одного або кількох світильників. Налаштувати включення можна на будь-яке положення клавіш.
    • Вимкнення. Принцип аналогічний з того що розглянуто вище. Різниця в тому, що при натисканні на клавішу відбувається вимкнення світла.
    • Моностабільний. У цьому режимі світло буде горіти лише під час натискання кнопки. Після відпускання відбувається відключення лампи.
    • Бістабільний. У цьому випадку кожне натискання призводить до зміни стану – включення та відключення відбувається циклічно.
    • Тимчасовий. Тут після натискання на клавішу світло горітиме певний час. Ця опція корисна при встановленні бездротового вимикача у під'їзді, спальні або довгому коридорі. При вході можна запалити світло, пройти певну відстань (дійти до ліжка), після чого світло вимкнеться.

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

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

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

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

    Тепер необхідно зробити безрозривну фазу, для чого фаза з'єднується з одним із проводів, що прямують до люстри. Для забезпечення максимальної надійності використовуйте клемники ВАГО.

    Під час виконання робіт під рукою має бути схема підключення дистанційного вимикача.

    По ній видно, як підключити пристрій:

    • До контакту L необхідно підвести фазний провід. При цьому проводити його через вимикач не потрібно – виріб працює у постійному режимі.
    • До клеми N підключіть нульовий провідник, який береться з розподільної коробки.
    • До контакту «OUT1» приєднується фаза, яка йде групу чи один світильник. Тут буде потрібно 0-ий провідник, який можна взяти з распредкоробки або приймача (клема N).
    • До «OUT2» підключіть фазу, яка йде до другої групи або одного світильника. Як і в минулому випадку, нуль береться з распредкоробки або з клемника N приймача.
    • До "INT1" підведіть імпульсний вимикач. Особливість у цьому, що з натисканні він відправляє лише короткочасний сигнал. Після спрацьовування змінюється режим роботи 1 групи світильників. Завдяки цій особливості приймачем ROP-02 можна керувати із застосуванням пульта або стаціонарного імпульсного вимикача.
    • До "INT2" потрібно підключити імпульсний вимикач (один або групу). Після натискання на нього змінюватиметься режим роботи 2-ї групи. Принцип тут такий самий, як описано вище.

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

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

    Для програмування такого режиму зробіть таке:


    Перепрограмування другої кнопки провадиться за аналогічним принципом. Різниця в тому, що всі маніпуляції будуть проводитись з другою (незапрограмованою) клавішею.

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

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

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

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

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

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

    Головне - уважно підійти до вибору виробу, розібратися з основними параметрами та віддавати перевагу моделям перевірених виробників.

    Доброго часу доби, шановний читачу.

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

    У цій статті я розповім, як я зробив вимикач, який буде працювати як звичайний (тобто зазвичай закріплений на стіні) і в той же час дозволить керувати ним через WiFi (або через Інтернет, як це зроблено в даному випадку).

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

    Також мені знадобилися: сервер, за допомогою якого вимикач керуватиметься через Інтернет, Arduino Uno, за допомогою якого я програмував ESP, роутер і витратні матеріали як дроти, клеми і т.д., все це може варіюватися від смаків і ніяк не вплине на кінцевий результат.

    Ціни взяті з Ebay, де я їх купував.

    А ось як виглядають елементи з таблиці:

    Тепер можна скласти і схему підключення:

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

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

    Ізолента врятує від удару струмом... сподіваюсь.

    А тепер поговоримо про програмну частину.

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

    Сподіваюся, я коли-небудь все перепишу і зв'язок буде заснована на швидшому протоколі, ніж HTTP, але для початку зійде. Віддалено лампочка змінює свій стан приблизно за 1-1.5 секунди, а з вимикача миттєво, як і личить порядному вимикачу.

    Програмування ESP8266-01

    Найпростіший спосіб зробити це – за допомогою Arduino. Завантажити необхідні бібліотеки для Arduino IDE можна з GitHub. Там же всі інструкції щодо встановлення та налаштування.

    Далі нам необхідно підключити ESP до комп'ютера, для цього знадобиться або USB to Serial Адаптер (типу FTDi , CH340 , FT232RL) або будь-яка платформа Arduino (у мене була Arduino Uno) з виходами RX і TX.

    Варто відзначити, що ESP8266-01 живиться від 3.3 Вольта, а значить ні в якому разі не підключайте його до живлення Arduino, які (часто) харчуються від 5 Вольт, інакше все згорить до чортів. Можна використовувати понижувач напруги, який наведено у таблиці вище.

    Схема підключення проста: підключаємо TX, RX та GND ESP до RX, TX та GND адаптера/Arduino відповідно. Після цього, власне, підключення готове до використання. Мікроконтролер можна програмувати за допомогою Arduino IDE.

    Пара нюансів при використанні Arduino Uno:

    • На Uno є вихід для 3.3В, але його виявилося замало. При підключенні до нього ESP все ніби працює, індикатори горять, але зв'язок з COM портом втрачається. Тому я використав інше джерело живлення на 3.3В для ESP.
    • До того ж у UNO не виникло проблем при спілкуванні з ESP, з урахуванням того, що UNO харчувався від 5В, а ESP від ​​3В.
    Після кількох експериментів з ESP8266-01, з'ясувалося, що ESP чутливі до підключених до GPIO0 та GPIO2 напруг. У момент старту вони в жодному разі не повинні бути заземлені, якщо ви маєте намір запустити його в штатному режимі. Докладніше про старт мікроконтролера. Я цього не знав і мені довелося трохи змінювати схему, т.к. у версії ESP-01 присутні тільки ці 2 піна і в моїй схемі використовуються обидва.

    А ось і сама програма для ESP:

    Показати код

    #include #include #include #include #include extern "C" ( // ця частина обов'язкова щоб отримати доступ до функції initVariant #include "user_interface.h") const char * ssid = "WIFISSID"; // Ім'я WiFi const char * password = "***************"; // Пароль WiFi const String self_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен для мінімальної безпеки зв'язку const String serv_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен для мінімальної безпеки зв'язку const String name = "IOT_lamp"; // ім'я вимикача, читай лампочки const String serverIP = "192.168.1.111"; // внутрішній IP WEB сервер bool lamp_on = false; bool can_toggle = false; int button_state; ESP8266WebServer server(80); // веб-сервер HTTPClient http; // Веб клієнт const int lamp = 2; // Управляємо реле через GPIO2 const int button = 0; // "Ловим" вимикач через GPIO0 // функція для пінгу лампочки void handleRoot() ( server.send(200, "text/plain", "Hello! I am " + name); ) // функція для недійсних запитів void handleNotFound ()( String message = "not found"; server.send(404, "text/plain", message); ) // Нехай буде світло void turnOnLamp()( digitalWrite(lamp, LOW); lamp_on = true; ) / / Нехай буде темрява void turnOffLamp()( digitalWrite(lamp, HIGH); lamp_on = false; ) // Відправляємо серверу події ручного вкл./вимк. void sendServer(bool state)( http.begin("http://"+serverIP+"/iapi/setstate"); String post = "token="+self_token+"&state="+(state?"on":"off "); // За токеном сервер визначатиме що це за пристрій http.addHeader("Content-Type", "application/x-www-form-urlencoded"); int httpCode = http.POST(post); http.end (); ) // Змінюємо стан лампи void toggleLamp()( if(lamp_on == true) ( ​​turnOffLamp(); sendServer(false); ) else ( turnOnLamp(); sendServer(true); ) ) // Отримуємо від сервера команду включити void handleOn()( String token = server.arg("token"); if(serv_token != token) ( String message = "access denied"; server.send(401, "text/plain", message)); return; ) turnOnLamp(); String message = "success"; token"); if(serv_token != token) ( String message = "access denied"; server.send(401, "text/plain", message); return; ) turnOffLamp(); String message = "success"; server.send(200, "text/plain", message); ) // Встановлюємо MAC щоб давати однаковий IP void initVariant() ( uint8_t mac = (0x00, 0xA3, 0xA0, 0x1C, 0x8C, 0x45); wifi_set_macaddr(STATION_IF, &mac); ) void setup( );pinMode(button, INPUT_PULLUP); // Важливо зробити INPUT_PULLUP turnOffLamp(); = WL_CONNECTED) (delay(500); ) // Призначимо функції на запити server.on("/", handleRoot); server.on("/on", HTTP_POST, handleOn); server.on("/off", HTTP_POST, handleOff); server.onNotFound(handleNotFound); // Стартуємо сервер server.begin(); ) void loop(void)( server.handleClient(); // Перевіряємо натискання вимикача button_state = digitalRead(button); if (button_state == HIGH && can_toggle) ( toggleLamp(); can_toggle = false; delay(500); ) else if(button_state == LOW)( can_toggle = true; ) )


    Пару зауважень за кодом:
    • Дуже важливо оголосити пін GPIO0 як pinMode(button, INPUT_PULLUP), т.к. у схемі ми використовуємо резистор цієї кнопки. А у ESP є свої «вшиті» для цих цілей.
    • При відлові стану кнопки бажано встановити затримку при зчитуванні, щоб уникнути помилкового спрацьовування в момент натискання.

    Програмування WEB сервера

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

    Я використав для цих цілей


    Ця стаття буде присвячена ESP8266 Wi-Fi модулю, мові програмування LUAта прошивці nodeMCU. SDK від виробника не розглядатиметься.

    Приблизно років зо три тому я намагався продати вимикач по 1-wire шині. Як усе працювало, мені дуже не сподобалося.

    • Єдина точка відмови, т.к. вся логіка на сервері;
    • Повільна швидкість;
    • До кожного вимикача доведеться тягнути від 2х проводів (ідеально «вітуху»).

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

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

    Залізо

    Собівартість важливий фактор для простого вимикача, так що намагався використовувати якнайменше частин. Вирішив зробити з того, що було вдома, але довелося купити твердотільне реле. До речі, «релюшка» коштує дорожче за wifi модуля і її можна замінити на оптопару, симістор і обв'язку, схеми включення легко шукаються в інтернеті. Був випадок, коли поганий контакт у патроні лампочки вибив симистор коротко. Подивимося, як покаже себе оптореле, адже раніше з ними не працював. Варто зважити на велике навантаження установка радіатора обов'язкова.

    Тут відразу зіткнувся з проблемою, якщо на gpio при включенні він йшов на землю, плата переходила або в режим прошивки або в незрозумілий режим, тому що кнопка у нас нормально розімкнена, з нею переробляти нічого не став і так і залишив замикатися на землю, а оптореле повісив плюс через резистор і включав подачею 0, вимикав подачею 1, відповідно. У результаті вийшла така схема:


    Увага схему варто покращити!Вихід на реле варто подати через транзистор, а підтягнути кнопку через резистор від плюса. Інгредієнти вийшли такі:

    • вимикач;
    • пружинка (для переробки вимикача на кнопку);
    • сам esp8266;
    • твердотільне реле використовував(S202T02);
    • хустка для конструювання;
    • резистор 470 Ом;
    • дроти;
    • рознімання за смаком;
    • зарядка від телефону 400мА 5v;
    • стабілізатор 1117 3.3v;
    • пара конденсаторів.

    Переробка вимикача не зайняла багато часу, викинув стандартний світлодіод. Простягнув дроти від модуля в центрі вимикача, сам модуль розташував зовні під пластмасовою кнопкою, а силова частина всередині. Небагато фотографій процесу (фото з телефону):

    nodeMCU

    Прошивка використовує Lua мову програмування, ця мова схожа на Javascript. Версія ще сирувата, але вже базовий функціонал цілком добре реалізований. Відразу після завантаження модуль починає виконувати файл скрипт init.luaУ чистій прошивці цього файлу немає, вам доводиться його створити руками. Усі операції можна здійснювати через консоль підключеним до «com» ​​порту, для спрощення заливки файлів модуль є скрипт luatool . Заливка працює в такий спосіб і цей код повністю показує процес запису файл.

    File.open("init.lua","w") file.writeline([]) file.writeline([[--comment]]) file.close()

    Приклад читання файлу конфігурації. Виглядає не дуже. Може й інший варіант серіалізованих даних.

    File.open("config") c_wifi_ssid = string.gsub(file.readline(), "n", "") c_wifi_key = file.readline() file.close()

    Приклад циклу з використанням API з паузою 1000 мілісекунд представлений нижче:

    Tmr.alarm(1000, 1, function() if wifi.sta.getip()=="0.0.0.0" then --поточний ip print("connecting to AP..."..c_wifi_ssid.."/"). .c_wifi_key) else print("ip: ",wifi.sta.getip()) tmr.stop() -- alarm stop end end)

    Робота з GPIO

    Якщо у вас модель модуля ESP-01нової ревізії, то вам доступно лише 2 gpio, не вдаючись до брудного хаку.


    Вирішив відмовитися від такого хаку та скористатися тим, що є.

    Один gpio кнопка та другий вихід на твердотільне реле. Є ще Tx, але змусити працювати як gpio у мене не вдалося, і для індикації я просто передаю повідомлення в консоль print(). Поки що закостилив саме так. Чим довше повідомлення, тим довше і яскравіше спалахує світлодіод. Власники цієї модифікації пролітають лісом і з такими функціями як (node.key, node.led), т.к. вони можуть використовувати лише GPIO16, який теж не розлучений на платі.

    Всі gpio можуть працювати в декількох режимах (OUTPUT, INPUT, INT), але цікаво, що функція gpio.read(), перш ніж рахувати, подає низький рівень, навіть якщо встановлено режим OUTPUT. Тобто щоб отримати поточний стан виходу, це не підходить. Довелося використовувати зовнішню змінну та писати дві функції для зручності, а вже через змінну визначати активність.

    Function on() gpio.write(8,gpio.LOW) oo=1 end function off() gpio.write(8,gpio.HIGH) oo=0 end

    Як події можна використовувати callback gpio.trig(pin, type, function(level)), другий параметр може приймати наступні значення "up", "down", "both", "low", "high". Тут, здається, зрозуміло. Якщо у вас висновок знаходиться в стані 1 і ми його опускаємо на землю, спрацьовує down, потім при піднятті спрацьовує up, але, на мій жаль, такого не відбувалося, в консолі я бачив тільки down залежно від швидкості натискання кнопки подія спрацьовувала 1 2 рази. Вирішив поставити цикл з паузою та бряк по 1 на gpio.

    For i=1,1000 do print(i) tmr.delay(10) tmr.wdclr() -- скидає лічильник і запобігаючи автоперезавантаженню end

    Але пауза не відпрацювала, а без паузи пристрій йшов у перезавантаження. Зате print(i)вносив хорошу затримку. Зробив через tmr.alarmАле в даний момент активний цикл може бути тільки один, що не дуже підходить.

    Function down() tmr.alarm(100, 1, function() timer = timer + 1 -- ok if gpio.read(9) == 1 then print(timer) tmr.stop() if timer< 20 then switch() else -- ... end timer = 0 end tmr.wdclr() end) end gpio.trig(9, "down", function (gp) if timer == 0 then timer = 1 down() end end)

    HTTP сервер

    Сервер запускається як два пальці, але ніякого масиву параметрів запиту не отримаєте. Поки що незрозуміло, як оптимальніше: або писати свій велосипед, або find по підрядку. Погодьтеся, виглядає жахливо. У цьому прикладі шукається 2 параметри key і mode=off,on,party. Останній режим - це просте миготіння лампочкою кожні 200мс, можна поставити і швидше, але побоявся за лампочку та відпарілі.

    Function HTTPd() print("start http serv") srv=net.createServer(net.TCP, 5) srv:listen(80,function(conn) conn:on("receive",function(conn,payload) print( payload) if string.find(payload, "key="..c_api_key) then msg = "key_ok" if string.find(payload,"mode=on") then on() else if string.find(payload,"mode =off") then tmr.stop() off() else if string.find(payload, "mode=party") then party(200) end end end else msg = "error_key" end conn:send("

    mode=key="api_key"

    ") end) conn:on("sent",function(conn) conn:close() end) end) end

    Не так складно написати простий веб-інтерфейс, а скрипти та стилі розташувати на зовнішніх серверах. З модуля забирати тільки index сторінку та спілкуватися з ним, припустимо, по json, так не буде великого навантаження і все влізе у файлову систему, але ми стаємо залежними від наявності інтернету.