본문 바로가기

프로그래밍/Arduino

Wifi모듈(ESP8266) 사용법(1) - 펌웨어 업데이트 하기(MAC)

v0.9.2.2ATFirmware.bin


0. 업데이트에 앞서서..
  - ESP8266는 3.3V를 사용하나 아두이노 보드의 TX, RX는 5V
  - 따라서, 
ESP8266이 고장날 수 있으나 진행결과 3개의 모듈 정상작동(운이 좋았을지도)
  - 가장 좋은 방법저항을 통해 5V → 3.3V로 만들어서 진행하는 방법.
  - 하지만 저는 그냥 진행.


1. 왜 업데이트를 해야 할까?
  - 아두이노와 연결해서 사용하기 위해 필요한 SoftwareSerial이 지원하는 최대 보드레이트: 19200
  - ESP8266의 기본 보드레이트: 115500
  - 사용하기 위해서는 ESP8266의 보드레이트를 낮춰야 함. 이를 위한 펌웨어를 업데이트.
  - 여기 설명하는 방법대로 업데이트를 완료 하면 9600 보드레이트로 변경.


2. ESP8266 설명 및 ESP8266과 아두이노 연결.

  - ESP8266 각 핀의 역할


  - ESP8266, 아두이노 연결

ESP8266

아두이노

RX

RX

TX

TX

VCC

3.3V

CH_PD(Chip Power Down)

3.3V

GND

GND

 CPIO0(펌웨어 업데이트 시 사용)

GND

GPIO2


 RST



<연결 완료>


3. 필요한 파일 다운로드
  - esptool 다운로드 후 원하는 위치에 압축풀기
  - 업데이트에 필요한 bin 파일
(첨부파일) 다운 후 esptool-master 폴더에 저장


<파일 다운로드 후 esptool-master 폴더에 저장>


4. 펌웨어 업데이트 실행
  - 포트 확인: 아두이노 IDE의 메뉴 → 포트


<USB 포트 확인(/dev/cu.usbmodem1431)>


  - bin파일 확인: (3)에서 다운받은 bin파일(첨부파일)

  - 터미널에서 esptool-master 폴더로 이동 후 명령어 실행
    
① pyserial 설치 명령어             sudo easy_install pip             sudo pip install pyserial

     esptool을 사용하여 펌웨어 업데이트 실행하는 명령어             sudo ./esptool.py --port 포트 write_flash 0x00000 bin파일.bin - 명령어 실행 중 Connecting 상태만 지속될 경우(인식문제로 인한 timeout 발생)

    ① RX, TX, GPIO0 연결 확인.     ② 아두이노 코드를 최초 코드로 초기화하여 업로드(setup이랑 loop만 있는 코드로)     ③ 보조전원 연결(연결했는데 계속 Connecting 상태면 빼보고 반복하다보니 됌..)     ④ 공급 전원 3.3V, 5V 변경(계속 안되길래 바꾸다보니 인식 됌..)     ⑤ USB포트를 뺐다가 다시 연결(반복하다보니 됌..)


<펌웨어 업데이트 완료>



5. 관련링크

- [아두이노] 와이파이 모듈 ESP8266 펌웨어 업데이트

- ESP8266 펌웨어 업데이트 하기
- Using esptool on a Mac to flash firmware update on ESP8266