Intro

  • 기본 정보
    • Espressif Systems 제조, 2014 출시
    • Wi-Fi 무선 통신 기능을 탑재한 저전력 마이크로컨트롤러
    • 저렴한 가격, IoT구현을 위한 최적의 컨트롤러
  • 스펙
    • CPU - Tensilica Xtensa® L106(Diamond Standard 106Micro) @80/160MHz (32-bit RISC)
    • 동작전압 - 2.7V~3.6V
    • WIFI - 802.11 b/g/n(HT20) 프로토콜
    • IO(pinout) - 17
    • RAM - 160KB(iRAM64KB,dRAM96KB)
    • SRAM - 1KB
    • 외장플래쉬 - 512KB(최소사양),OTA(on the air)최소사양(1MB)~16MB까지 지원
  • 개발을 위한 준비물
    • esp8266 개발 컨트롤러 (인터넷에서 구매)
    • nodemcu firmware - 직접 build하거나 만들어진 이미지를 다운 받는다.
    • firmware upload tool - esptool, NodeMCU-PyFlasher
    • Esplorer - Java로 만든 GUI 개발 툴 (오픈소스, 여러 OS에 독립 실행)
  • esp8266 개발보드 비교 - https://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/
  • 개발방법은 아두이노IDE를 통한 개발(C언어)과 nodemcu + Esplorer를 통한 개발(Lua언어)이 있다.
  • 전자는 인터넷에 많은 자료와 예제가 있으므로 이를 참조한다.
  • 여기에서는 nodemcu(Lua base Firmware) + Esplorer(GUI Dev Tool)에 집중한다.

STEP01. 하드웨어 준비: nodemcu esp8266 dev kit

ESP8266

STEP02. NodeMCU 펌웨어

  • 직접 빌드하는 것은 여러가지 문제가 있어 추후에 기술
  • 여기에서는 직접 다운로드 받는 방법으로 빠르게 시작하도록 한다.
  • nodemcu firmware download
    • https://nodemcu-build.com/ 방문
    • 자신의 email 주소를 입력
    • 모듈을 추가: 꼭 필요한 것만 선택
      • ex - ADC, GPIO, HTTP, I2C, File, Net, Node, 1-wire, SPI, Timer, UART, WiFi
    • Start Your Build 버튼 클릭
    • 자신의 이메일 확인 - 보내준 메일 내용 중 해당 링크를 눌러 다운로드
    • float.bin은 부동소수점 지원, integer.bin은 정수형만 지원
  • 펌웨어를 esp8266에 업로드(Flash)
    • NodeMCU-PyFlasher.exe를 다운로드(독립형 프로그램으로 설치 불필요)
    • esp장치의 Com 포트번호 확인
    • esp장치 펌웨어 업로드 세팅 - FLASH버튼 누른 상태에서 RST버튼 짧게 누름
    • 실행 후 펌웨어 이미지 업로드
      • Serial Port - COM3 (자신의 COM포트 확인)
      • NodeMCU firmware - 다운받은 펌웨어 지정
      • Baud Rate - 460800
      • Flash Mode - Dual I/O(Dio)
      • Erase Flash - no, yes wipes all data (이전 flash 제거 여부)
      • Flash NodeMCU 버튼 실행

STEP03. Esplorer

  • 자바 설치가 필요 - https://www.java.com/en/download/
  • 다운로드 - https://github.com/AndiDittrich/NodeMCU-Tool
  • 따로 설치가 필요없고 압축을 풀고 esplorer.bat(Windows) 또는 esplorer.sh(Linux)를 실행
  • 우측에 COM 포트 정해주고 연결(Open버튼), 속도는 (115200)
  • IDE 좌측화면은 로컬 코딩 영역, 우측은 원격 장치 대화 영역
  • lua 코드를 좌측화면에서 코딩 후 Upload또는 상단 Saveinit.lua로 저장
  • esp 장치에 RST버튼을 눌러 reset해서 적용을 확인한다.

  • Example Code - Built-in LED Test ```lua local switch_light = true local mytimer = tmr.create() local INT_TIME = 1000 gpio.mode(0, gpio.OUTPUT) gpio.mode(4, gpio.OUTPUT)

mytimer:register(INT_TIME, tmr.ALARM_AUTO, function(mytimer) if (switch_light) then gpio.write(0, gpio.LOW) gpio.write(4, gpio.HIGH) switch_light = false; else gpio.write(0, gpio.HIGH) gpio.write(4, gpio.LOW) switch_light = true; end end) mytimer:interval(INT_TIME) mytimer:start() ```

  • Esplorer 사용법 동영상

REFERENCE