본문 바로가기

전자공학/아두이노 프로젝트

[ESP8266] Node MCU ESP8266 보드 설정 및 프로그램 업로드 방법

안녕하세요, 전자공학 블로거 이상민입니다. 오늘은 Node MCU ESP8266 보드 설정 부터 프로그램 업로드 방법에 대해 자세히 알려드리도록 하겠습니다.

 

이전에 ESP8266 보드와 Firebase를 연결해 원격으로 불을 켜고 끄는 프로젝트를 작성 한 적 있는데, 이번에는 그보다 더 자세하게 알려드리겠습니다. 이전 글은 링크로 남겨드립니다.

 

[Firebase] 1. 아두이노 IDE에서 esp8266 보드 및 firebase 라이브러리 추가

 - https://sangmin0523memo.tistory.com/4

 


 

0. Node MCU ESP8266 보드 소개

 

Node MCU ESP8266 보드는 쉽게 설명해 아두이노에 와이파이를 기본 장착한 보드 입니다.

 

NodeMCU ESP8266

 

와이파이가 내장되어 있고, 작은 크기와 적은 전력을 이용하며, 아두이노로 할 수 있는 거의 모든 것을 할 수 있기에 IOT 프로젝트를 구성하는데 많이 쓰입니다.

 

Node MCU ESP8266에 대한 자세한 설명을 원하시는 분은 아래 더보기를 눌러주시면 감사하겠습니다.

더보기

ESP8266

 - ESP8266은 한 칩 안에 CPU와 와이파이 통신 모듈, 파워 모듈 등을 넣은 SoC(System On Chip)입니다.

 

ESP8266 SoC, ESPRESSIF 링크

 

ESP8266은 시스템을 구동할 수 있는 구성요소를 한 반도체 칩 안에 넣었기에 System On Chip이라고 부릅니다. 여러 구성요소가 밀집하기 때문에 저전력으로 구동할 수 있고, 작은 크기로 여러 프로젝트에도 쓰일 수 있습니다.

 

다만 작은 칩 형태이기 때문에 우리가 아두이노처럼 프로그램을 업로드 하거나 선을 연결하는 등의 이용이 매우 어렵습니다.

 

따라서 ESP8266칩은 PCB에 와이파이 안테나와 메모리 칩을 붙여서 하나의 모듈 형태로 많이 판매되는데요, 대표적으로 ESP-01, ESP-12E가 있습니다.

 

좌 : ESP-01, 우 : ESP-12E

 

즉, 이 모듈이 아두이노 역할을 하는 겁니다.

 

하지만 우리가 위에서 보여드린 Node MCU ESP8266 보드와는 차이가 있는데요, 바로 연결하는 방법이 다릅니다. 위에서 보여드린 보드는 USB 마이크로 5핀 단자가 있어 쉽게 연결이 가능합니다. 하지만 ESP-01, ESP-12E는 GPIO선을 하나하나 연결해 통신을 해야합니다. 이렇게 해서 프로그램을 업로드하고 작동시키기는 정말 불편한데요, 이를 쉽게 해 주는게 바로 Node MCU 보드입니다.

 

 

Node MCU

 - Node MCU는 오픈 소스 프로토타이핑 보드 디자인(open source prototyping board designs)을 사용할 수 있는 오픈 소스 펌웨어(open source firmware)입니다. 여기서 오픈 소스 프로토타이핑 보드 디자인에서 얘기하는 보드는 위에서 보여준 NodeMCU ESP8266 보드를 뜻합니다.

 

NodeMCU ESP8266

 

보시면 여기 위에 ESP-12E가 부착된 모습을 볼 수 있습니다. USB 마이크로 5핀 단자도 달려있고, GPIO 선들도 많이 있어 아두이노와 비슷하게 생겼습니다. 즉 Node MCU 보드는 ESP-12E 보드를 확장시켜 GPIO나 USB를 이용할 수 있게 만든 보드입니다.

 

일반적으로 ESP8266 보드라고 하면 저 보드를 이야기합니다.

 

그리고 이 보드는 오픈 소스 펌웨어를 통해 컴퓨터와 연결하여 프로그램을 업로드할 수 있습니다. 아두이노와 같은 방법으로 말이죠. 그 방법을 아래에서 알려드리도록 하겠습니다.

 


 

1. 보드매니저 ESP8266 보드 추가

 

먼저 아두이노 IDE를 실행해 줍니다.

 

환경설정

 

왼쪽 위 File -> Preference...(환경설정) 클릭해 주세요.

 

 

추가적인 보드 매니저 URL 입력란

 

추가적인 보드 매니저 입력란(Additional boards manager URLs)에 아래 주소를 복사해 붙여넣고 OK를 클릭합니다.

https://arduino.esp8266.com/stable/package_esp8266com_index.json

 

 

보드매니저

 

왼쪽에 파일 버튼 아래 보드 매니저 버튼을 클릭해 주세요.

 

 

보드매니저 ESP8266 검색

 

보드매니저를 클릭하면 화면이 확장이 됩니다. 거기에서 8266을 검색하면 ESP8266이 하나 나옵니다. 아래 INSTALL 눌러 설치하시면 됩니다.

 

 

