본문 바로가기
Arduino(아두이노) 활용 강좌

아두이노 ESP8266 GPIO 와이파이 쉴드 (ESP8266 GPIO WIFI Shield) 사용법 알아보기

by 오마이엔지니어 2018. 7. 15.
반응형

아두이노 ESP8266 GPIO 와이파이 쉴드 (ESP8266 GPIO WIFI Shield)의 사용법을 알아보고
웹서버 테스트와 웹으로 LED를 제어해 보는 프로젝트 입니다



<아두이노 ESP8266 GPIO 와이파이 쉴드 이미지>
ESP-12E WIFI 모듈이 탑재 된 ESP8266 GPIO 와이파이 쉴드 입니다
아두이노 우노나 메가 2560 등의 마이크로 컨트롤 보드에 장착해서 사용할 수 있습니다
제품 특성상 통신을 위해서 FTDI 또는 UART 통신하는것을 권장합니다
(아두이노에 장착해서 사용하거나 아두이노 COM포트를 사용해서 통신하는 방법은 포스팅 하단 부분을 참조해 주세요)
Arduino IED 에서 ESP8266 패밀리 라이브러리 설치 후 NodeMCU 1.0 (ESP-12E Module) 로 설정 후 사용
플래시 모드 와 통신모드 에서 스위치 설정에 주의합니다


<아두이노 ESP8266 GPIO 와이파이 쉴드상세사양>




사용된 부품
아두이노 우노 (Italy)
아두이노 ESP8266 GPIO 와이파이 쉴드
Micro USB to TTL (CP2102)

점퍼케이블
미니 브래드보드
막대저항 220 Ohm
5mm LED 블루


구성 배선도

사용된 예제파일

Blink.txt

ESP8266_LED.txt



테스트방법
기본적으로 통신을 위해서 FTDI 또는 UART 통신 모듈이 필요합니다
본 테스트 에서는 Micro USB to TTL 모듈 (CP2102) 을 사용하였습니다

FTDI 또는 UART 통신 모듈과 배선 방법은 위와 같습니다


아두이노 우노와 연결해서 아두이노 COM포트로 통신하는 배선 방법은 위와 같습니다

주의!
아두이노 우노나 메가에 연결하거나 장착하기 전에 꼭 보드의 스케치를 디폴트로 초기화 해준후 장착해야 합니다!
스케치 디폴트 초기화 방법
아두이노 IDE에서 파일--->예제--->Basic--->BareMinimum 선택후 스케치 업로드

*참고*
아두이노 ESP8266 GPIO 와이파이 쉴드는 0번 핀과 1번핀이 아두이노 우노와 반대로 되어 있습니다
때문에 아두이노 우노에 그냥은 장착해서 사용할 수 없습니다 (그대로 장착해서 사용하면 COM포트가 먹통이 됩니다)
위 이미지 처럼 점퍼케이블로 아두이노 우노와 연결해서 사용하는 방법을 권장하며, 꼭 아두이노 우노에 장착해서 쉴드 형태로 사용하고 싶다면
ESP8266 GPIO 와이파이 쉴드의 0번핀과 1번핀을 끝까지 구부려 준 후 아두이노 우노에 장착한 다음 아두이노의 0번핀과 1번핀에 커넥터 같은것을 사용해서 점퍼케이블을 연결할 수 있게 핀을 따로 빼주는 작업을 해주어야 합니다, 핀을 따로 빼주는 작업이 되었다면

우노의 0번 RX 를 쉴드의 디버깅 핀 RXD에 아두이노 우노의 1번 TX 를 쉴드의 디버깅 핀 TXD 에 연결후 사용하면 사용 가능합니다



사전에 먼저 아두이노 IDE에 ESP8266 패밀리 라이브러리를 설치 해 주어야 합니다

환경설정에서 추가적인 보드매니저 URL에 http://arduino.esp8266.com/stable/package_esp8266com_index.json 

링크의 URL를 추가해 줍니다


보드 매니저에서 타입을 "Contributed"로 선택해주면 ESP8266 Community  나오게 됩니다
설치를 눌러서 최신버전을 설치해 주면 됩니다

설치가 끝나면 툴--->보드--->NodeMCU 1.0 (ESP-12E Module) 순으로 클릭합니다 NodeMCU 1.0 (ESP-12E Module) 이 추가 되었습니다

