로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Sensor Applications
아듀이노 응용소스
작성자 avrtools™        
작성일 2016/02/11
첨부#1 XcomUtil.zip (41KB) (Down:498)
첨부#2 at_0.40.0.0-sdk130-20150908.bin.zip (268KB) (Down:109)
ㆍ추천: 0  ㆍ조회: 612   
  ESP8266 WiFi 펌웨어 업그레이드
ESP8266 WiFi모듈의 펌웨어 업그레이드
 
최신 ESP8266 ESP-01 모듈 (USD 2.17 샘플가격 4,600원)
 
 
ESP8266 모듈의 종류 
WiFi 모듈 ESP8266은 ESP-01 부터 ESP-11 까지 용도에 따라 선택의 폭이 넓다.
인터넷 혹은 스마트폰에서 WiFi 무선으로 연결된 장치를 간단히 제어할 수 있다.
 
USD $4로 구입한 ESP8266 모듈의 성능은 매우 뛰어나다.
그래서 아듀이노 스켓치에서도 ESP8266의 펌웨어를 개발하고 업그레이드할 수 있다.
펌웨어 업그레이드는 USB to Serial 컨버터를 ESP8266에 연결하고 USB로 통신한다.
  
ESP8266 모듈의 펌웨어 업그레이드 방법 
EST8266-ESP01 모듈의 펌웨어를 업그레이드할 때는 다음과 같이 ,
사용 중일 때 포트로 쓰는 GPIO0 핀을 GND로 연결해야 한다.
 
ESP8266 모듈은 250mA 이상의 전류가 필요하다.
다음 회로와 같이 5V를 LDO에 공급하고 3.3V를 별도로 연결해야 한다.
  
 
 
ESP8266의 펌웨어 굽는 방법 #1
XTcomUtil.exe에서 firmware.bin 파일로 펌웨어를 업그레이드하는 방법.
 
1. GPIO0을 GND와 연결하고 전원을 껏다가 다시 켠다.
2. XTcomUtility을 실행한다. (첨부 파일 #1 XTcom-Utility.zip)
3. XTcomUtility의 Tools 매뉴의 Device 설정에서 Com port, bps는 115200을 선택한다.
4. Open과 Connect를 누른다.
 
 
5. API TEST의 Flash Image Download 에서 firmware .bin 파일을 찾는다.
6. DownLoad를 누르면 펌웨어를 굽기 시작한다.
 
 
 
7. 펌웨어 업그레이드가 진행된다, 진행 막대가 완료될 때 까지 기다린다.
8. 펌웨어 업그레이드가 끝났다. GPIO0을 GND와 분리한다.

ESP8266의 펌웨어 굽는 방법 #2
아두이노 스케치에서 소스를 컴파일하여 펌웨어를 업그레이드하는 방법 
 
ESP8266 모듈의 펌웨어를 업그레이드하려면 아두이노 스켓치는 3 단계로 보드를 추가해야 한다.
1) 파일 ->환경설정 -> 추가 보드 URLs -> http://arduino.esp8266.com/package_esp8266com_index.json -> 확인
  
 
2) 툴 -> 보드 -> 보드 매니저 -> 검색창에 ESP를 넣고 -> ESP8266을 찾으면 설치 -> 설치 끝 ->닫기
 
 
3) 툴 -> 보드 ->보유한 모듈을 찾는다 -> Generic ESP8266 Module ->선택
 
 
이제 다음과 같이 새로운 모듈 "Generic ESP8266 Module" 이 선택되어 있어야 한다.
보드 아래의 매개변수들은 필요에 따라 변경이 가능하다.
 
이제 ESP8266 모듈의 새로운 기능이 추가된 펌웨어 소스를 찾아서 업로드하면 된다.
  
 
최신 ESP8266-ESP12 모듈 (USD 2.17)
  
 
IO 핀이 부족하다면 ESP-12를 사용하라, AT 펌웨어는 완전히 같다.
 
80 Mhz의 32 비트 RISC MPU인 Diamond Standard Core LX3를 사용한다.
Boot ROM 64K, SRAM 96K, Instruction RAM 64K에 웬만한 기능은 다 들어있다. 
부트 롬 64K는 WIFi 연결과 Web-Server에 필요한 IPV4의 TCPIP protocol stack을 지원한다.
 
