2015년 1월 27일 화요일

ESP8266 동작시키기

하드웨어 연결


ESP8266은 1.7~3.6V에서 동작하기 때문에 3.3V 전원을 사용한다. PC에 연결하기 위해 사용할 USB-to-Serial 컨버터도 3.3V 버젼을 사용하면 된다. 여기서는 FTDI사의 FT232R 칩을 이용한 컨버터를 사용했다.


ESP8266 보드의 8핀 커넥터의 신호는 다음과 같다.


Vcc와 CH_PD에는 +3.3V, RX에는 FT232R 보드의 TX-O를, TX에는 FT232R 보드의 RX-O를 연결해 준다. GPIO0는 부팅시 동작 모드를 결정하는 핀으로 Vcc에 연결되어 있으면 일반 모드로 동작하고, GND에 연결되어 있으면 flash rewriting 모드로 동작한다. 펌웨어를 업데이트 하는 경우가 아니면 평소 동작시는 Vcc(3.3V)에 연결시켜 놓으면 된다.
커넥터가 브레드보드(빵판)에 사용하기 힘들기 때문에 간단하게 컨버팅 보드를 땜질로 만들었다.


전체 연결은 다음과 같이 된다.


동작시켜 보기

이제 PC에 USB케이블을 연결하고 시리얼 터미널 에뮬레이터을 실행한다. (여기서는 Mac에서 CoolTerm을 사용했지만 아무 시리얼 터미널 에뮬레이터나 상관없다. Windows에서는 putty를 추천한다.)
디폴트 통신 파라미터는 115200-N-8-1이다.


통신 파라미터를 설정했으면 디바이스에 연결한 다음 엔터키를 눌러보면 'Error'라는 글자가 나올 것이다. 이게 출력되면 정상적으로 통신이 되고 있다는 것이다. 이제 다양한 명령을 입력해 볼 수 있다.

AT
OK
AT+GMR
00160901
OK
AT+RST
OK
 ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x40100000, len 24444, room 16
tail 12
chksum 0xe0
ho 0 tail 12 room 4
load 0x3ffe8000, len 3168, room 12
tail 4
chksum 0x93
load 0x3ffe8c60, len 4956, room 4
tail 8
chksum 0xbd
csum 0xbd

ready
AT+CWMODE=3
OK
AT+CWLAP
+CWLAP:(0,"",0)
+CWLAP:(3,"TEST",-83)
+CWLAP:(3,"FOO_NET",-64)
+CWLAP:(3,"BAR_NET",-75)
+CWLAP:(3,"MYWIFI",-70)
OK
AT+CWJAP="MYWIFI","mypassword"
OK
AT+CIFSR


192.168.1.5

명령은 기본적으로 'AT'로 시작한다.
AT+GMR로 버젼을 확인, AT+RST로 모듈을 리셋시킬 수 있다.
ESP8266 모듈은 디바이스(station)으로 동작할수도 있고 AP로 동작할 수도 있기 때문에 여기서는 AT+CWMODE 명령으로 station 모드로 설정해줬다.
AT+CWLAP 명령은 무선랜을 스캔해 현재 사용할 수 있는 무선랜 목록(SSID, RSSI)을 보여준다.
여기서 사용하려는 무선랜을 선택해 AT+CWJAP 명령으로 연결해주면 된다. 연결된 후 AT+CIFSR 명령으로 할당받은 IP 주소를 확인할 수 있다.
여기까지 정상적으로 진행되었다면 동일한 공유기에 연결된 PC에서 무선 모듈로 ping을 날려 실제 동작하고 있는지 확인해 볼 수 있다.

mymac:~$ ping 192.168.1.5
PING 50.50.0.55 (192.168.1.5): 56 data bytes
64 bytes from 192.168.1.5: icmp_seq=0 ttl=255 time=116.131 ms
64 bytes from 192.168.1.5: icmp_seq=1 ttl=255 time=5.368 ms
64 bytes from 192.168.1.5: icmp_seq=2 ttl=255 time=10.549 ms
^C
--- 192.168.1.5 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 5.368/44.016/116.131/51.037 ms


ESP8266에서 사용할 수 있는 AT 명령어 목록은 다음과 같다.
CommandsDescriptionTypeSet/ExecuteInquirytestParametersExamples
AT+RSTrestart the modulebasic----
AT+CWMODEwifi modewifiAT+CWMODE=<mode>AT+CWMODE?AT+CWMODE=?1= Sta, 2= AP, 3=both
AT+CWJAPjoin the APwifiAT+ CWJAP =<ssid>,< pwd >AT+ CWJAP?-ssid = ssid, pwd = wifi password
AT+CWLAPlist the APwifiAT+CWLAP
AT+CWQAPquit the APwifiAT+CWQAP-AT+CWQAP=?
AT+ CWSAPset the parameters of APwifiAT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn>AT+ CWSAP?ssid, pwd, chl = channel, ecn = encryptionConnect to your router: :AT+CWJAP="YOURSSID","helloworld"; and check if connected: AT+CWJAP?
AT+ CIPSTATUSget the connection statusTCP/IPAT+ CIPSTATUS
AT+CIPSTARTset up TCP or UDP connectionTCP/IP1)single connection (+CIPMUX=0) AT+CIPSTART= <type>,<addr>,<port>; 2) multiple connection (+CIPMUX=1) AT+CIPSTART= <id><type>,<addr>, <port>-AT+CIPSTART=?id = 0-4, type = TCP/UDP, addr = IP address, port= portConnect to another TCP server, set multiple connection first: AT+CIPMUX=1; connect: AT+CIPSTART=4,"TCP","X1.X2.X3.X4",9999
AT+CIPSENDsend dataTCP/IP1)single connection(+CIPMUX=0) AT+CIPSEND=<length>; 2) multiple connection (+CIPMUX=1) AT+CIPSEND= <id>,<length>AT+CIPSEND=?send data: AT+CIPSEND=4,15 and then enter the data
AT+CIPCLOSEclose TCP or UDP connectionTCP/IPAT+CIPCLOSE=<id> or AT+CIPCLOSEAT+CIPCLOSE=?
AT+CIFSRGet IP addressTCP/IPAT+CIFSRAT+ CIFSR=?
AT+ CIPMUXset mutiple connectionTCP/IPAT+ CIPMUX=<mode>AT+ CIPMUX?0 for single connection 1 for mutiple connection
AT+ CIPSERVERset as serverTCP/IPAT+ CIPSERVER= <mode>[,<port> ]mode 0 to close server mode, mode 1 to open; port = portturn on as a TCP server: AT+CIPSERVER=1,8888, check the self server IP address: AT+CIFSR=?
+IPDreceived data

To be continued.... ESP8266 동작시키기 2



댓글 없음:

댓글 쓰기