- ESP Smart Plug за домашна автоматизация
- Необходими материали
- Програма Smart Plug за ESP8266
- Електрическа схема
- 3D отпечатан корпус за интелигентен контакт
Откакто започнах да работя с ESP Wi-Fi модулите, винаги исках да изградя интелигентен Wi-Fi контакт, който ми позволява да контролирам безжично натоварванията си през смартфон. Въпреки че продукти като тези вече се предлагат на пазара, като популярните Moko WiFi Smart Plug или Sonoff, те са малко скъпи и на всичкото отгоре това не ви доставя радостта да изградите своя собствена. И така, в този проект ще ви покажа как можете да изградите своя собствен интелигентен щепсел с помощта на Wi-Fi модул ESP8266. Устройството, което изградихме, може лесно да бъде включено във всеки изходен AC контакт и след това от другата страна можете да свържете действителния товар, просто като го включите в този контакт на нашето устройство. След това просто дръжте главния превключвател на гнездото винаги включен и можете да контролирате своя товар директно от вашия смартфон. Забавно нали? Така че нека да влезем в проекта…
ESP Smart Plug за домашна автоматизация
Вече сме изградили шепа проекти за домашна автоматизация, от проста домашна автоматизация, базирана на RF, до любимата ми автоматизирана домашна автоматизация, базирана на Google асистент. Но днес изискването на този проект е малко по-различно.
Тук целта е да включа / изключа моя Wi-Fi рутер, като просто използвам смартфона директно от работната ми станция. Тъй като понякога връзката ми с интернет намалява и когато се обадя на грижата за клиентите, стандартният отговор, който получавам, е „Сър, съжалявам за причиненото неудобство. Моля, рестартирайте рутера си, като го изключите и след това го включите отново след няколко секунди ” Puffff! Уморен съм да ходя по пътя си до рутера всеки път, реших да изградя този wifi интелигентен щепсел и да контролирам рутера си с него.
Но, чакай малко! Вече няма да имам достъп до интернет, след като изключа рутера си. И така, как ще го включа отново от разстояние? За щастие, нашият ESP8266 може да се използва като точка за достъп, което означава, че може да действа и като рутер, като изпрати собствен Wi-Fi сигнал. Този Wi-Fi сигнал ще бъде винаги достъпен, докато ESP8266 е захранван. Следователно ние ще програмираме нашия ESP8266 като задържащ портал, по този начин, след като се свържем с Wi-Fi сигнала на ESP, ще бъдем отведени до уеб страница, от която можем да включим / изключим нашия товар.
Необходими материали
1. ESP8266 Wi-Fi модул
2. Hi-Link AC към DC преобразувател (3.3V)
3. 3V реле
4. NPN транзистор BC547
5. Модул за програмиране на FTDI
6. Arduino Wi-Fi щит
7. Свързване на проводници
Забележка: Използваме този Arduino Wi-Fi Shield, който изграждаме по-рано. Платката се използва само за качване на кода на Arduino в модула ESP8266. Ако нямате тази платка, можете да я изградите, като използвате връзката на тази проста програма за програмиране на ESP8266, за да качите кода си.
Програма Smart Plug за ESP8266
Преди да продължим, нека се потопим направо в програмата, за да разберем как ще работи нашият интелигентен щепсел DIY WiFi. Както можете да видите тук, ние започваме програмата, като включваме няколко заглавни файла и настройваме DNS мрежов сървър
#include
След това инициализираме GPIO щифт 2 на ESP като изход, който ще се използва за контрол на натоварването ни. След което имаме дълъг HTML код за нашата уеб страница. Тук имаме напълно три екрана на нашата уеб страница, а именно Начален екран, Екран и Изключен екран.
String 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); // LED щифт като изход за индикация pinMode (GPIO_2, OUTPUT); // GPIO щифт като изход за управление на реле WiFi.mode (WIFI_AP); // Задаване на ESP в режим AP WiFi.softAPConfig (apIP, apIP, IPAddress (255, 255, 255, 0)); WiFi.softAP ("ESP_Smart_Plug"); // Наименувайте вашата AP мрежа dnsServer.start (DNS_PORT, "*", apIP); webServer.onNotFound (() { webServer.sendHeader ("Местоположение", низ ("http://www.circuitdigest-automation.com/home.html"), вярно); // Отваряне на началния екран по подразбиране webServer.send (302, "text / plain", ""); });
На началната страница, ако потребителят щракне върху бутона ON, ще се покаже екранната страница и 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 Smart Plug - Arduino Code Изтегляне
Тези, които имат Wi-Fi екрана, могат просто да включат модулите ви, както е показано по-горе, и да го свържат към вашия компютър, за да започнат да програмират нашия ESP8266 с помощта на Arduino IDE. Хората, които нямат тази платка, могат да използват електрическата схема, както беше споменато по-рано.
След като кодът бъде качен, потърсете Wi-Fi мрежи на телефона си и трябва да намерите сигнал на име „ESP_Smart_Plug“. Свържете се с него и ще бъдете отведени до уеб страницата, която току-що проектирахме. Тук, когато натиснете бутона за изключване, трябва да забележите, че светодиодът на нашата ESP платка се изключва и когато натиснете бутона за включване, светодиодът трябва да се включи отново.
След като потвърдим кода още няколко пъти, вече няма да имаме нужда от платката на програмиста за този проект. Сега трябва да изградим верига за захранване на нашия ESP модул директно от мрежовото напрежение и да използваме неговия GPIO щифт за превключване на реле. За изграждането на тази схема използвах AC-DC преобразуващ модул от Hi-Link, който преобразува мрежовото напрежение в 3,3 V DC с изходен ток от 900 mA, достатъчен за захранване на ESP модула през мрежата. Изходното реле е 3.3V реле, което може да се управлява от GPIO щифта на ESP чрез транзистор като този BC547. Ще ни е необходим и 1k резистор, за да ограничим базовия ток на нашия транзистор.
Електрическа схема
Пълната схема на веригата за Wi-Fi интелигентен щепсел ще изглежда така.
Електрическата мрежа за променлив ток за захранване на нашия проект ще бъде получена чрез този щепсел. Другите компоненти са тези, които обясняват eariler. Друго важно нещо, върху което трябва да се концентрирате, е да поддържате GPIO-0 и GPIO-2 високи, докато стартирате. В противен случай модулът ESP ще влезе в режим на програмиране и изходният код няма да работи. Следователно използвах 10k (стойности между 3.3k до 10k) резистор, за да издърпам GPIO щифта по подразбиране. Като алтернатива можете да използвате и PNP транзистор вместо BC547 и превключване на релето от висока страна. С готовата електрическа схема планирах как да запоя тези компоненти, като поддържам размера на платката възможно най-малък, така че да се побере в малък корпус и да продължи запояване на дъската.
3D отпечатан корпус за интелигентен контакт
След това измерих размерите на платката с помощта на нониуса си и също така измерих размерите на щепсела и контакта, за да проектирам корпус за моя интелигентен щепсел. Моят дизайн изглеждаше подобно на това по-долу, след като беше направен.
След като бях доволен от дизайна, го експортирах като STL файл, нарязах го на базата на настройките на принтера и накрая го отпечатах. Отново STL файлът също е достъпен за изтегляне от thingiverse и можете да отпечатате своя собствена обвивка, като го използвате.
След отпечатването бях доволен от резултата. След това продължих с добавянето на проводниците към дъската ми и също ги завинтвах към клемите за захранване и контакта. С пълната направена връзка сглобих веригата в корпуса си и всичко беше добре, както можете да видите тук.
С моя интелигентен щепсел, готов за действие, отидох до моя рутер, проследих проводника му, за да намеря адаптера му. След това го извадих от контакта и свързах интелигентния щепсел към същия контакт и го включих. Сега включих адаптера обратно към нашия интелигентен щепсел и по този начин мога да го управлявам от моя телефон.
Пълният код може да бъде изтеглен оттук, а работещото видео за тази интелигентна електрическа розетка DIY може да бъде намерено в долната част на тази страница. Надявам се, че проектът ви е харесал, кажете ми в раздела за коментари какво бихте автоматизирали с това устройство. Ако имате въпроси, оставете ги във форума и аз ще се опитам да отговоря на тях.