먼저 쉴드의 WIFI 기능의 이상 유무도 확인할 겸 HelloServer 예제를 테스트 해 보겠습니다

파일--->예제--->ESP8266WebServer--->HelloServer 순으로 클릭합니다
스케치 코드에서 const char* ssid = "........"  const char* password = "........"
이 부분의 " "를 본인의 Wifi 아이디와 비밀번호 설정으로 수정해 준후 업로드 해 줍니다

스케치 업로드 전에 반드시 점퍼 설정을 확인해야 합니다

반드시 점퍼 설정은 FLASH 모드로 설정 후 스케치 업로드 해 줍니다
그리고 스케치 컴파일 및 업로드가 정상적으로 완료 되면 점퍼를 위 이미지 오른쪽 처럼 통신모드로 변경해 줍니다


시리얼 모니터를 켜고 쉴드의 ESP RST 버튼을 눌러 줍니다

이때 물론 반드시 시리얼 모니터의 보드레이트는 115200 으로 되어있어야 하는 점 주의 합시다

시리얼 모니터의 통신이 무반응 일때는 UART 통신 모듈의 전원을 제거하고 쉴드의 스위치 모드 재검점 후 다시 전원을 인가해 줍니다
(종종 통신이 원활하지 않을때가 있는데 위와 같은 방법으로 계속 시도해 주면 성공합니다)
WIFI 와 연결 된 IP주소 192.168.0.X 을 확인 할 수 있습니다

PC의 웹 브라우저를 열고 주소창에 192.168.0.X 를 입력합니다

웹상에 hello from esp8266! 메세지를 확인할 수 있습니다

프로젝트 동영상-Wepserver Hellosever 예제 테스트해 보기


프로젝트 동영상-아두이노 우노에 연결해서 Wepserver Hellosever 예제 테스트해 보기


프로젝트 동영상-아두이노 우노에 장착해서 Wepserver Hellosever 예제 테스트해 보기

이어서 웹서버로 LED를 제어해 보는 프로젝트를 진행해 보겠습니다

먼저 아두이노 우노에 쉴드를 장착하지는 말고  쉴드에 FTDI 또는 UART 통신 모듈만 기본 배선한 다음

위 첨부 된 ESP8266_LED 예제 파일을 복사해서 스케치 업로드 해 줍니다

#include <ESP8266WiFi.h>
위 라이브러리를 사용합니다

const char* ssid = "YourWifiNetworkName";
const char* password = "YourPassword";
위 부분 자신의 와이파이 아이디와 비밀번호로 수정해 줍니다

int ledPin = 14; // GPIO14
WiFiServer server(80);
LED핀 설정은 GPIO 14 번인것을 알 수 있습니다

ESP-12E 핀맵을 확인해 보면 GPIO14 가 밑에서 4번째 인것을 알 수 있습니다 (위 첨부된 배선도 참조해서 배선 합시다)


