자유게시판

새로운 보조기기나 개조/제작 방법 및 기술, 뉴스 등을 전반적인 정보를 자유롭게 공유하는 게시판입니다.
※ 플랫폼의 성격에 어긋나거나 문제가 있는 게시물은 삭제될 수 있습니다.

자유게시판

ESP8266을 활용한 Wifi 원격 스위치 제작
  2025.11.26  |   경기도재활공학센터  |   18
ESP8266을 활용한 Wifi 원격 스위치 제작
  • 경기도재활공학센터
  • 2025-11-26
  • 18
첨부파일

이 튜토리얼에서는, 많이 알려진 ESP8266을 사용해 거의 처음부터 직접 제작한 Wi-Fi 스위치를 만드는 과정을 보여드리려고 합니다.

 

제가 만들고자 했던 아이디어는 이렇습니다.
휴대폰으로 집안의 여러 조명이나 전원 장치들을 켜고 끌 수 있게 만들고 싶었습니다.
스위치가 배터리에 의존하지 않도록 하고 싶었고, 미리 설정해둔 두 개의 Wi-Fi 중 하나에 자동으로 접속할 수 있어야 했습니다.
또한 여러 개의 스위치를 그룹으로 묶어, 버튼 한 번으로 일괄 켜기/끄기를 하고 싶었고, 특정 요일과 시간에 자동으로 켜지거나 꺼지도록 타이머 기능도 필요했습니다.
그리고 저는 이 스위치를 열두 개 정도 만들 계획이라, 개당 총 비용이 30달러를 넘지 않기를 바랐습니다.

 

부품들은 브레드보드에 올리는 대신, 가능한 한 크기를 작게 만들고 고전력을 안전하게 처리하기 위해 PCB에 직접 납땜해서 구성했습니다.

 

스위치와 스마트폰 사이의 인터페이스는 Blynk 앱으로 관리합니다.

 

ESP8266 와이파이 스위치

 

완성된 모습은 위 사진과 같습니다.
벽 콘센트에 수 플러그를 꽂고, 제어하려는 장치를 암 플러그 쪽에 연결하면 됩니다.
그러면 휴대폰으로 바로 ON/OFF 제어가 가능합니다.

 

이번 프로젝트는 이런 형태로는 제가 처음 시도해본 것이라, 만들고 나서 보니 몇 가지 실수가 있었다는 것을 뒤늦게 깨달았습니다.
그래서 이 튜토리얼에는 개선할 수 있는 점들과 PCB 버전 2에 대한 내용도 함께 적어두었습니다.
 

단, PCB 버전 2는 아직 직접 제작해보지 않았기 때문에 실제로 잘 작동하는지는 확신할 수 없습니다.

 

마지막으로 말씀드리자면, 저는 이 분야의 초보자라 전문 용어를 완벽히 사용하지 못할 수도 있습니다.
너그럽게 봐주시면 감사하겠습니다.

 

 

Step 1: 회로도 및 구성요소(Scheme and Components)

 

 

이 프로젝트를 시작하기 전에, 저는 아래 두 가지 튜토리얼을 참고했습니다. 

 

● WiFi / Internet Controlled Relays using ESP8266 : https://www.instructables.com/WiFi-Internet-Controlled-Relays-using-ESP8266-Quic/

     (이 튜토리얼은 별도의 전원공급장치와 어댑터를 사용해 스위치에 전원을 공급합니다.)

 

● ESP8266 WiFi relay switch (Arduino IDE) : http://iot-playground.com/blog/2-uncategorised/40-esp8266-wifi-relay-switch-arduino-ide

     (제가 사용한 Blynk 앱 대신, EasyIoT 웹 인터페이스를 사용합니다.)

 

 

저는 가격이 저렴하고 크기가 아주 작은 ESP8266-01을 사용하기로 결정했습니다. 디지털 출력은 2개가 있지만, 여기서는 그중 GPIO2 하나만 사용합니다.

 

ESP8266(ESP-01, ESP-01S) 개요, 업로드하기

 

릴레이는 싱글 릴레이 보드(1채널)를 사용했습니다.

How a Relay Module Works and Interfacing a Single Channel Relay Module with  Arduino

 