설치된 화면

 

잘 설치된 경우 Output의 맨 마지막에 installed라고 나옵니다.

 

이제 ESP8266 보드를 연결하고 예제 파일을 업로드해 보겠습니다.

 


 

2. ESP8266 보드 드라이버 설치

 

먼저 ESP8266 보드를 USB를 통해 컴퓨터와 연결하고 보드 드라이버를 설치하겠습니다.

 

만약 이미 설치되어 있다면 다음 단계로 넘어가 주세요.

 

컴퓨터와 연결

 

CP2102 칩셋

 

제가 가진 ESP8266 보드는 CP2102 칩셋을 이용해 컴퓨터와 USB통신을 합니다. 따라서 해당 드라이버를 설치해 주도록 합시다.

 

설치 링크 - https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads

 

Downloads 탭

 

링크 들어가셔서 다운로드 탭을 클릭합니다.

 

다운로드 화면

 

아래로 내리면 Universal Waindows Driver를 클릭하고 다운로드 받아 줍니다.

 

 

파일 압축 풀기

 

그리고 받은 파일의 압축을 풀어줍니다.

 

 

장치관리자 기타장치

 

드라이버를 설치하지 않은 상태면 장치관리자를 열고 기타 장치에 CP210x ~~가 있을겁니다. 우클릭 하시고 드라이버 업데이트를 눌러주세요. (전 미리 업데이트 한 상태라 안보입니다)

 

 

드라이버 업데이트 화면

 

내 컴퓨터에서 드라이버 찾아보기를 클릭합니다.

 

 

찾아보기

 

찾아보기를 눌러줍니다.

 

 

상위 폴더 선택

 

방금 압축을 푼 폴더의 상위폴더를 클릭하시고 확인을 눌러줍니다. 저의 경우 다운로드 폴더를 선택했습니다.

그리고 다음을 눌러주시면 알아서 설치됩니다.

 

 

설치 완료 화면

 

설치를 완료하면 위와 같은 화면이 나옵니다.

 

 

장치관리자 화면

 

그리고 장치관리자 화면을 내리면 포트 항목에 CP210x ~가 나오는 것을 볼 수 있습니다.

 

이제 아두이노 IDE에서 연결 설정을 해보겠습니다.


 

3. 아두이노 IDE에서 ESP8266 연결 설정

 

먼저 지금 ESP8266이 어떤 포트에 연결되었는지 꼭 확인해야 합니다.

 

장치관리자 화면

 

장치관리자 화면에서 아래로 내리면 포트가 있습니다. 거기서 CP210x~~하고 괄호 안에 COM8이라고 되어있습니다. 이것이 ESP8266의 포트번호입니다. 꼭 기억해 주세요.

 

 

그리고 아두이노 IDE를 켜 주세요. 아두이노 우노를 선택 하듯이 Select Board를 클릭하면 아래 사진처럼 나옵니다.

 

보드 선택 화면

 

아두이노를 연결했을 때와는 다르게 모든 포트가 Unknown으로 나옵니다. 걱정하지 마시고 방금 기억한 포트 번호를 클릭해 줍니다.

 

 

보드 선택 화면

 

클릭하면 검색창이 나오는데, 여기에 node를 검색해 줍니다. 그리고 nodeMCU 1.0 (ESP-12E Module)을 클릭합니다. 그리고 OK를 눌러줍니다.

 

 

정상 화면

 

정상적으로 설정 되었다면 NodeMCU 1.0 (ESP-12... 으로 나오는 모습을 볼 수 있습니다.

 

이제 ESP8266 예제를 업로드 해 보겠습니다.

 


 

4. ESP8266 예제 업로드

 

예제 중 가장 기본인 Blink를 업로드 해 보겠습니다.

 

ESP8266 Blink 예제 위치

 

File -> Examples -> Examples for NodeMCU 1.0 (ESP-12E Module) 중 ESP8266 -> Blink를 클릭해 줍니다.

 

 

업로드

 

바로 업로드 합니다.

 

 

업로드 중 화면

 

천천히 %가 올라가면 정상입니다. 아두이노 보드들을 업로드 할 때 보다 시간이 훨씬 오래 걸립니다.

 

 

완료 화면

 

전부 완료하면 Output에 저렇게 나옵니다.

 

정상 작동 모습

 

정상적으로 깜빡이는 모습도 볼 수 있습니다.

 

 

※ 업로드 오류상황 ※

저도 이번 블로그 글을 쓰다가 예상치 못한 오류를 발견했습니다.

오류 화면

 

제가 가진 Node MCU ESP8266 보드의 칩이 모두 동일한 줄 알았는데, 한개가 ESP8266EX칩이었습니다! 그래서 업로드가 정상적으로 되지 않더군요.

 

다른건 정상적으로 업로드 되는데 특정 보드에서만 오류가 발생하네요. 해결 방법을 알아내면 다음에 글을 작성해서 링크 달아두겠습니다.

 


 

오늘은 이것으로 NodeMCU ESP8266 보드 설정부터 업로드까지 알아봤습니다. 이를 이용해서 여러분만의 IOT 기기를 만들어보시길 바랍니다. 감사합니다.