하드웨어 연결
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 명령어 목록은 다음과 같다.
Commands | Description | Type | Set/Execute | Inquiry | test | Parameters | Examples |
---|---|---|---|---|---|---|---|
AT+RST | restart the module | basic | - | - | - | - | |
AT+CWMODE | wifi mode | wifi | AT+CWMODE=<mode> | AT+CWMODE? | AT+CWMODE=? | 1= Sta, 2= AP, 3=both | |
AT+CWJAP | join the AP | wifi | AT+ CWJAP =<ssid>,< pwd > | AT+ CWJAP? | - | ssid = ssid, pwd = wifi password | |
AT+CWLAP | list the AP | wifi | AT+CWLAP | ||||
AT+CWQAP | quit the AP | wifi | AT+CWQAP | - | AT+CWQAP=? | ||
AT+ CWSAP | set the parameters of AP | wifi | AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn> | AT+ CWSAP? | ssid, pwd, chl = channel, ecn = encryption | Connect to your router: :AT+CWJAP="YOURSSID","helloworld"; and check if connected: AT+CWJAP? | |
AT+ CIPSTATUS | get the connection status | TCP/IP | AT+ CIPSTATUS | ||||
AT+CIPSTART | set up TCP or UDP connection | TCP/IP | 1)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= port | Connect to another TCP server, set multiple connection first: AT+CIPMUX=1; connect: AT+CIPSTART=4,"TCP","X1.X2.X3.X4",9999 |
AT+CIPSEND | send data | TCP/IP | 1)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+CIPCLOSE | close TCP or UDP connection | TCP/IP | AT+CIPCLOSE=<id> or AT+CIPCLOSE | AT+CIPCLOSE=? | |||
AT+CIFSR | Get IP address | TCP/IP | AT+CIFSR | AT+ CIFSR=? | |||
AT+ CIPMUX | set mutiple connection | TCP/IP | AT+ CIPMUX=<mode> | AT+ CIPMUX? | 0 for single connection 1 for mutiple connection | ||
AT+ CIPSERVER | set as server | TCP/IP | AT+ CIPSERVER= <mode>[,<port> ] | mode 0 to close server mode, mode 1 to open; port = port | turn on as a TCP server: AT+CIPSERVER=1,8888, check the self server IP address: AT+CIFSR=? | ||
+IPD | received data |
To be continued.... ESP8266 동작시키기 2
댓글 없음:
댓글 쓰기