ESP Wi-Fi 모듈로 작업하기 시작한 이후로 저는 항상 스마트 폰을 통해 AC 부하를 무선 으로 제어 할 수 있는 스마트 Wi-Fi 소켓 을 만들고 싶었습니다. 인기있는 Moko WiFi Smart Plug 또는 Sonoff와 같은 이러한 제품은 이미 시장에서 구할 수 있지만 약간 비싸고 게다가 직접 만드는 즐거움을주지 않습니다. 그래서이 프로젝트에서는 ESP8266 Wi-Fi 모듈을 사용하여 나만 의 스마트 플러그를 만드는 방법을 보여 드리겠습니다.. 우리가 만든 장치는 나가는 AC 소켓에 쉽게 연결할 수 있으며 다른 쪽 끝에서는 장치의이 소켓에 연결하기 만하면 실제 부하를 연결할 수 있습니다. 그 후 소켓의 메인 스위치를 항상 켜두면 스마트 폰에서 직접 부하를 제어 할 수 있습니다. 재미 있죠? 이제 프로젝트를 시작하겠습니다.….
홈 오토메이션 용 ESP 스마트 플러그
우리는 이미 간단한 RF 기반 홈 자동화부터 제가 가장 좋아하는 Google 어시스턴트 기반 음성 제어 홈 자동화에 이르기까지 몇 가지 홈 자동화 프로젝트를 구축했습니다. 그러나 오늘날이 프로젝트의 요구 사항은 약간 다릅니다.
여기에서 목적은 내 워크 스테이션에서 직접 스마트 폰을 사용하여 Wi-Fi 라우터를 켜고 끄는 것입니다. 인터넷 연결이 끊기고 고객 지원 센터에 전화 할 때받는 표준 답변은 “선생님, 불편을 드려 죄송합니다. 라우터를 껐다가 몇 초 후에 다시 켜서 라우터를 다시 시작하십시오 . ” Puffff! 매번 라우터로가는 길에 지쳐서이 와이파이 스마트 플러그를 만들고 그것을 사용하여 라우터를 제어 하기로 결정 했습니다.
하지만 잠시만 요! 라우터를 끄면 더 이상 인터넷에 액세스 할 수 없습니다. 그러면 원격으로 다시 켜려면 어떻게해야합니까? 다행히 ESP8266을 액세스 포인트로 사용할 수 있습니다. 즉, 자체 Wi-Fi 신호를 전송하여 라우터처럼 작동 할 수도 있습니다. 이 Wi-Fi 신호는 ESP8266에 전원이 공급되는 한 항상 사용할 수 있습니다. 따라서 ESP8266을 캡 티브 포털로 프로그래밍합니다. 이렇게 하면 ESP의 Wi-Fi 신호에 연결되면로드를 켜고 끌 수있는 웹 페이지로 이동합니다.
필요한 재료
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 프로그래머 회로를 사용하여 코드를 업로드하여 하나를 만들 수 있습니다.
ESP8266 용 스마트 플러그 프로그램
더 진행하기 전에 DIY WiFi 스마트 플러그 가 어떻게 작동 하는지 이해하기 위해 프로그램으로 바로 들어가 보겠습니다. 여기에서 볼 수 있듯이 헤더 파일을 거의 포함하지 않고 DNS 네트워크 서버를 설정하여 프로그램을 시작합니다.
#포함
그런 다음 ESP의 GPIO 핀 2를 출력으로 초기화하여 부하를 제어합니다. 그 후 웹 페이지에 대한 긴 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" 라는 이름을 제공하는 void 설정 기능이 있습니다 . 사용자가이 Wi-Fi에 연결되면 이전에 정의한 홈 페이지로 이동합니다.
pinMode (LED_BUILTIN, OUTPUT); // 표시를위한 출력으로 LED 핀 pinMode (GPIO_2, OUTPUT); // 릴레이 제어를위한 출력으로 GPIO 핀 WiFi.mode (WIFI_AP); // AP 모드에서 ESP 설정 WiFi.softAPConfig (apIP, apIP, IPAddress (255, 255, 255, 0)); WiFi.softAP ("ESP_Smart_Plug"); // AP 네트워크의 이름을 지정합니다. dnsServer.start (DNS_PORT, "*", apIP); webServer.onNotFound (() { webServer.sendHeader ("Location", String ("http://www.circuitdigest-automation.com/home.html"), true); // 기본적으로 홈 화면 열기 webServer.send (302, "텍스트 / 일반", ""); });
홈 페이지에서 사용자가 ON 버튼을 클릭하면 화면 페이지가 표시되고 GPIO 2 핀이 높게 설정됩니다.
// ON_Screen webServer.on ("/ relay_ON", () {// 켜기 버튼을 누르면 digitalWrite (LED_BUILTIN, LOW); // LED 끄기 digitalWrite (GPIO_2, HIGH); // 릴레이 끄기 webServer.send (200, "text / html", ON_Screen); //이 화면 표시 });
마찬가지로 사용자가 끄기 버튼을 클릭하면 화면 끄기 페이지가 표시되고 GPIO 2 핀이 LOW로 설정됩니다.
// OF_Screen webServer.on ("/ relay_OFF", () {// 끄기 버튼을 누르면 digitalWrite (LED_BUILTIN, HIGH); // LED 켜기 digitalWrite (GPIO_2, LOW); // 릴레이 켜기 webServer.send (200, "text / html", OFF_Screen); //이 화면 표시 });
라이브러리 파일과 함께 전체 코드는 아래 링크에서 ZIP 파일로 다운로드 할 수 있습니다. 이제 코드가 준비되었으므로 업로드 버튼을 클릭하고 코드가 업로드 될 때까지 기다림으로써 ESP 모듈에 업로드 할 수 있습니다. 라이브러리 파일과 함께 전체 프로그램은 아래 링크에서 다운로드 할 수 있습니다.
ESP8266 스마트 플러그 – Arduino 코드 다운로드
Wi-Fi 실드가있는 사용자는 위와 같이 모듈을 함께 연결하고 컴퓨터에 연결하여 Arduino IDE를 사용하여 ESP8266 프로그래밍을 시작할 수 있습니다. 이 보드가없는 사람은 앞서 언급 한 회로도를 사용할 수 있습니다.
코드가 업로드되면 휴대폰에서 Wi-Fi 네트워크를 검색하면 “ESP_Smart_Plug” 라는 신호를 찾을 수 있습니다. 여기에 연결하면 방금 디자인 한 웹 페이지로 이동합니다. 여기서 끄기 버튼을 누르면 ESP 보드의 LED가 꺼지고 켜기 버튼을 누르면 LED가 다시 켜집니다.
코드를 몇 번 더 확인한 후에는이 프로젝트에 더 이상 프로그래머 보드가 필요하지 않습니다. 이제 주 전압에서 직접 ESP 모듈에 전원을 공급하는 회로를 구축하고 GPIO 핀을 사용하여 릴레이를 전환해야합니다. 이 회로를 구축하기 위해 Hi-Link의 AC-DC 컨버터 모듈을 사용했습니다.이 모듈은 AC 전원 전압을 전원을 통해 ESP 모듈 에 전원 을 공급하기에 충분한 900mA의 출력 전류로 3.3V DC로 변환합니다. 출력측 릴레이는 3.3V 릴레이 로 BC547 과 같은 트랜지스터를 통해 ESP의 GPIO 핀으로 제어 할 수 있습니다. 또한 트랜지스터 의 기본 전류를 제한하기 위해 1k 저항 이 필요합니다.
회로도
Wi-Fi 스마트 플러그 의 전체 회로도 는 다음과 같습니다.
프로젝트에 전원을 공급하는 AC 주전원은이 플러그를 통해 얻을 수 있습니다. 다른 구성 요소는 이전에 설명 된 구성 요소입니다. 집중해야 할 또 다른 중요한 사항은 부팅하는 동안 GPIO-0 및 GPIO-2를 높게 유지하는 것입니다. 그렇지 않으면 ESP 모듈이 프로그래밍 모드로 들어가고 코드가 작동하지 않습니다. 따라서 기본적으로 GPIO 핀을 높이기 위해 10k (3.3k에서 10k 사이의 값을 사용할 수 있음) 저항을 사용했습니다. 또는 BC547 대신 PNP 트랜지스터를 사용하고 릴레이를 하이 사이드에서 전환 할 수도 있습니다. 회로도를 준비한 상태에서 기판 크기를 가능한 한 작게 유지하여 작은 케이스 안에 들어가고 기판을 납땜하는 과정을 거쳐 이러한 부품을 납땜하는 방법을 계획했습니다.
스마트 플러그 소켓 용 3D 프린팅 케이스
다음으로 버니어를 사용하여 보드의 치수를 측정하고 플러그와 소켓의 치수를 측정하여 스마트 플러그 용 케이스를 설계했습니다. 내 디자인은 일단 완료되면 아래와 같이 보입니다.
디자인에 만족 한 후 STL 파일로 내보내고 프린터 설정에 따라 슬라이스 한 다음 마지막으로 인쇄했습니다. 다시 STL 파일은 thingiverse에서 다운로드 할 수 있으며이를 사용하여 자신의 케이스를 인쇄 할 수 있습니다.
인쇄가 완료된 후 결과에 상당히 만족했습니다. 그런 다음 전선을 보드에 추가하고 전원 단자와 소켓에 나사로 조였습니다. 완전한 연결로 회로를 케이스에 조립했고 여기에서 볼 수 있듯이 모든 것이 잘 맞았습니다.
스마트 플러그가 작동 할 준비가 된 상태에서 라우터로 가서 와이어를 추적하여 어댑터를 찾았습니다. 그런 다음 소켓에서 제거하고 스마트 플러그를 동일한 소켓에 연결하고 켰습니다. 이제 어댑터를 스마트 플러그에 다시 꽂아서 나중에 휴대폰에서 제어 할 수있는 것처럼 가정의 저전력 AC 부하를 제어하고 재미있게 즐길 수 있습니다.
전체 코드는 여기에서 다운로드 할 수 있으며이 DIY 스마트 전원 소켓에 대한 작동 비디오 는이 페이지 하단에서 찾을 수 있습니다. 프로젝트가 즐거웠기를 바랍니다.이 장치로 자동화 할 내용을 댓글 섹션에 알려주십시오. 질문이 있으시면 포럼에 남겨 주시면 최선을 다해 답변 드리겠습니다.