2015년 1월 27일 화요일

ESP8266 동작시키키 2

이제 실제 PC와 데이터를 주고받아 보겠다.
먼저 ESP8266이 클라이언트가 되어 PC쪽으로 데이터를 전달하는 예제이다.

PC에서 먼저 netcat을 사용해 서버 포트를 열어준다.

mac: ~$ nc -l 9999

그리고 시리얼 터미널 에뮬레이터에서 ESP8266에 명령을 실행한다. (검은색 볼드체로 된 부분이 직접 입력해야 하는 내용임. 입력할 명령 뒤쪽에 빨간색 이탤릭체는 명령에 대한 설명 부분임)

AT

OK
AT+GMR
00200.9.5(b1)
compiled @ Dec 25 2014 21:40:28
AI-THINKER Dec 25 2014

OK
AT+RST

OK
c_..R[.fJ[:fJSj...W.G.W.j..H.U...K.....
.............5Rj.4Ej
.U...Z.K.r.r.B..Jj.4...W....$('QY,H.MH..14, 21:50:58
ready
AT+CWMODE?
+CWMODE:3

OK
AT+CWLAP   현재 사용가능한 네트웍 목록 검색
+CWLAP:(4,"KT_WLAN_C0BD",-49,"00:27:1c:c0:9b:d4",1)
+CWLAP:(3,"TESTWIFI",-43,"00:1d:93:3a:47:a8",13)
+CWLAP:(0,"iptime",-91,"00:26:66:33:35:46",11)
+CWLAP:(0,"iptime",-83,"00:26:66:b3:f6:bc",11)
+CWLAP:(0,"kor",-81,"00:18:4d:84:f7:20",11)

OK
AT+CWJAP="TESTWIFI","mypassword"   SSID가 TESTWIFI인 공유기에 암호 mypassword를 사용해 연결 

OK
AT+CIPMUX=1        Multiple connection 기능 켬

OK
AT+CIPSTART=4,"TCP","192.168.1.3",9999   192.168.1.3의 9999번 포트로 TCP 연결을 함, 커넥션 id는 4번
4,CONNECT

OK
AT+CIPSEND=4,5     4번 커넥션으로 5바이트를 전송
> TEST             보낼 데이터 입력
SEND OK

여기서 SEND OK가 나오면 ESP8266에서 데이터를 보냈다는 것이다. 다시 PC화면의 터미널 에뮬레이터로 돌아와 보면 다음과 같이 전송된 데이터가 표시되어 있을 것이다.

mac: ~$ nc -l 9999
TEST
^C
mac: ~$ 

반대로 ESP8266이 서버로 동작할수도 있다. 이 경우 먼저 ESP8266에 서버를 동작시켜야 한다.

AT+CIFSR     ESP8266의 IP주소 확인
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:98:83:35"
+CIFSR:STAIP,"192.168.1.4"
+CIFSR:STAMAC,"18:fe:34:98:83:35"

OK
AT+CIPSERVER=1,9999       9999번 포트로 TCP 연결을 기다림

OK

이제 ESP8266의 9999번 포트가 연결을 기다리고 있는 상태이다. 터미널 에뮬레이터에서 netcat을 이용해 접속한다.

mac: ~$ nc 192.168.1.4 9999     ESP8266(ip:192.168.1.4)의 9999번 포트로 연결
test from mac      전송할 데이터 입력
^C
mac: ~:$ 

'test from mac'이라는 스트링을 전송했으니 터미널 에뮬레이터 화면을 보면 다음과 같이 출력되어 있을 것이다.

0,CONNECT         nc 192.168.1.4 9999 명령으로 소켓이 연결되었음

+IPD,0,14:test from mac       0번 커넥션으로 14바이트를 전송받았음. 내용은 'test from mac'

OK
0,CLOSED     PC에서 nc가 종료되어 소켓 연결이 닫혔음

이렇게 ESP8266은 네트웍 클라이언트 또는 서버로 동작시킬 수 있다.

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

댓글 없음:

댓글 쓰기