- ESP Smart Plug для домашньої автоматизації
- Необхідні матеріали
- Програма Smart Plug для ESP8266
- Кругова діаграма
- 3D друкований корпус для розумної розетки
З тих пір, як я почав працювати з модулями Wi-Fi ESP, я завжди хотів створити розумну розетку Wi-Fi, яка дозволяє бездротово керувати навантаженнями змінного струму через смартфон. Хоча такі продукти вже доступні на ринку, як популярні Moko WiFi Smart Plug або Sonoff, вони трохи дорогі, і крім того, це не приносить вам радості будувати власні. Отже, у цьому проекті я покажу вам, як ви можете створити свій власний розумний штекер за допомогою модуля Wi-Fi ESP8266. Пристрій, який ми побудували, можна легко підключити до будь-якої вихідної розетки змінного струму, а потім, з іншого боку, ви можете підключити фактичне навантаження, просто підключивши його до цієї розетки на нашому пристрої. Після цього просто тримайте головний вимикач розетки постійно увімкненим, і ви можете керувати навантаженням безпосередньо зі свого смартфона. Розвага, правда? Тож давайте займемося проектом….
ESP Smart Plug для домашньої автоматизації
Ми вже створили декілька проектів автоматизації дому, починаючи від простої домашньої автоматизації на базі RF і закінчуючи моєю улюбленою системою голосової автоматизованої домашньої автоматизованої програми Google Assistant. Але сьогодні вимога цього проекту дещо інша.
Тут метою є увімкнення / вимкнення маршрутизатора Wi-Fi, просто використовуючи смартфон безпосередньо з робочої станції. Оскільки часом моє з’єднання з Інтернетом падає, і коли я телефоную до служби підтримки, стандартна відповідь, яку я отримую, це: „Сер, вибачте за заподіяні незручності. Будь ласка, перезапустіть свій маршрутизатор, вимкнувши його, а потім знову ввімкнувши через кілька секунд ” Puffff! Втомившись щоразу проходити шлях до маршрутизатора, я вирішив побудувати цей розумний штекер wifi і керувати своїм маршрутизатором за його допомогою.
Але, зачекайте хвилинку! Після вимкнення маршрутизатора я більше не матиму доступу до Інтернету. Отже, як я можу віддалено повернути його назад? На щастя, наш ESP8266 можна використовувати як точку доступу, тобто він також може діяти як маршрутизатор, надсилаючи власний сигнал Wi-Fi. Цей сигнал Wi-Fi завжди буде доступний, доки ESP8266 живиться. Отже, ми запрограмуємо наш ESP8266 як підключений портал; таким чином, після підключення до сигналу Wi-Fi ESP ми перейдемо на веб-сторінку, звідки ми зможемо вмикати / вимикати наше навантаження.
Необхідні матеріали
1. Модуль Wi-Fi ESP8266
2. Перетворювач змінного та постійного струму Hi-Link (3,3 В)
3. Реле 3В
4. Транзистор NPN BC547
5. Модуль програміста FTDI
6. Arduino Wi-Fi щит
7. Підключення проводів
Примітка: Ми використовуємо цей Arduino Wi-Fi Shield, який ми створили раніше. Плата використовується лише для завантаження коду Arduino в модуль ESP8266. Якщо у вас немає цієї плати, ви можете або створити її, скориставшись посиланням на цю просту схему програмування ESP8266 для завантаження коду.
Програма Smart Plug для ESP8266
Перш ніж продовжувати далі, давайте зануримося прямо в програму, щоб зрозуміти, як буде працювати наш розумний штекер DIY WiFi. Як ви можете бачити тут, ми починаємо програму, включаючи декілька файлів заголовків та налаштовуючи мережевий сервер DNS
#включати
Потім ми ініціалізуємо вивід GPIO 2 ESP як вихід, який буде використовуватися для контролю нашого навантаження. Після чого ми маємо довгий HTML-код для нашої веб-сторінки. Тут у нас є три екрани на нашій веб-сторінці, а саме головний екран, екран на екрані та вимкнено.
Рядок Home_Screen = "" // Сторінка 1 - HTML-код домашнього екрану "" " " + style_detials + "
""Ласкаво просимо - CircuitDigest
"" "; String ON_Screen =" "// Сторінка 2 - Якщо пристрій увімкнено" "" "+ style_detials +" ""Розумна вилка - увімкнена
"" "; String OFF_Screen =" "// Сторінка 3 - Якщо пристрій вимкнено " " " " + style_detials + " " "Розумна вилка - вимкнена
" " ";Ці три веб-сторінки при відкритті з’являться приблизно так. Ви можете налаштувати свою веб-сторінку так, щоб вона виглядала так, як вам подобається.
Тоді у нас є наша функція налаштування порожнечі, всередині якої ми визначаємо наш ESP для роботи як точка доступу, а також надаємо ім’я, тут “ESP_Smart_Plug”. Коли будь-який користувач підключається до цього Wi-Fi, він потрапляє на домашню сторінку, яку ми визначили раніше.
pinMode (LED_BUILTIN, OUTPUT); // Світлодіодний штифт як вихід для індикації pinMode (GPIO_2, ВИХІД); // штифт GPIO як вихід для керування реле WiFi.mode (WIFI_AP); // Встановити ESP в режимі точки доступу WiFi.softAPConfig (apIP, apIP, IPAddress (255, 255, 255, 0)); WiFi.softAP ("ESP_Smart_Plug"); // Назвіть свою мережу точок доступу dnsServer.start (DNS_PORT, "*", apIP); webServer.onNotFound (() { webServer.sendHeader ("Розташування", рядок ("http://www.circuitdigest-automation.com/home.html"), правда); // Відкрити головний екран за замовчуванням webServer.send (302, "text / plain", ""); });
На домашній сторінці, якщо користувач натисне кнопку УВІМК., Відобразиться екранна сторінка, а штифт GPIO 2 буде встановлений високо
// ON_Screen webServer.on ("/ relay_ON", () {// Якщо натиснути кнопку увімкнення digitalWrite (LED_BUILTIN, LOW); // Вимкнути LED digitalWrite (GPIO_2, HIGH); // Вимкнути Relay webServer.send (200, "text / html", ON_Screen); // Відобразити цей екран });
Подібним чином, якщо користувач натискає кнопку вимкнення, відображатиметься екранна сторінка, а штифт GPIO 2 буде встановлений НИЗЬКИМ.
// OF_Screen webServer.on ("/ relay_OFF", () {// Якщо натиснути кнопку вимкнення digitalWrite (LED_BUILTIN, HIGH); // Увімкнути LED digitalWrite (GPIO_2, LOW); // Увімкнути Relay webServer.send (200, "text / html", OFF_Screen); // Відобразити цей екран });
Повний код разом із бібліотечними файлами можна завантажити у вигляді ZIP-файлу за посиланням, поданим нижче. Тепер, коли наш код готовий, ми можемо завантажити його в наш модуль ESP, просто натиснувши кнопку завантаження, а потім дочекатися завантаження коду. Повну програму разом із бібліотечними файлами можна завантажити за посиланням нижче
ESP8266 Розумна вилка - Завантажити код Arduino
Ті, хто має екран Wi-Fi, можуть просто підключити ваші модулі разом, як показано вище, і підключити його до вашого комп'ютера, щоб розпочати програмування нашого ESP8266 за допомогою IDE Arduino. Люди, які не мають цієї плати, можуть використовувати принципову схему, як уже згадувалося раніше.
Після завантаження коду знайдіть на телефоні мережі Wi-Fi, і ви повинні знайти сигнал із назвою “ESP_Smart_Plug”. Підключіться до нього, і ви потрапите на веб-сторінку, яку ми щойно розробили. Тут при натисканні кнопки вимкнення ви повинні помітити, як світлодіод на нашій платі ESP вимикається, а при натисканні кнопки увімкнення світлодіод повинен знову увімкнутись.
Перевіривши код ще кілька разів, нам більше не знадобиться плата програміста для цього проекту. Тепер нам потрібно побудувати схему для живлення нашого модуля ESP безпосередньо від напруги мережі та використовувати його штифт GPIO для перемикання реле. Для побудови цієї схеми я використав модуль перетворювача змінного та постійного струму від Hi-Link, який перетворює напругу мережі змінного струму на 3,3 В постійного струму з вихідним струмом 900 мА, достатнім для живлення модуля ESP через мережу. Реле вихідної сторони - це реле 3,3 В, яким можна управляти за допомогою штифта GPIO ESP через транзистор, подібний BC547. Нам також знадобиться резистор 1к, щоб обмежити струм бази нашого транзистора.
Кругова діаграма
Повна електрична схема розумного штекера Wi-Fi буде виглядати так.
Електрична мережа змінного струму для живлення нашого проекту буде отримана через цей штекер. Інші компоненти - це ті, що пояснюються eariler. Ще одна важлива річ, на якій слід зосередитися, - це підтримка GPIO-0 та GPIO-2 на високому рівні під час завантаження. В іншому випадку модуль ESP перейде в режим програмування, і вихідний код не буде працювати. Тому я використав 10k (значення можуть бути від 3.3k до 10k) резистор, щоб за замовчуванням підняти штифт GPIO високо. Ви також можете використовувати транзистор PNP замість BC547 і перемикання реле з високої сторони. З готовою схемою я запланував, як паяти ці компоненти, зберігаючи розмір плати якомога меншим, щоб вона помістилася всередині маленького кожуха і продовжила пайку плати.
3D друкований корпус для розумної розетки
Потім я виміряв розміри плати за допомогою ноніуса, а також виміряв розміри штекера та розетки, щоб розробити корпус для моєї розумної вилки. Мій дизайн виглядав приблизно так, як показано нижче, коли це було зроблено.
Після того, як я був задоволений дизайном, я експортував його як файл STL, нарізав на основі налаштувань принтера і нарешті роздрукував. Знову ж файл STL також доступний для завантаження з thingiverse, і ви можете надрукувати власний кожух, використовуючи його.
Після друку я був цілком задоволений результатом. Потім я приступив до додавання проводів до моєї плати, а також прикрутив їх до клем живлення та розетки. Завдяки повному з’єднанню я зібрав схему в корпус, і все було гарно, як ви можете бачити тут.
З моєю розумною вилкою, готовою до дії, я підійшов до свого маршрутизатора, прослідкував його провід, щоб знайти адаптер. Потім я вийняв його з розетки і підключив розумну вилку до тієї ж розетки та увімкнув. Тепер я підключив адаптер назад до нашого розумного штекера, і, отже, я можу в подальшому керувати ним зі свого телефону. Таким же чином ви можете контролювати будь-яке навантаження змінного струму у вашому домі та отримувати задоволення.
Повний код можна завантажити звідси, а робоче відео цієї розумної розетки DIY можна знайти внизу цієї сторінки. Сподіваюся, вам сподобався проект, повідомте мені в розділі коментарів, що ви автоматизували б за допомогою цього пристрою. Якщо у вас виникли запитання, залиште їх на форумі, і я постараюся з усіх сил відповісти на них.