본문 바로가기
아두이노 관련/NodeMCU

NodeMCU - 아두이노 개발환경에서 NodeMCU 보드 사용하기

by Bugwhale 2020. 2. 5.

2020.02.05 동작 확인 완료

1. 개요

Wi-Fi 관련 프로젝트를 진행하기 위해 아두이노 Wi-Fi Shield 대용으로 ESP8266 칩을 사용하는 ESP-01 모듈을 구입하여  Web Server, Web Client, HTTP 등 여러가지 테스트를 해보았다. 

만족할 만한 결과를 얻었으나 큰 문제가 있었다. ESP-01 모듈 단독적으로 사용할수 있는 IO 핀이 적어 계획하는 프로젝트를 사용하기 위해서는 다른 개발보드와 병행하여 사용해야 하는 것이었다.

또한 ESP-01 모듈을 기반으로 만들어진 만족스러운 라이브러리가 없어 스스로 AT 명령어로 제어해야하는 번거로운 점(모듈이나 Wi-Fi 자체를 공부한다면 이건 다른 관점으론 장점이다.) 등 불편한 부분이 있어 알아보던 중 "Wemos D1, NodeMCU" 와 같은 개발 보드를 찾게되었다.

가격 면이나 기능면에 거의 다 비슷하나 브래드보드를 사용하는 확장성 때문에 NodeMCU 로 선택하였다.

2. 아두이노 개발환경 준비하기

NodeMCU 보드는 다른 아두이노 계열의 보드들과 다르게 연결 후 아두이노 IDE 에서 바로 업로드를 할 수 없습니다. 하지만 많은 개발자들이 ESP8266 에 칩에 대한 라이브러리를 만들며 NodeMCU 보드도 같이 추가되었습니다. 해당 라이브러리를 설치하면 NodeMCU 개발 보드를 위한 개발환경이 구축되는 것입니다. 여러 라이브러리가 있지만 그 중에서도 가장 완벽한, 많은 예재 소스와 소스코드가 최적화되어 있는 ESP8266 Wi-Fi 라이브러리를 사용합니다.

2.1 ESP8266 Wi-Fi 라이브러리 설치하기

아두이노 개발환경에서 File - Preferences 를 클릭 후 Additional Boards Manager URLs: 빈칸에 다음 링크를 적어줍니다.

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

이 후 Tools - Board: - Board Manager 클릭합니다.

검색창에 esp8266 를 검색하여 나오는 패키지를 다운로드해줍니다. 용량이 커서 다운받는데 시간이 걸립니다. 다운로드 완료 후 아두이노 개발환경을 재실행해줍니다.

3. NodeMCU 개발보드 테스트

3.1 LED 점등, 소등하기

Tools - Board 항목에서 ESP8266 기반의 개발보드들이 추가된 것을 확인할 수 있습니다. NodeMCU 1.0(ESP-12E Module) 보드를 선택해줍니다.

다음 소스코드를 코딩해줍니다.

#define PIN_LED 2

void setup() {
	pinMode(PIN_LED, OUTPUT);
}

void loop() {
	digitalWrite(PIN_LED, LOW);
	delay(1000);
	digitalWrite(PIN_LED, HIGH);
	delay(1000);
}

 File - Examples - ESP8266 - Blink 예제 파일을 열고 LED_BUILTIN 부분을 2로 바꿔줘도 됩니다.

Tool - Port 번호를 맞춰주고 업로드를 해줍니다.

NodeMCU 보드 LED 가 점등 및 소등되는 것을 확인할 수 있습니다. (참고로 사진처럼 브래드보드 두개를 겹치면 NodeMCU 보드를 양쪽으로 꼿을 수 있다.)

3.2 Wi-Fi 연결하기

아래 코드는 Wi-Fi 에 연결 후 부여받은 아이피를 보여주는 코드입니다. 아래 ssid, password 부분의 사용하고자 하는 Wi-Fi 의 이름과 패스워드를 정확하게 입력해줘야 합니다.

#include <ESP8266WiFi.h>

const char* ssid     = "사용하고자 하는 Wi-Fi 이름";
const char* password = "사용하고자 하는 Wi-Fi 패스워드";

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

  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
}

시리얼 모니터를 켜고 115200 baud 로 맞춰주면 아래와 같이 Wi-Fi 가 연결되고 아이피 주소를 보여줍니다.

4. 참조

-

댓글