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. 참조
-
'아두이노 관련 > NodeMCU' 카테고리의 다른 글
NodeMCU - NodeMCU MySQL DB(데이터베이스) 연동하기(웹서버 PHP) (0) | 2020.02.20 |
---|---|
NodeMCU - NodeMCU 웹클라이언트 HTTP 접속하기 (0) | 2020.02.19 |
NodeMCU - 웹서버 웹페이지 NodeMCU 온습도센서(DHT11) 사용하기 (0) | 2020.02.18 |
NodeMCU - 웹서버 웹페이지에서 NodeMCU 서보모터 제어하기 (2) | 2020.02.18 |
NodeMCU - 웹서버 웹페이지에서 NodeMCU LED 제어하기 (0) | 2020.02.07 |
댓글