ESP8266 ESP-12 회로와 ESP8266EX의 핀 배열 (QFN32 USD 1.00)
 
 
주변 장치는 10 비트 ADC, 12C, SPI, PWM, UART, 802.11b/g/n WiFi를 모두 가지고 있다. 
ESP8266 모듈의 새로운 펌웨어를 찾는다면 어떤 기능이 추가됬는지 궁금해 진다.
WiFi로 연결하는 무선 제어장치를 설계할 때, 별도의 MPU는 필요없다고 생각된다.   
 
ESP8266 모듈의 규격
It's a wireless SoC
It has GPIO, I2C, ADC, SPI, PWM and some more
It's running at 80MHz
64KBytes of instruction RAM
96KBytes of data RAM
64KBytes boot ROM
It has a Winbond W25Q40BVNIG SPI flash
It's a RISC architecture
The core is a 106 micro Diamond Standard core (LX3) made by Tensilica
The ESP8266 chip is made by Espressif
 Modules bearing this chip are made by various manufacturers
 
ESP8266 모듈의 특징
802.11 b/g/n protocol
Wi-Fi 2.4 GHz, support WPA/WPA2
Super small module size (11.5mm x 11.5mm)
Integrated 10-bit ADC
Integrated TCP/IP protocol stack (ipv4 only at the moment)
Integrated TR switch, balun, LNA, power amplifier
and matching network Integrated PLL, regulators,
and power management units
+20dBm output power in 802.11b mode
Supports antenna diversity
Deep sleep power <10uA, Power down leakage current < 5uA
Integrated low power 32-bit MCU
SDIO 2.0, SPI, UART, I2C
STBC, 1x1 MIMO, 2x1 MIMO
A-MPDU & A-MSDU aggregation & 0.4μs guard interval
Wake up and transmit packets in < 2ms
Standby power consumption of < 1.0mW (DTIM3)
Operating temperature range -40C ~ 125C
 
ESP2866 WiFi 모듈 AT+명령
<>로 표시된 매개변수(parameter)는 생략해도 된다.
직렬포트는 115200 BPS로 설정해야 한다.
모든 명령은 대분자와 LF+CR 모드로 전송해야 실행된다.
 
Working 작동 확인
AT OK
 
Restart  WiFi 리셋 
AT+RST
OK
 
Sets Jan  8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 1396, room 16
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4
tail 8
chksum 0xc0
csum 0xc0
2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : DIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)

jump to run user1 @ 1000
can't use rtc mem data
sl럠rl��
Ai-Thinker Technology Co.,Ltd.
OK
 
Firmware version 펌웨어 개정판 확인
AT+GMR (구형 펌웨어 응답)
AT version:0.25.0.0(Jun  5 2015 16:27:16)
SDK version:1.1.1
Ai-Thinker Technology Co. Ltd.
Jun 23 2015 23:23:50
 
AT+GMR (신형 펌웨어 응답)
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK
 
WiFi Mode WiFI 모드를 설정
AT+CWMODE?
+CWMODE=2
OK
 
만일 2번 AP 모드에서 1 번 모드의 명령 AT+CWLAP는 작동하지 않는다.
이렇게 나오면, AT+CWMODE=3 으로 변경한다.
AT+CWMODE=3
OK
 
모드 설정은 3번으로 시작해야 모든 명령이 실행된다. 모드를 확인한다
AT+CWMODE?
+CWMODE:3
OK
 
CW 모드번호는 다음과 같다.
AT+CWMODE=1 STA
AT+CWMODE=2 AP
AT+CWMODE=3 BOTH
 
List Access Points 
연결가능한 AP를 알려준다
AT+CWLAP
+CWLAP:(4,"Yuvely",-93,"90:9f:33:11:58:4e",1,-51)
+CWLAP:(3,"leekyap-2",-44,"ec:08:6b:37:39:5e",6,-21)
+CWLAP:(4,"leeky-ap0",-67,"6c:19:8f:d0:9c:98",11,-44)
+CWLAP:(2,"RKR",-85,"00:08:9f:cc:d0:9c",11,-49)
+CWLAP:(4,"STORYLINK",-82,"b4:fc:75:10:f2:b8",11,-36)
OK
 