ESP8266은 3.3V로 동작하고, 릴레이는 5V 입력이 필요합니다. 5V 전원을 얻기 위해 저는 HLK-PM01 AC-DC 모듈을 사용했습니다. 이 모듈은 100~240V AC를 받아 5V DC로 변환합니다.

HLK-PM01 AC-DC 220V to 5V Step-Down Power Supply Module Intelligent  Household Power Switches : Amazon.co.uk: Computers & Accessories

 

과열, 고전압, 과전류로부터 보호하기 위해 다음 부품을 추가했습니다.

  • - 73°C 서멀퓨즈

- 250VAC 바리스터(varistance)

- 315mA 퓨즈

- LD1117V33 전압 레귤레이터 (5V DC를 3.3V DC로 변환하기 위한 모듈)

 

그 외에 사용한 부품들은 다음과 같습니다.

 

- 전원 케이블 연결용 스크루 터미널

- NPN 바이폴라 트랜지스터 (PN2222)

- 릴레이 연결용 암/수 점퍼 와이어 (3인치, 20개)

- 1kΩ, 100kΩ 저항

- 10µF 전해 캐패시터

 

회로도와 보드는 Eagle 무료 버전으로 제작했습니다. 보드는 2층(2-layer)으로 구성했지만, 실제로는 1층으로도 충분했을 것 같습니다.


패널라이징 후 Gold Phoenix에서 20장을 약 100달러에 제작했습니다. ESP8266을 보드에 직접 납땜해버리면, 다시 프로그래밍하려면 납을 제거해야 합니다.


그래서 저는 2열의 암 헤더(36핀 0.1")를 납땜한 뒤 ESP8266을 꽂아서 사용할 수 있게 했습니다.

 

 

🔧 개선점(Improvement)

개선 1) ESP8266을 헤더에 꽂아 쓰면 보드 위에서 높이가 꽤 높아집니다. 덕분에 캐패시터 2개를 90°로 돌려서 ESP8266 아래로 눕혀 설치했다면 공간을 좀 더 확보할 수 있었을 것입니다.
             이 부분은 버전 2에서 수정했습니다.

개선 2) 315mA 퓨즈는 보드 도면에서는 사각형 타입으로 그렸는데, 실제로는 원형 타입만 구할 수 있었습니다. 다행히 핀 간격은 동일해 문제는 없습니다.
             이 부분도 버전 2에서 수정했습니다.

