esp-8266는 대부분 아두이노의 와이파이 모듈로써 접해 보신 분들이 많습니다.
사실 esp-8266은 프로그래밍이 가능하여 esp-8266만으로도 iot 프로젝트를 진행 할 수 있습니다.
우선 esp-8266에 대해 알아보고 넘어가도록 하겠습니다.
ESP-8266은 위 모델 이외의 다양한 모델이 있지만 01보드를 기준으로 강좌를 진행하도록 하겠습니다.
esp-8266은 ESPRESSIF SYSTEMS라는 중국기업에서 개발되었습니다.
- 802.11 b/g/n protocol (근거리 무선통신, 와이파이에 사용되는 표준기술)
- Wi-Fi Direct (P2P), soft-AP(와이파이를 탑제한 기기간의 직접적인 통신, 액세스 포인트를 소프트웨어로 구현한것으로 스마트폰의 테더링이나 핫스팟과 같은 원리 입니다.)
- Integrated low power 32-bit CPU(저전력 32bit cpu가 내장되어 있습니다. 아두이노는 8bit)
- SDIO 2.0, SPI, UART
- SDIO(sequre digital input/output) 은 제어방식의 일종으로 메모리카드나 무선랜등에 활용된다고 합니다.
- SPI 직렬 주변기기 인터페이스(시리얼 통신과는 다르지만 마스터와 슬레이브가 구분되어 통신합니다.)
- UART (아두이노의 serila 통신과 같습니다.)
위와같은 스펙이 있습니다.
그리고 개발환경에 대해 소개해드리도록 하겠습니다.
- NODE-MCU
- ESP-8266 SDK
- ESP-8266 ARDUINO IDE
이렇게 3가지가 있습니다.
NODE-MCU는 NodeMCU팀에서 개발한 펌웨어를 ESP-8266에 적용하여 사용하는 것으로써 LUA라는 스크립트 언어를 사용하여서 ESP-8266을 제어합니다.(LUA에 대해서는 나중에 소개해 드리도록 하겠습니다.)
ESP 8266SDK와 ARDUINO IDE는 ESPRESSIF SYSTEMS에서 제공하는 개발환경입니다.
저는 NODE MCU를 먼저 접하여서 이에대한 강좌는 NODE-MCU강좌를 진행하고, 공부하면서 이어서 진행하도록 하겠습니다.
이제 드디어 본론이네요.
NODE_MCU FLASHING(펌웨어 설치하기)
아두이노도 ATmega328보드에 아두이노 펌웨어를 설치하듯이 ESP-8266에서도 NodeMCU로 개발을 하기 위해서는 펌웨어를 설치해야 합니다.
이러한 소프트웨어를 활용해서 펌웨어를 설치해야합니다.
이곳에 들어가셔서
Download ZIP를 눌러 다운로드 하시면됩니다.
압축을 푸신되 프로그램 사양에 따라 32나 64비트 폴더로 들어가시면됩니다.
config 폴더는 없으시겠지만 esp8266flasher가 보입니다.
다운로드 하시기전에 회로를 구성합니다.
fritzing에는 esp 8266 보드가 없어서 잘 표현하지 못한점 죄송합니다.
이미지의 점퍼선 8개가 esp 8266의 핀을 뜻합니다. 순서는 왼쪽에서 오른쪽으로 위에서 아래 순입니다.
1(GND) | 2(GPIO2) | 3(GPIO0) | 4(RX) |
5(TX) | 6(CH_PD) | 7(reset) | 8(vcc:3.3v) |
핀배열.1- gnd에 연결
2- 연결없음
3- gnd에 연결(펌웨어 설치시에만 연결됩니다. 펌웨어 버전따라 vcc에 연결하기도 합니다.)
4- FTDI TX에 연결
5- FTDI RX에 연결
6- vcc에 연결(항상 연결됩니다. 프로그래밍할때, 동작할때)
7- 연결없음(스위치를 달아두는 사람도 있지만 달지 않도록 하겠습니다.)
8- 3.3v에 연결 esp 8266이 동작하는 최대전압은 3.6v입니다.
자 이렇게 연결 하신 뒤에 설치를 시작하도록 하겠습니다.
프로그램을 실행시킨뒤 ftdi가 연결된 포트를 선택합니다.
Advanced에 들어가서 이렇게 설정을 해주도록 합니다.
(9600인 esp8266이 있으니 주의해주세요! 플레시를 하기전에 아두이노의 시리얼 체팅 프로그램으로 테스트를 해보도록 합시다.)
다시 Operation에 돌아가서 flash를 누르시면 왼쪽 아래에 파란색 아이콘이 움직이기 시작하면 브래드 보드의 전원선을 들었다 다시 끼운다는 느낌으로 전원을 끊었다 재연결 하시면 됩니다.
그렇게 하시면 아래와 같이 펌웨어 설치가 시작됩니다.
펌웨어 설치가 끝나면 왼쪽 아래에 초록색으로 체크표시가 되있는 아이콘이 보이실 것입니다.
이로써 펌웨어 설치를 끝내셨습니다.
ESP-8266으로 LED깜빡이기
아두이노를 처음하면 하게되는 led깜빡이기 예제와 마찬가지로 esp-8266으로도 led를 깜빡여 보도록 하겠습니다.
esp-8266을 개발하기 위해 사용하는 툴을 다운로드 해 봅시다.
링크를 내리다보면 위의 사진과 같이 DOWNLOAD NOW라는 버튼을 누르시면 다운로드가 시작됩니다.
다운르드 한 압축파일을 해제하면 다음과 같은 파일이 보입니다.
ESPlorer은 java프로그램이니, java가 없으면 사용이 불가능합니다.
자바는 이곳에서 설치하시면 됩니다.
ESPlorer 실행화면 입니다.
우선 회로를 수정하도록 합니다.
단순히 3번 핀과 그라운드이 연결을 해제 하였습니다.
이제 esp-8266과 esplorer의 연결을 해보도록 합니다.
ftdi의 포트에 맞게 설정하신뒤 open을 눌러줍니다. 연결에 성공하면 예제 코드를 넣어보도록 합니다.
state=0
pin=4
gpio.mode(pin,gpio.OUTPUT)
tmr.alarm(1,500,1,function()
if state == 0 then
state = 1
gpio.write(pin,gpio.HIGH)
else
state = 0
gpio.write(pin,gpio.LOW)
end
end)
세미콜론도 없는 이상한 언어라고 느끼실 수 있는 이 언어는 lua라는 스크립트 언어입니다. 이언어에 대해서는 강좌를 진행하면서 알아 보도록 하겠습니다.
코드를 넣으셨으면 왼쪽 하단의 save to ESP 를 눌러주세요.
이때 저장하는 파일명은 init.lua로 하셔야 합니다.
node MCU는 esp 8266내에 init.lua라는 파일을 저장하고 프로그램이 실행할때 이를 참조하여서 동작하는듯합니다.
그래서 init.lua라는 파일로 저장을 하게되면 코드가 동작하게 됩니다.
이것의 루아 언어의 특징입니다.
다운로드에 성공하면 위의 사진과 같이 오른쪽에 텍스트가 뜹니다.
동작을 확인해 보도록 하겠습니다.
회로는 다음과 같이 구성해 주시면 됩니다.
2번째 핀에 led를 달아주도록 합니다.
ftdi는 연결하지 않으셔도 잘 동작합니다.
동작 모습으로 강좌를 끝내도록 하겠습니다.
감사합니다.