Set Parameters of Access Point  AP의 매개변수를 설정, 안해도 된다.
AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn>  ssid, pwd chl = channel, ecn = encryption  
 
Join Access Point 
발견된 AP로 연결
AT+CWJAP="leekyap-2","1050043312"
WIFI CONNECTED
WIFI GOT IP
OK
 
Get IP Address 연결된 IP주소를 묻는다
AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:d1:e0:42"
+CIFSR:STAIP,"0.0.0.0"
+CIFSR:STAMAC,"18:fe:34:d1:e0:42"
OK
 
Quit Access Point 연결된 AP를 끊는다
AT+CWQAP
OK
 
Set up TCP or UDP connection  이것은 모드 2의 AP 설정이다.
TCP 혹은 UDP를 설정 
AT+CIPSTART=? Query
(CIPMUX=0) AT+CIPSTART = <type>,<addr>,<port> type = TCP/UDP, addr = IP address, port= port  
(CIPMUX=1) AT+CIPSTART= <id><type>,<addr>, <port> id = 0-4, type = TCP/UDP, addr = IP address, port= port
 
TCP/UDP Connections 연결하는 사용자를 제한 
AT+ CIPMUX? 
+CIPMUX:0
OK
 
아직은 AT+ CIPSERVER= 1,80로 AP를 시작하지 않았으므로 사용자는 0 이다.
AT+ CIPMUX=0  Single
AT+ CIPMUX=1  Multiple
 
Check join devices 연결된 장치의 IP를 확인. 연결이 없으면 ERROR가 나온다. 
AT+CWLIF
ERROR
 
TCP/IP Connection Status TCP 연결상태를 확인, 
이 명령은 ?를 넣으면 ERROR가 나온다. 
AT+CIPSTATUS
STATUS:2
OK
 
Send TCP/IP data
TCP 데이터를 송신 
(CIPMUX=0) AT+CIPSEND=<length>;
(CIPMUX=1) AT+CIPSEND= <id>,<length>
 
 
Close TCP / UDP connection
TCP 혹은 UDP 연결을 종료 
AT+CIPCLOSE=<id>
AT+CIPCLOSE
 
Set as server 서버를 시작 혹은 정지,  80은 포트번호로 생략해도 된다.
그러나 AP 설정을 모두 해야만 이 명령이 실행된다. 
AT+ CIPSERVER= 0,80 mode 0 to close server mode;
AT+ CIPSERVER= 1,80 mode 1 to open; port = port
 
Set the server timeout 서버의 연결시간을 설정 
AT+CIPSTO=<time>  <time>0~28800 in seconds
 
Baud Rate* (9600, 19200, 38400, 74880, 115200, 230400, 460800, 921600) 직렬포트 연결속도를 변경 
AT+CIOBAUD?  실제 이 명령은 ERROR로 나온다. 피곤하다 !!!
+CIOBAUD:115200
OK 

Check IP address IP 주소를 확인 
AT+CIFSR 연결이 없는 경우
+CIFSR:STAIP,"0.0.0.0"
+CIFSR:STAMAC,"18:fe:34:d1:e0:42"
OK
 
AT+CIFSR 연결이 된 경우
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:d6:d5:fa"
+CIFSR:STAIP,"192.168.0.109"
+CIFSR:STAMAC,"18:fe:34:d6:d5:fa"
 
Firmware Upgrade (from Cloud) 펌웨어 업데이트 
AT+CIUPDATE
ERROR 
신형버전은 업데이트 안된다.
 
구형 버전은 WiFi로 연결하고 다음 명령으로 펌웨어가 업데이트 된다
AT+CIUPDATE
+CIPUPDATE:1 found server 
+CIPUPDATE:2 connect server 
+CIPUPDATE:3 got edition 
+CIPUPDATE:4 start update
 
