esp8266
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
- usb serial driver install - CP210x_Universal_Windows_Driver
- 장치 연결 확인
- Windows - 장치관리자 > usb com serial port 확인
- Linux -
lsusb
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
또는 상단Save
시init.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
- NodeMCU Document - https://nodemcu.readthedocs.io/en/release/
- NodeMCU custom builds - https://nodemcu-build.com/
- esplorer - https://esp8266.ru/esplorer/