ESP8266-01 모듈을 사용하는 아두이노 예제가 흔하게 포스팅되어 있으다. ESP-01 모듈은 간편하기도 하나 한편으로는 우선적으로 Firmware 설치 후 배선을 다시 수정해야 하는 번거로움이 있을 수 있다. 반면에 ESP8266WiFi 모듈의 경우에는 Firmware 업데이트 자체는 필수적이긴 하나 별도의 하드웨어 배선 수정 작업은 필요치 않다는 특징이 있다. ESP-01의 배선 수정 작업이 GPIO 배선을 제거하는 단순 작업이라고는 하나 여타의 센서들로 구성된 아두이노 보드에서 배선 변경 작업의 필요성은 결구 복잡한 배선의 신뢰성을 떨어뜨릴 수도 있으므로 ESP8266WiFI ESP-12 또는 ESP-12E 모듈 사용으로 뛰어난 배선 상의 깔끔함을 맛볼 수 있을 것이다.
본 블로그의 중요 목적 중의 하나는 누구나 다 ESP8266WiFI ESP-12 또는 ESP-12E 모듈을 아두이노 보드로 응용할 수 있기 위해서 정확하게 설치하는 과정을 제시하고자 함이다. 인터넷에 올라 온 많은 정보들 중에는 Esplorer.exe를 사용하면서 좀 더 특수한 컴퓨터 언어인 lua를 사용하는 경우들이 종종 있는데 이는 고급 사용자들의 영역으로 보이므로 아두이노로 성공 시킨 후에 관심을 가져도 될 것이다.
두 가지의 응용 프로그램을 다루어 본다. 첫째는 WiFi 공유기 Scan 이며 둘째는 WebServer 사례이다. 그밖에 아두이노 사용자들이 관심을 가지는 응용으로서는 사물인터넷 분야에서 아두이노의 센서를 통해 수집한 데이터를 약 15초 간격으로 Thingspeak.com 웹서버에 기록하고 결과 그래프를 보는 것일 것이다. 이 프로그램은 별도의 Cactus Micro WiFi 프로그램 블로그에서 편에서 제시하도록 한다.
아두이노 편집기(Arduino IDE)를 사용하여 데스크탑 PC 또는 노트 북에서 Acrobatic ESP8266WiFI ESP-12 모듈 설치를 위해서 처음에 최초로 NodeMCU를 USB 단자에 연결했을 때 장치관리자를 통해 PC가 ESP-12를 인식할 수 있도록 CH340G USB Serial 드라이버를 업데이트 설치해야 할 필요가 있다. 아두이노 보드 프로그래밍 시에 다른 종류의 USB 시리얼 드라이버를 설치했다하드라도 반드시 이 작업이 필요하다. CH340G USB Serial 드라이버는 인터넷 검색을 통해 쉽게 찾을 수 있다. 이 작업은 아두이노 편집기와 상관없이 외부의 특정한 장치를 PC에 연결하여 사용하기 위해서 이루어지는 장치 관리자 업데이트 과정으로 이해하자.
참고로 처음 NodeMCU를 PC에 연결하여 인식이 되고 난 후에 아래에 설명되는 Firmware 설치 진행 후 아두이노 편집기에서 NodeMCU를 소위 예를 들자면 COM17 이러한 방식으로 정상적으로 인식하게 된다.
1. 다음은 ESP8266WiFI ESP-12 모듈 보드의 펌웨어 설치 과정이다. ESP-01과 같은 별도의 배선 수정 없이 소프트웨어적인 과정이다. 펌웨어 설치 소프트웨어는 github 사이트에서 다운 받도록 한다.
https://github.com/nodemcu/nodemcu-firmware/releases
비슷한 기간에 여러 번 업데이트가 이루어졌음에 유의하여 2015년 7월 14일 버전을 다운 받도록 하며 본 블로그에서는 nodemcu_integer_096-dev_20150704.bin 버전을 다운 받아 사용하였다. esp8266flasher.exe를 사용하여 ESP-01 펌웨어 설치를 해 본 경험이 있다면 앞서의 bin 파일이 어떻게 사용되는지 쉽게 알 수 있을 것이다.
이 그림의 좌측 상단 하단 우측 상단 하단 순서로 보기 바란다.
2. 다음은 ESP8266WiFI의 Firmware 설치 소프트웨어를 다음의 github 주소에서 통째로 다운 받아 압축을 풀어야 한다.
https://github.com/nodemcu/nodemcu-flasher
3. 여기서는 64비트 윈도우 7을 사용하고 있으므로 Win64/Release 디렉토리에 포함된 ESP8266flasher.exe를 실행시킨다. 장치관리자에서 USB 시리얼에 인식된 COM 포트 번호를 입력한다. 여기서는 COM 17으로 인식되었으므로 17을 입력한다.
4. Config 탭을 누르면 초록색 칸이 뜨는데 오른 쪽의 치차형 버튼을 누르면 좌하단에 QR코드가 뜨면서 Firmware 설치가 시작된다. 일정 시간 경과 후 설치가 끝나게 되면 하단에 초록색 체크 마크가 표시된다.
아두이노에서 ESP8266WiFi 모듈을사용하기 위해서는 파일 탭에서 환경설정을 먼저 확인한다. 참고로 PC에 JSON(Java Script Object Notation)가 반드시 깔려 있어야 한다. 그러면 붉은 색 박스의 정보가 자동적으로 입력되어 있음을 확인하도록 한다.
제어판에서 프로그램으로 들어가면 자바가 깔려있는지 쉽게 확인할 수 있다.
이 자바와 바로 앞의 JSON이 어떤 상관 관계를 가지는지 확실치는 않다는 점에 유의하자.
툴 탭의 보드선택에서 보드매니저로 들어가 창이 뜨면 esp8266를 입력하고 인스톨 작업을 시행한다. 좌측 화면은 이미 설치가 완료되었음을 나타낸다.
esp8266 보드 설치 작업이 완료되면 보드 종류 중 NodeMCU 0.9와 1.0 버전이 포함되었음을 알 수
있으며 아두이노 편집기가 보드의 버전을 인식하여 NodeMCU 0.9임을 지적하고 있다.
실제 보드 구매는 NodeMCU 1.0(ESP-12E Module) 버전이지만 0.9버전으로 지정 진행해도 큰 문제는 없다. 12모듈과 12E 모듈의 특성 차이가 있는 복잡한 프로그램의 경우에는 정확하게 지정할 필요가 있다.
NodeMCU 설치와 아울러 파일 탭에서 관련 예제가 탑재되었음을 확인한다. 예제 중 붉은 색 박스의 WiFiScan과 WiFiWebServer를 살펴보기로 한다.
WiFiScan 예제를 선택하고 프로그램을 읽어 들여 작업하면 된다. 컴파일 작업 후 업로딩을 실시한다. 주의할 점은 통상적인 업로딩 후 주황색 메시지가 뜨게 되는데 에러가 아님에 유의한다. Acrobatic ESP8266WiFi 모듈은 아두이노 보드와는 CPU가 달라 2단계 형태의 업로딩이 일어나는 것으로 보여 진다.
WiFiScan.ino
/*
* This sketch demonstrates how to scan WiFi networks.
* The API is almost the same as with the WiFi Shield library,
* the most obvious difference being the different file you need to include:
*/
#include <ESP8266WiFi.h>
void setup() {
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");
}
void loop() {
Serial.println("scan start");
// WiFi.scanNetworks will return the number of networks found
int n = WiFi.scanNetworks();
Serial.println("scan done");
if (n == 0)
Serial.println("no networks found");
else
{
Serial.print(n);
Serial.println(" networks found");
for (int i = 0; i < n; ++i)
{
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*");
delay(10);
}
}
Serial.println("");
// Wait a bit before scanning again
delay(5000);
}
ESP8266 WiFi 모듈 설치 시에 baud
값을 9600으로 둔다는 정보들이 많으나 이 프로그램에서는 115200을 그대로 사용하지만 아무런 문제가 없음을 지적한다.
시리얼 모니터링 결과에 의하면 상당히 빠른 속도로 주변 공유기 리스팅 작업이 이루어짐을 알 수 있다. 반드시 자신의 핸드폰 핫스팟을 켜 확인하도록 한다.
AT 명령으로 기준으로 본다면
AT
AT+RST
AT+GMR
AT+CWLAP 까지 프로그램이 실행되었음을 알 수 있다.
다음에 다룰 예제는 본인 핸드폰 핫스팟이나 공유기 기능을 사용하여 자신의 스마트폰 이나 패드의 웹 화면과 ESP8266NodeMCU 서버와의 간단한 통신 프로그램을 다루기로 한다.
'아두이노프로세싱 프로그래밍' 카테고리의 다른 글
아두이노 NodeMCU ESP8266WiFi 모듈의 핀배치 프로그래밍 주의 사항 (0) | 2017.01.12 |
---|---|
아두이노 ESP8266WiFi NodeMCU 모듈사용 와이파이 Web Server 예제:II (0) | 2017.01.10 |
아두이노 RF(Radio requency)모듈에 의한 센서 측정값 전송 및 프로세싱 그래픽 (0) | 2016.12.30 |
아두이노 RF(Radio requency)모듈에 의한 문자 캐릭터 통신 (0) | 2016.12.27 |
프로세싱 프로그램에 의한 아두이노 보드의 LED 제어 (0) | 2016.12.27 |