그리고 모듈의 LED가 깜빡이고 잠간이면 업그레이되고, 한번 리셋된다.
ets Jan  8 2013,rst cause:2, boot mode:(3,7) <- 부트모드가 3,6 에서 3,7로 올라갔다.
load 0x40100000, len 1396, room 16
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4
tail 8
chksum 0xc0
csum 0xc0
2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user2 @ 81000 <--- 시작주소가 use1  @10000 에서 user2 81000으로 바뀌었다.
 
버전 0.25.0.0 모듈을 자동 업데이트 했다. 변경된 버전을 확인하자
AT+GMR
AT version:0.30.0.0(Jul  3 2015 19:35:49)
SDK version:1.2.0
Ai-Thinker Technology Co.,Ltd.
Build:1.2.0.A Aug  7 2015 17:21:44
OK
오우 !!! 펌웨어가 자동으로 0.30.0.0 으로 올라 갔다.
 
리셋한다
AT+RST
,,,,, 부팅 메세지가 나오고,
Ai-Thinker Technology Co.,Ltd.
invalid <--- 없다는데, 어떤 뜻인가?
WIFI CONNECTED
WIFI GOT IP
 
AP 설정과 모드도 리셋한 이후도 기억하고 연결된다, 버전을 업그레이드 해보자
AT+CIUPDATE
ERROR
 
이젠 업그레이드가 없다. 다음에 또 해보자
그러나 이 방식은 0.30.0.0 이상의 펌웨어는 공개하지 않겠다는 것.
참고로 신형으로 판매하는 모듈은 버전이 0.40.0.0 이다.
 
Received data 데이터 수신 
+IPD (CIPMUX=0): + IPD, <len>:
+IPD (CIPMUX=1): + IPD, <id>, <len>: <data>
 
Watchdog Enable* 워치독 타이머 리셋 기능을 켠다 
WiFi가 작동을 안하면 자동으로 칩을 리셋하는 기능,
장시간 사용시 칩이 죽으면 워치독 타이머 리셋을 사용한다.
그러나 추가된 함수에서 시간을 오래끄는 명령이 있으면 칩이 리셋될 수 있으므로 주의가 필요하다.
AT+CSYSWDTENABLE  Watchdog, auto restart when program errors occur: enable
 
Watchdog Disable*
워치독을 끈다 (워치독 타이머 리셋 기능을 끈다)
AT+CSYSWDTDISABLE  Watchdog, auto restart when program errors occur: disable

후기
WiFi ESP8266 모듈이 보유한 명령은 더 있다.
명령이 많고 복잡하면 사용법이 까다롭다고 생각이 들지만,
실제로 꼭 필요한 명령을 적절하게 선택하면 매우 편리하다.
 
신형 펌웨어
판매중인 ESP 모듈의 AT 펌웨어는 0.40.0.0 SDK-1.30 이다.
Espressif 사이트에서도 엉뚱한 곳인 ESP-01 QnA에 있었다.
제조사 Espressif 바로가기:  http://bbs.espressif.com/viewtopic.php?t=977
 