void setup() {
  Serial.begin(115200);
  delay(10);


통신속도는 115200 입니다

// Set ledPin according to the request
//digitalWrite(ledPin, value);
 
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
 
  client.print("Led pin is now: ");
 
  if(value == HIGH) {
    client.print(on");
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("<a href=\"/LED=ON\"\"><button>Turn on </button></a>");
  client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />"); 
  client.println("</html>");
 
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
 
}

스케치 수정이 끝났으면 점퍼를 플래시모드로 설정 후 스케치를 컴파일 및 업로드해 줍니다
스케치 업로드가 정상적으로 끝나면 점퍼를 다시 통신 모드로 변경 후 아두이노 우노에 쉴드를 장착해 줍니다

시리얼 모니터를 켜고 쉴드의 ESP RST 버튼을 눌러 줍니다

이때 물론 반드시 시리얼 모니터의 보드레이트는 115200 으로 되어있어야 하는 점 주의 합시다

시리얼 모니터의 통신이 무반응 일때는 UART 통신 모듈의 전원을 제거하고 쉴드의 스위치 모드 재검점 후 다시 전원을 인가해 줍니다
(종종 통신이 원활하지 않을때가 있는데 위와 같은 방법으로 계속 시도해 주면 성공합니다)
WIFI 와 연결 된 IP주소 192.168.0.X 을 확인 할 수 있습니다

PC의 웹 브라우저나 스마트폰의 웹 브라우저를 열고 주소창에 192.168.0.X 를 입력합니다

Turn on 버튼을 누르면 LED가 켜지고, Turn Off 버튼을 누르면 LED가 꺼집니다

프로젝트 동영상-웹으로 LED 제어해 보기


Blink 예제 테스트는 위와 동일하기 때문에 추가로 설명하지 않겠습니다
위 첨부된 배선도 동일하게 참고해서 배선 후 위 첨부된 Blink 예제파일 복사후 스케치 업로드 해 주면 됩니다

프로젝트 동영상-Blink 예제 테스트해 보기



주의! 만약 아래와 같은 메세지가 나오거나 에러가 나면서 업로드가 안된다면?
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed


스케치 업로드시 위와 같은 에러메세지가 나온다면 몇가지 사항을 검토해 보아야 합니다

1. 아두이노 우노에 스케치 초기화가 되어 있는지 확인 (포스팅 상단 아두이노 우노 스케치 초기화 방법 참조)
2. 배선 TX, RX 가 이상 없는지 확인 (포스팅 상단 아두이노 장착시 배선 참조)
3. 스위치 설정은 FLASH 모드로 잘 세팅되어 있는지 확인


1~3번 확인 후 아두이노의 USB 전원 케이블을 제거했다가 다시 연결해 주면 ESP8266 모듈의 파란색 LED가 깜박이는 것을 확인할수 있습니다
(USB 케이블로 전원 인가시 WIFI 쉴드의 ESP8266 모듈의 파란색 LED가 깜박여야 ESP8266 모듈의 업로드 준비가 된 것입니다)

만약, USB케이블로 전원을 재 인가했는데도 ESP8266 모듈의 파란색 LED가 깜박이지 않는다면?
이 경우 WIFI Shiled를 아두이노 보드에서 얀간의 간격을 두고 일정간격이 생길만큼 헐겁게 장착해 줍니다!

1. 깜박일때까지 WIFI 쉴드의 RST 리셋 버튼을 눌러 줍니다

2. 다시 전원을 재 인가해서 ESP8266 모듈의 파란색 LED가 깜박이는지 확인해 봅니다

1~2 번 과정을 반복하고, 최종적으로는

USB 케이블로 전원 인가시 WIFI 쉴드의 ESP8266 모듈의 파란색 LED가 깜박여야 ESP8266 모듈의 업로드 준비가 된 것입니다
준비가 끝났으면 스케치 업로들 진행해 주고 정상적으로 업로드 되는지 확인해 봅니다

연관 포스팅
아두이노 ESP8266 GPIO 와이파이 쉴드를 사용해서 웹으로 LED 제어해보고 조도센서 출력값 변화 확인해 보기

아두이노 ESP8266 GPIO 와이파이 쉴드 (ESP8266 GPIO WIFI Shield) 아두이노 MEGA2560 으로 사용하는 방법 알아보기

주의! 메가2560으로 테스트 하면서 만약 아래와 같은 메세지가 나오거나 에러가 나면서 업로드가 안된다면?
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed


메가2560으로 사용시 아두이노 IDE에서 스케치 컴파일이 끝나고 업로드로 변경되는 타이밍에 맞춰서 MEGA2560의 리셋버튼을

눌러주고 업로드가 100% 완료될 때까지 계속 눌러주고 있어야 합니다
자세한 내용은 위 연관 포스팅 두번째 포스팅을 꼭 참조해 주세요~

아두이노에 장착해서 테스트 하는 경우 Arduino IDE 1.8.9 버전 이상 또는 Windows10 사용시 ESP8266 커뮤니티를 최신 버전을 설치하면

아두이노 IDE에서 스케치 컴파일이 끝나고 업로드로 변경되는 타이밍에 맞춰서 아두이노의 리셋버튼을 누르고

업로드가 100% 완료될 때까지 계속 눌러주고 있어야 하는 번거로움이 있습니다 ㅜㅜ
이런 번거로움이 없이 사용하려면 아두이노 IDE 보드 매니저에서 ESP8266 커뮤니티를 2.0.0 버전으로 설치하면 됩니다
(UART 모듈을 사용하는 경우는 커뮤니티 버전에 관계없이 무난하게 업로드 가능합니다)
버전이 너무 낮다고 생각된다면 2.3.0 버전까지는 설치해도 무난하게 테스트 가능합니다




프로젝트 동영상-Windows10 또는 IDE 1.8.9 이상 버전 사용방법


Blink.txt
0.0MB
ESP8266_LED.txt
0.0MB
반응형

댓글0