티스토리 뷰






아두이노 무선 통신 환경을 구축 검토를 하다가 AliExpress에서 "nodeMCU"라는 모듈을 처음 접하게 되었다.
Low-Cost (가격,전력) 를 목표로 433MHz RF 모듈로 아두이노간 통신 환경을 구축하다가 통신 수업에서나 배웠던 경합, 스케쥴링 따위 것들로 고생하던 차였다.

$3 도 안되는 가격에 GPIO + WiFi 모듈, 그리고 자바스크립트 형식의 프로그래밍은 매력적인 제안일 수 밖에 없었다.
주) Lua Script로 Javascript와 완전히 일치하지는 않는다. 또한 Lua Script를 모두 지원하는 것도 아니다.
인터넷을 검색해보니 관련 정보가 많지 않고 환경 설정 과정이 아두이노처럼 간단하지 않은 것 같았지만 한번 도전해보기로 했다.

여러가지 모델들이 있는데 내가 구매한 모듈은 아래 것(V3)이며 NodeMCU 호환품으로 보인다.



저렴한 제품인 만큼 설명서도 제대로된 사이트도 없다. 구매 페이지에도 아무런 설명이 없다.
인터넷의 글들도 이 제품과는 정확히 맞아떨어지지 않았다.
그나마 무사히 설치하는데 도움이 된 것은 칩 뒤에 써 있던 아래 네 줄의 설명...ㅜ.ㅜ

1. install CH340G Driver
2. use 9600bps baud rate
3. Connect to WiFi

wemos.cc


성공한 과정을 정리를 좀 해보았다.
개발환경은 MAC OSX 10.11.5 (El Capitan)이었으며 이미 Arduino 관련 설정이 다 되어 있는 상태였다.

  1. CH340G 드라이버 설치
    이 부분은 성공하고 나서 생각해보니 장치가 인식이 된다면 꼭 필요한 부분은 아닐 것 같다. 
    아마도 드라이버는 아두이노 개발환경을 설치할 때 같이 설치된 것으로 보인다.
    나의 경우 장치는 제대로 인식이 되었는데 통신이 안되는 상황이라 뭐라도 해보자는 심정으로 시도해 보았다.

    http://www.homautomation.org/2015/02/05/how-to-use-arduinos-with-ch340g-ch341g-serialusb-ftdi-chip/


  2. Flash 올리기
    인터넷 글에는 NodeMCU 모듈은 이미 NodeMCU 펌웨어가 탑재된 상태라고 했는데 이 제품의 경우 그렇지 않았다.
    펌웨어 탑재해야 한다는 사실은 홈페이지(http://wemos.cc)를 통해서 알았지만, 막상 Flash 툴은 홈페이지에 안내되어 있는 esptool(https://github.com/igrr/esptool-ck)은 "El Capitan"에서는 문제가 있어 사용할 수가 없었다. (https://github.com/igrr/esptool-ck/issues/20)

    대신 Windows 환경이나 MAC이라면 가상환경 (Parallel, VMWare, VirtalBox 등)에서 아래 글을 참고해서 더 쉽게 플래쉬 탑재가 가능하다.

    http://www.14core.com/how-to-use-nodemcu-flasher-step-by-step-tutorial/

    위의 글에서 소개하고 있는 툴인 NodeMCU Flasher(https://github.com/nodemcu/nodemcu-flasher)는 기본적으로 NodeMCU 펌웨어를 포함하고 있어서 편하기도 하다. 위 설명글에서는 본인의 펌웨어 파일을 올리라고 되어 있지만 아래 그림처럼 기본적으로 NodeMCU 롬을 포함하고 있어서 그냥 COM Port 설정 후 Flash 버튼만 눌러주면 된다.



  3. 터미널 테스트
    펌웨어 탑재가 무사히 성공했다면 시리얼 통신을 지원하는 터미널 프로그램을 이용해 테스트해볼 수 있다.
    Mac은 CoolTerm, Windows는 putty를 이용하면 된다. 

    이때 중요한 것은 처음 접속하면 글에 나오는 프롬프트 ('>') 가 떨어지지 않는다는 점이다.
    글을 잘 읽어보면 설명이 나와 있기도 하지만 이 제품의 경우 Reset 버튼(RST)를 한번 눌러줘야한다.


    https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-nodemcu-lua

    글에 있는 모든 테스트를 해볼 수도 있겠지만 터미널 툴은 여러모로 불편하므로 접속에 성공하면 바로 개발툴 (ESP Explorer)로 넘어가자.

  4. ESP Explorer 설치하기 (http://www.14core.com/downloads-2/)
    기본적인 사용 방법은 아래 글 참조.

    http://deneb21.tistory.com/400

    간단한 테스트는 파일 쪽에 써 놓고 저장할 것 없이 "Send to ESP"를 누르면 라인 단위로 NodeMCU로 전달되어 실행이 된다.


  5. WiFi 접속해보기
    다시 Adafruit 글 참조.

    https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-nodemcu-lua

    Adafruit 글을 옮겨 놓은 국내 블로그들은 아래 내용이 빠져있어서 AP 검색도 접속도 되질 않는다.

    wifi.setmode(wifi.STATION)


테스트를 무사히 마치고 나니 유용하게 쓸 수 있겠다는 결론이다. 
Arduino 처럼 다양한 라이브러리는 아직 없지만 통신을 위주로 하는 간단하고 저렴한 모듈로는 Arduino보다 훨씬 효용성이 좋을 것 같다.



Apendix.


1. 구동 시 WiFi 접속하기 위한 Script.

예제와 같이 Alarm을 쓰지 않고 loop( for, while)을 사용하는 경우 IP를 가져오지 못하는 경우가 발생한다.


https://www.domoticz.com/wiki/ESP8266_WiFi_module


 wifi.setmode(wifi.STATION)
 wifi.sta.config("YOUR SSID","YOUR KEY")
 wifi.sta.connect()
 tmr.alarm(1, 1000, 1, function()
  if wifi.sta.getip()== nil then
  print("IP unavaiable, Waiting...")
 else
  tmr.stop(1)
 print("ESP8266 mode is: " .. wifi.getmode())
 print("The module MAC address is: " .. wifi.ap.getmac())
 print("Config done, IP is "..wifi.sta.getip())
 dofile ("domoticz.lua")
 end
 end)



2. NodeMCU  Reference

https://nodemcu.readthedocs.io/en/master/



3. Lua Reference
http://lua-users.org/wiki/LuaDirectory

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함