at_bin_sdk130.zip (182.54 KiB):  내려받기 (첨부 파일 #2)
첨부 파일은 3개이다. 이 파일은 인터넷 자동 업그레이드가 안되는 eagle 버전이다.
 
 
설정 방법은 Crystal은 26MHz, SpiAutoSet, Flash Size는 32Mbit를 선택하고,
ESP Flash Downloader로 3개의 파일을 4개의 Address로 설정하고 구워야 한다.
eagle.flash.bin은 0x00000, eagle.irom0text.bin은 0x40000, blank.bin은 0x3e000과  0x7e000
 
USB-Serial로 ESP-01을 연결하고 CH-PD는 VCC, GPIO-0은 GND로 연결한다음 리셋한다.
START 단추를 누르면 펌웨어 굽기가 시작되고 잠시후 끝난다. STOP을 누른다.
 
115200 BPS에서 이렇게 부팅된다. 비공식 펌웨어는 제조사 이름이 없다.
sl뢿rl뙚�똟 l똟| 任n�no� l믱 �럩 ll럏l똪��� l`�n�
ready
 
펌웨어 버전을 보자
AT+GMR
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
compile time:Aug  8 2015 17:35:24
OK
 
펌웨어를 그대로 두고 공장초기화를 시킨다.
AT+RESTORE
OK
 
 ets Jan  8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 26328, room 16
tail 8
chksum 0xdc
load 0x3ffe8000, len 908, room 0
tail 12
chksum 0xbc
ho 0 tail 12 room 4
load 0x3ffe8390, len 3452, room 12
tail 0
chksum 0x03
csum 0x03

晉猶걏se rtc mem data
sl뢿rl뙚�똟 l똟| 任n�no� l믱 �럩 ll럏l똪��� l`�n� <- 74880 BPS로 보면 부팅문자가 보인다.
ready  <--- Ai-Thinker Technology Co.,Ltd가 안보인다. 정품 펌웨어가 아니다.

나머지 기능을 조사해보니, 다른 펌웨어 보다 0.40.0.0은 최신버전이라 작동이 잘 된다.
이제는 ESP 모듈을 처음 구입한 상태로 펌웨어를 되돌릴 수 있다. 
 
이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
   
윗글 Arduino 온습도 센서 DHT-22
아래글 Arduion ESP8266 WiFi 설정 방법
    N         제목    글쓴이 작성일 조회 추천
아듀이노 응용소스 게시판 avrtools™ 2016/02/05 (금) 231 0
25 ESP8266 MQTT Relay Control avrtools™ 2016/03/03 (목) 388 0
24 2 채널 ESP8266 WiFi Switch의 제작 avrtools™ 2016/02/25 (목) 435 0
23 ESP-12E SDK 0.9.5 사용방법 avrtools™ 2016/02/18 (목) 468 0
22 ESP8266 ESP-12E WiFi 센서 서버의 제작 avrtools™ 2016/02/17 (수) 440 0
21 Arduino DS3231 RTC to 5110 LCD avrtools™ 2016/02/16 (화) 476 0
20 ESP8266 Weather Server의 제작 avrtools™ 2016/02/15 (월) 474 0
19 Arduino 온습도 센서 DHT-22 avrtools™ 2016/02/12 (금) 406 0
18 ESP8266 WiFi 펌웨어 업그레이드 avrtools™ 2016/02/11 (목) 612 0
17 Arduion ESP8266 WiFi 설정 방법 avrtools™ 2016/02/10 (수) 567 0
16 Arduino 정전용량식 수분센서의 분석과 제작 avrtools™ 2016/02/07 (일) 335 0
15 Arduino 전극식 수분센서의 분석과 제작 avrtools™ 2016/02/07 (일) 434 0
14 Arduino 정밀 전력계의 ADC avrtools™ 2016/02/02 (화) 652 0
13 Arduino 정밀 전력계의 LPF avrtools™ 2016/02/02 (화) 466 0
12 Ardunio 16비트 ADC Data Logger avrtools™ 2016/01/31 (일) 351 0
11 Arduino AC/DC Power Meter의 제작 avrtools™ 2016/01/29 (금) 601 0
10 Arduino 교류 역율계(power factor)의 제작 avrtools™ 2016/01/29 (금) 453 0
9 Arduino DUE based DDS Synthesizer avrtools™ 2016/01/24 (일) 274 0
8 QTouch ADC 근접검출 스위치 avrtools™ 2016/01/21 (목) 479 0
7 Arduino 음성인식 Speech/Voice Recognition avrtools™ 2013/09/14 (토) 1731 0
6 Arduino Uno로 만드는 3축 CNC avrtools™ 2013/09/10 (화) 2625 0
5 Arduino로 만드는 mySpectral 분광기 avrtools™ 2013/09/04 (수) 2161 0
4 8채널 12비트 ADC MCP3208 오실로스코프 avrtools™ 2012/03/29 (목) 540 0
3 교류저항 (impedance) 측정 AD5933 avrtools™ 2012/03/17 (토) 483 0
2 Arduino DMX512 수신기 제작 avrtools™ 2012/03/15 (목) 3708 0
1 TSL2561 조도 측정기의 제작 avrtools™ 2011/09/11 (일) 2701 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0