아두이노 코딩-60: 아두이노 사물인터넷 NodeMCU WiFi 보드 Firmware 설치 및 WiFi 공유기 Scan 예제
지난 와이파이 사물인터넷 코딩에의 초대에서 와이파이가 가능한 아두이노 호환 보드로서 두종류 즉 NodeMCU 와 WeMos를 소개했다.
와이파이에 의한 아두이노 사물인터넷 IOT 코딩에의 초대
https://steemit.com/kr/@codingart/iot-1
물론 정품 아두이노 와이파이 쉴드라든지 또는 Arduino Yun 과 같은 뛰어난 성능의 제품이 있을 수 있으나 이들의 가격이 아두이노 우노 보드 가격의 대 여섯배를 훌쩍 뛰어넘을 만큼 만만치 않다. 지금 현재 hobby coding 이나 hobby electronics 영역에서 적절한 보드 가격기준은 아두이노 우노 보드 수준에서 약간의∓알파 인 듯싶다.
여기서는 NodeMCU 보드에 Firmware 를 설치하는 과정과 설치 후 WiFi 공유기 Scan 예제코드를 다루어 보기로 한다. 반면에 WeMos 보드는 그러한 과정 없이 보드매니저에서 보드 종류만 설정한 후 막바로 사용이 가능하다는 점을 지적해 둔다.
아두이노 편집기(Arduino IDE)를 사용하여 데스크탑 PC 또는 노트북에서 NodeMCU ESP8266WiFI ESP-12 모듈 설치를 위해서 COM 포트에 USB 케이블을 연결했을 때 장치관리자를 통해 PC가 ESP-12를 인식할 수 있도록 CH340G USB Serial 드라이버를 업데이트 설치해야 할 필요가 있다.
원래 아두이노 스케치 편집기 설치 시에 자동적으로 USB-2-Serial 드라이버가 설치되지만 아두이노 호환 NodeMCU를 사용하기 위해서는 반드시 이 드라이버 설치가 선행되어야 하며 알아서 NodeMCU 나 WeMos 보드를 인식하게 된다.
CH340G USB Serial 드라이버는 인터넷 검색을 통해 쉽게 찾을 수 있다. 이 작업은 아두이노 편집기와 상관없이 외부의 특정한 장치를 PC에 연결하여 사용하기 위해서 이루어지는 장치 관리자 업데이트 과정으로 이해하자.
다음은 ESP8266WiFI ESP-12 모듈 보드인 NodeMCU의 펌웨어 설치 과정이다. Firmware 설치 소프트웨어는 github 싸이트에서 다운 받도록 한다.
https://github.com/nodemcu/nodemcu-firmware/releases
비슷한 기간에 여러 번 업데이트가 이루어졌음에 유의하고 반드시 2015년 7월 14일 버전을 그대로 다운 받도록 하며 본 블로그에서는 nodemcu_integer_096-dev_20150704.bin 버전을 다운 받아 사용하였다. 지정된 버전 이외의 Firmware 사용에 따른 문제는 각자의 몫이다.
ESP8266flasher.exe를 사용하여 ESP-01 펌웨어 설치를 해본 경험이 있다면 nodemcu_integer_096-dev_20150704.bin 파일이 어떻게 사용되는지 쉽게 알 수 있을 것이다.
다음은 ESP8266WiFI의 Firmware 설치 소프트웨어를 다음의 github 주소에서 통째로 다운 받아 압축을 풀어야 한다.
https://github.com/nodemcu/nodemcu-flasher
여기서는 64비트 윈도우 7을 사용하고 있으므로 Win64/Release 디렉토리에 포함된 ESP8266flasher.exe를 실행시킨다. 장치관리자에서 USB 시리얼에 인식된 COM 포트 번호를 입력한다. 여기서는 COM17으로 인식되었으므로 17을 입력한다.
위 사진에서 두 번째에 위치한 Config 탭을 누르면 초록색 칸이 뜨고 폴더가 나타나면 bin 파일을 선택한다. 그 다음 첫 번째에 위치한 Operation 탭을 선택하고 Flash(F)를 누르면 아래와 같이 좌측 하단에 QR코드가 뜨면서 Firmware 설치가 시작된다. 일정 시간 경과 후 설치가 끝나게 되면 하단에 초록색 체크 마크가 표시된다.
아두이노 편집기에서 ESP8266WiFi 모듈을 사용할 수 있도록 파일 탭 메뉴에 위치한 환경설정을 먼저 확인하자.
참고로 PC에 JSON (Java Script Object Notation)이 깔려 있으면 붉은 색 박스의 정보가 자동적으로 입력되어 있음을 확인할 수 있다. 이 인터넷 주소 url 은 툴 탭의 보드 매니저에서 esp8266 관련 호환 보드들을 설치할 수 있도록 지원하는 역할을 한다.
툴 탭의 보드선택에서 보드매니저로 들어가 검색 창이 뜨면 esp8266를 입력하고 install(인스톨) 작업을 시행한다. installed는 이미 설치가 완료되었음을 나타낸다.
보드 종류 중에는 앞으로 IOT 코딩에 사용하게 될 NodeMCU 1.0 버전과 WeMos D1 버전이 포함되어 있다.
esp8266 보드 설치가 완료되면 툴 탭의 메뉴 보드를 열어 추가된 사실을 확인하자.
아울러 파일 탭에서 ESP8266 관련 예제가 탑재되었음을 확인한다. 예제 중 붉은 색 박스의 WiFiScan과 WiFiWebServer를 살펴보기로 한다.
WiFiScan 예제를 선택하고 프로그램을 읽어 들이자.
지금부터 NodeMCU 보드에서 와이파이 코딩을 처리하기 위해서는 ESP8266WiFi.h 라이브러리 설치가 필수적이다. 거의 대부분의 소스 파일들이 GITHUB 사이트에 있으나 초기에는 찾아오기 힘든 경우도 더러 있을 수 있기에 아래에 지정된 다음 블로그에 NodeMCU 와이파이 코딩을 위한 ESP8266WiFi.h 라이브러리가 들어 있는 ZIP 파일을 첨부하였으니 다운 받아 설치하기 바란다.
아두이노 NodeMCU ESP8266WiFi 라이브러리 설치용 ZIP 파일 다운받으세요!
http://blog.daum.net/ejleep1/407
명칭이 esp8266wifi-master.zip 으로 되어 있는데 그 내부에 ESP8266.h 가 포함되어 있dm으니 다운 받아서 압축을 풀고 적당한 경로를 찾아서 설치하기 바란다.
라이브러리 설치 장소는 아두이노 폴더 내에 자신의 연습용 예제를 저장하는 폴더 공간이 좋은 듯하다.
툴 탭에서 보드와 포트를 지정한다.
이어서 컴파일 업로딩을 실시한다. 주의할 점은 통상적인 업로딩 후 주황색 메시지가 뜨게 되는데 에러가 아님에 유의한다. ESP8266WiFi 모듈은 메세지 구조를 관찰해 보면 아두이노 보드와는 CPU가 달라서인지 2단계 형태의 업로딩이 일어나는 것으로 보여 진다.
100% 업로딩 완료 메세지를 확인하면 즉각 시리얼 모니터를 켜도록 하자.
아두이노 NodeMCU ESP8266 WiFi 모듈 설치 시에 default baud 값이 115200 이므로 시리얼 모니터 하단의 보드레이트를 정확히 맞추도록 한다.
시리얼 모니터링 결과에 의하면 상당히 빠른 속도로 주변 공유기 리스팅 작업이 이루어짐을 알 수 있다. 자신의 스마트 폰 핫스팟을 켜 확인해 보는 것도 좋을 듯하다.
괄호 안의 – 숫자는 전파 강도를 나타낸다. NodeMCU 바로 옆에 두면 –30dbm 정도이며 1 m 거리안에서 –40dbm 수준이다.
다음 예제는 본인 핸드폰 핫스팟이나 무선공유기 기능을 사용하여 자신의 스마트폰이나 패드의 웹 화면과 ESP8266 NodeMCU 웹서버와의 간단한 WiFi IOT 코딩을 다루기로 한다.