ESP8266 WiFi 모듈과 Blynk 앱으로 아두이노 우노 원격 제어하기
필요한 부품 및 소모품
- 아두이노 우노 (Arduino UNO) × 1
- ESP8266 ESP-01 모듈 × 1
- FT232RL USB-시리얼 변환 보드 × 1
- 저전압 강하 레귤레이터 (LDO) × 1
- 슬라이드 스위치 × 1
- 택트 스위치 (12mm) × 1
- 점퍼 와이어 × 1세트
- 브레드보드 × 1
필요한 앱 및 온라인 서비스
- 아두이노 IDE
- Blynk 앱 (iOS/Android)
- ESP8266 플래셔 툴
프로젝트 개요
이 프로젝트는 ESP8266-01 WiFi 모듈과 Blynk 앱을 사용하여 아두이노 핀을 원격으로 제어하는 방법을 설명합니다. Blynk 앱은 사용이 매우 간편하며 IoT 입문자에게 훌륭한 학습 도구입니다.
단계별 구현 가이드
1단계: 준비물 모으기
다음 소프트웨어와 라이브러리를 미리 다운로드하여 폴더에 정리해 두세요:
2단계: 아두이노 IDE 및 라이브러리 설치
- 아두이노 IDE 최신 버전을 설치합니다.
- IDE에서 파일 → 환경설정으로 이동하여 추가 보드 매니저 URL에 다음을 입력합니다:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
- 도구 → 보드 → 보드 매니저에서
esp8266 패키지를 검색해 설치합니다 (선택 사항).
- Blynk 라이브러리 ZIP 파일의 압축을 풀고
libraries 폴더 안의 내용을 다음 경로에 복사합니다:
내 문서 → Arduino → Libraries
3단계: ESP8266 펌웨어 플래싱
ESP8266에 AT 펌웨어를 쓰려면 아래 회로를 구성하세요. 많은 포럼에서 FTDI 변환기 없이 아두이노 우노로 플래싱이 가능하다고 하지만, 필자의 경험상 전원 공급 문제로 실패할 확률이 높습니다. FTDI USB-TTL 변환기 사용을 강력히 권장합니다.
esp_flasher.zip 압축을 풀고 XTCOM_UTIL 애플리케이션을 실행합니다.
- 장치 관리자에서 ESP8266이 사용하는 COM 포트를 확인합니다.
- XTCOM_UTIL에서 Tools → Config Device로 이동, 올바른 COM 포트와 보드레이트 9600을 설정하고 Open → Connect를 클릭합니다.
- 압축 파일 내
readme.txt에 적힌 주소에 맞춰 4개의 .bin 파일을 순차적으로 플래싱합니다. 예: boot_v1.1.bin → 0x00000
- 각 파일 플래싱 후 XTCOM_UTIL을 닫고 ESP8266 전원을 뺐다가 다시 연결한 뒤 반복합니다. 플래싱 중 GPIO0은 반드시 GND에 연결된 상태여야 합니다.
자세한 지침: 공식 위키
4단계: AT 명령어 테스트
- 아두이노 IDE에서 ESP8266이 연결된 포트를 선택합니다 (보드 설정 불필요).
- 시리얼 모니터 보드레이트를 115200으로 설정합니다.
AT 입력 시 OK 응답이 와야 합니다.
AT+CWMODE=1 명령으로 스테이션 모드로 전환합니다.
5단계: Blynk 앱 설정
- 플레이스토어에서 Blynk 앱을 설치하고 로그인합니다.
- + 아이콘으로 새 프로젝트 생성 → 기기: Arduino UNO, 연결: WiFi 선택.
- 프로젝트 생성 즉시 등록된 이메일로 Auth Token이 발송됩니다 (나중에 프로젝트 설정에서도 확인 가능).
- 위젯 추가: Button 선택 → 핀을 Digital D13으로 설정 → 모드를 SWITCH로 변경.
- 이제 아두이노 내장 LED(D13)를 앱에서 켜고 끌 수 있습니다. 다른 핀(D3, D4 등)도 동일하게 추가 가능합니다.
6단계: 아두이노 프로그래밍
아래 코드를 아두이노 IDE에 복사해 업로드하세요. SoftwareSerial 부분은 주석 처리하고 하드웨어 시리얼(Serial)을 사용하도록 수정했습니다. SoftwareSerial은 불안정하기 때문입니다.
/*************************************************************
* Blynk + ESP8266 AT 펌웨어 예제 (아두이노 우노용)
*************************************************************/
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
// Blynk 앱에서 받은 인증 토큰
char auth[] = "yourAUTH";
// WiFi 정보
char ssid[] = "yourSSID";
char pass[] = "yourpassword";
// 하드웨어 시리얼 사용 (아두이노 우노)
#define ESP8266_BAUD 115200
ESP8266 wifi(&Serial);
void setup() {
Serial.begin(9600);
delay(10);
Serial.begin(ESP8266_BAUD); // ESP8266 통신 보드레이트
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
void loop() {
Blynk.run();
}
수정 사항:
yourAUTH → 이메일로 받은 인증 토큰
yourSSID → WiFi 이름
yourpassword → WiFi 비밀번호
ESP8266 wifi(&EspSerial); → ESP8266 wifi(&Serial);
EspSerial.begin(ESP8266_BAUD); → Serial.begin(ESP8266_BAUD);
7단계: 최종 회로 연결
코드 업로드 후 아두이노 전원을 끄고 ESP8266을 아래와 같이 연결하세요:
| ESP8266 | 아두이노 우노 |
| TX | RX (핀 0) |
| RX | TX (핀 1) |
| GND | GND |
| VCC | 3.3V |
| CH_PD | 3.3V |
연결 완료 후 아두이노를 PC에 연결하고 시리얼 모니터(115200 보드레이트)를 엽니다. Blynk 앱에서 프로젝트 재생 버튼을 누르고 버튼을 눌러 내장 LED가 제어되는지 확인하세요.
마치며
이 튜토리얼이 도움이 되셨길 바랍니다. 질문이나 제안 사항은 댓글로 남겨 주세요. 감사합니다!