개선 3) 사용했던 3.5mm 스크루 터미널은 전원 케이블을 넣기엔 너무 작았습니다. 특히 릴레이를 병렬로 연결하기 위해 한 구멍에 두 개의 전선을 넣어야 했기 때문에 더 불편했습니다.
             그래서 버전 2에서는 더 큰 5mm 스크루 터미널(https://www.sparkfun.com/products/8432)로 변경했습니다.

 

 

Step 2: 조립(Assembling)


저는 처음에 서멀퓨즈를 납땜하다가 두 개를 태워먹었는데, 그 뒤로는 아래와 같은 방법을 사용해서 성공적으로 납땜할 수 있었습니다.

1. 서멀퓨즈를 가장 먼저 보드에 올립니다.
2. 다른 어떤 부품보다 먼저 납땜 준비를 합니다. 퓨즈를 살짝 구부려 HLK-PM01 가까이 위치하도록 둡니다.

3. 보드를 뒤집어서 컵에 담긴 물 위에 올립니다. 서멀퓨즈의 몸체는 반드시 물에 잠겨 있어야 합니다. 그래야 열이 천천히 전달되어 퓨즈가 망가지지 않습니다.

4. 하지만 보드 자체가 물에 닿으면 납땜이 불가능하므로, 보드는 물에 닿지 않게, 퓨즈만 담기도록 해야 합니다. 과열되지 않도록 주의하면서 퓨즈를 납땜합니다.

5. 너무 뜨겁게, 혹은 너무 오래 가열하지 않도록 신경 씁니다. 이렇게 하면 서멀퓨즈 납땜이 훨씬 안정적으로 이루어집니다. 

나머지 부품들에서는 특별한 난관이 없었습니다.

 

ESP8266 프로그래밍

ESP8266은 Arduino IDE를 사용해 프로그래밍했습니다 (프로그램 내용은 다음 단계에서 설명합니다).
프로그래밍 회로는 제가 앞에서 링크한 튜토리얼의 방식을 참고했습니다.

 

사용한 USB–TTL 변환기는 FT232RL USB to TTL Converter Module입니다.

펌웨어를 업로드하기 전에, GPIO0을 GND에 연결한 상태에서 ESP를 리셋해야 합니다.
(이 상태가 플래싱 모드입니다.)

 

보드 조립

ESP8266을 헤더에 꽂고 릴레이는 점퍼 케이블에 연결하며 전원선은 앞에서 보여준 회로도와 사진대로 연결합니다.

모든 배선이 끝나면 전체 회로를 플라스틱 케이스 안에 넣고, 양쪽에 구멍을 내어 수컷 플러그와 암 플러그를 각각 연결했습니다.

이렇게 하면 벽 콘센트–스위치–제어할 장치가 하나의 완성된 모듈로 구성됩니다.

 

Step 3: Blynk 앱 프로그래밍 (Blynk App and Programming)

 

Blynk 앱을 사용하면 스마트폰에서 여러 스위치를 만들어 각각의 장치를 관리할 수 있습니다.
저는 ‘예쁜’ 그래픽 인터페이스가 필요하지 않았기 때문에, 단순한 버튼 UI 정도로 충분했습니다.

 

버튼의 설정은 다음과 같이 구성했습니다.

  • - Mode: PUSH 또는 SWITCH (PUSH 모드는 누르고 있는 동안만 작동, SWITCH 모드는 누르면 켜지고 다시 누르면 꺼지는 형태)

- PIN: 가상 핀(V0)

- LABEL ONLABEL OFF

- 색상 설정

 

이제 프로그램으로 넘어갑니다.
코드에서 필요한 자격 정보는 다음과 같습니다:

- Wi-Fi 네트워크 이름 1 및 비밀번호

- Wi-Fi 네트워크 이름 2 및 비밀번호 (ESP8266이 1번에 연결되지 않을 경우 자동으로 2번 네트워크를 시도합니다.)

- Blynk 토큰(Blynk Token)

 

이 값들을 코드에 입력해 두고 업로드하면, ESP8266이 집의 Wi-Fi에 연결된 뒤 Blynk 서버와 통신하여 스마트폰 앱의 버튼과 릴레이 ON/OFF 동작이 연동됩니다.

 

 

Step 4: 개선점(Improvements)

 

이 프로젝트에는 여러 가지 개선점을 적용할 수 있으며, 이 내용들은 GitHub 저장소의 버전 2(Version 2) 에 반영해 두었습니다.

 

- 사각형 TE5 규격 퓨즈를 원형 TR5 퓨즈로 교체

  • - 3.5mm 스크루 터미널을 5mm 스크루 터미널로 교체
  • - 캐패시터를 90°로 돌려 설치하여 ESP8266 아래쪽으로 눕혀 배치 가능하도록 변경
  • - 릴레이를 위한 공간을 더 넓게 확보
  •  

다만, 저는 아직 버전 2를 실제로 제작해보지 않았고, 버전 1이 잘 작동하기 때문에 당분간 인쇄할 계획도 없습니다.
따라서 버전 2를 사용하고 싶다면 반드시 스스로 검토해 보시길 권장합니다.


혹시 오류를 발견하신다면 꼭 알려주세요.

 

⚠️ 주의 사항

이 프로젝트 또는 프로젝트의 일부를 직접 제작하고자 한다면, 모든 작업은 본인의 책임 하에 진행해야 합니다.
기능적 안정성이나 안전성은 제가 보장할 수 없습니다. 이 프로젝트는 MIT 라이선스로 제공됩니다.
즉, 상업적 용도로 사용하거나, 배포하거나, 수정할 수 있지만 라이선스 사본과 저작권 표시를 반드시 포함해야 합니다.

 

추가 제안이나 피드백이 있으시다면 언제든지 알려주세요.
여러분의 의견을 듣고 싶습니다!

 

출처: AUTODESK Instructables (https://www.instructables.com/ESP8266-Wifi-Switch/)

이전글
2025.11.27
다음글
2025.11.19

댓글

 

댓글 0

    댓글이 없습니다. 첫번째 댓글을 등록해 주세요.