TCP/UDP 통신은 실질적으로 네트워크 통신의 근간이 되므로 IoT 디바이스 소프트웨어 구현의 핵심적인 부분이 된다.
이와 관련된 커맨드 리스트는 아래 표와 같으며 그 용법에 대해서 연이어 설명한다.
No | 명령 | 기능 |
1 | AT+SSLCERTGET | SSL 인증서유형 쿼리 |
2 | AT+SSLCERTSET | SSL 인증서 설정 |
3 | AT+CIPDOMAIN | 도메인 이름 확인 |
4 | AT+CIPAUTOCONN | 지정한 ID가 자동연결인지 쿼리 하거나 자동연결로 설정 |
5 | AT+CIPSSLOPT | 지정한 ID에 대한 SSL 매개변수 설정 |
6 | AT+CIPSTART | 지정한 ID에 연결을 시작 |
7 | AT+CIPSTOP | 지정된 ID의 연결 끊기 |
8 | AT+CIPSTATUS | 지정된 ID의 연결상태쿼리 |
9 | AT+CIPSEND | 시리얼포트를 통해 지정한 ID로 데이터 전송 |
10 | AT+CIPSENDRAW | 커맨드모드에서 데이터모드로 모드변경 |
11 | AT+CIPRECV | Wi-Fi에서 수신한 데이터를 User 시리얼포트로 전달 |
12 | AT+CIPRECVCFG | User포트를 통해 Wi-Fi로 전송할 데이터 설정/쿼리 |
AT+SSLCERTGET
기능: SSL 인증서 유형을 가져 옴
명령(쿼리) | AT+SSLCERTGET=<type> |
응답 | +SSLCERTGET:cert |
OK | |
매개변수 | type=0(루트 인증서), 1(클라이언트 인증서), 2(개인 키), 3(인증서 해지목록) |
설명 | 명령 후 즉시 발효。 |
AT+SSLCERTSET
기능: SSL 인증서 유형을 설정
명령(설정) | AT+SSLCERTSET=<type> |
응답 | > |
매개변수 | type=0(루트 인증서), 1(클라이언트 인증서), 2(개인 키), 3(인증서 해지목록) |
설명 |
명령 후 즉시 발효, “>”를 반환한 후 인증서 파일을 전달하고, 인증서 끝에 인증서 전송 종료문자 “Ctrl+Z”를 추가(ASCII 코드로 0x1A 이며 인증서의 일부는 아님) |
AT+CIPDOMAIN
기능: 도메인네임 해석(resolution)
명령(쿼리) | AT+CIPDOMAIN=<domain> |
응답 | +CIPDOMAIN:<number> |
<ip> | |
매개변수 | number=IP 주소 수 |
ip=IP 주소 | |
설명 | 명령 후 즉시 발효. |
AT+CIPAUTOCONN
기능: 자동으로 ID 연결 여부 쿼리/설정
명령(쿼리) | AT+CIPAUTOCONN=<id> |
응답 | +CIPAUTOCONN:<option> |
OK | |
매개변수 | 설정 명령의 매개변수 참조 |
명령(설정) | AT+CIPAUTOCONN=<id>,<option> |
응답 | OK |
매개변수 | id= 연결 ID 지정 |
option= 0(자동 연결 종료), 1(자동 연결 활성화) | |
설명 | 명령 후 즉시 발효, 공장출고 기본 값은 1. |
AT+CIPSSLOPT
기능: 지정한 ID 연결에 대한 SSL 매개변수 설정.
명령(설정) | AT+CIPSSLOPT=<id>,<isSSLRoot>,<isSSLClient>[,isSSLCrl] |
응답 | OK |
매개변수 | id=연결 ID 지정 |
isSSLRoot= 0(루트 인증서를 확인하지 않음), 1(루트 인증서를 확인) | |
isSSLClient= 0(클라이언트 인증서를 확인하지 않음), 1(클라이언트 인증서를 확인) | |
isSSLCrl= 0(인증서 해지목록을 확인하지 않음), 1(인증서 해지목록을 확인) |
AT+CIPSTART
기능: Connection 시작
실행명령 | AT+CIPSTART=<id>,<type>,[domain],[remote_port],[local_port] |
응답 | OK |
매개변수 | ♦ id=Connection의 ID 번호, 범위는 0~4, 최대 5개의 연결을 만들 수 있음 |
♦ type=연결 유형 → tcp_server, tcp_client, ssl_client, udp_broadcast, udp_unicast, 아래 참조 | |
◊ type=tcp_server 매개변수 → id, tcp_server, local_port | |
◊ type=tcp_client 매개변수 → id, tcp_client, domain, remote_port [,local_port] | |
◊ type= ssl_client 매개변수 → id, ssl_client, domain, remote_port [,local_port] | |
◊ type= udp_broadcast 매개변수 → id, udp_broadcast, domain, remote_port, local_port | |
◊ type= udp_unicast 매개변수 → id, udp_unicast, domain, remote_port, local_port | |
♦ Domain= 대상서버의 IP 또는 도메인네임 → tcp_server 일 때 이 매개변수는 필요 없음 | |
♦ remote_port=대상포트 | |
♦ local_port= 로컬포트 → tcp_client 또는 ssl_client일 때 이 매개변수는 지정 된 로컬 포트임 | |
설명 |
명령 후 즉시 발효. 현재 ID로 접속된 연결을 종료하지 않은 상태로 재연결/설정 명령을 하면 실행되지 않고 Error를 반환한다. 임의의 ID에 대한 파라미터를 변경하려면 일단 그 ID의 연결을 종결(AT+CIPSTOP=id\r)하고 설정, 연결 해야한다. |
AT+CIPSTOP
기능:지정한 ID의 연결을 해제
실행명령 | AT+CIPSTOP=<id>[,<remote_port>] |
응답 | OK |
매개변수 | id=Connection의 ID 번호 |
설명 | 명령 후 즉시 발효。 |
AT+CIPSTATUS
기능: 지정한 ID의 연결상태쿼리
명령 | AT+CIPSTATUS=<id> |
응답 | +CIPSTATUS:<type>,<status> |
매개변수 | type=지정한 ID의 유형, tcp_server, tcp_client, udp_broadcast, udp_unicast, ssl_client 등을 포함한다. |
status= start(초기화), connecting(연결 중), connected(연결 됨), disconnected(연결 해제 됨), stop(연결 중지) |
|
설명 | 명령 후 즉시 발효。 |
AT+CIPSEND
기능: Wi-Fi로 전송할 데이터를 User 시리얼포트로 전송
명령 | AT+CIPSEND=<id>[,<remote_port>],<data_length> |
응답 | >, 지정한 길이의 date 데이터 입력을 기다림. 입력은 1분간 유효 함 |
매개변수 | id= 연결할 ID 번호 |
remote_port= 원격 포트 | |
data_length=데이터 길이, 단위: byte | |
설명 | 명령 후 즉시 발효。 |
AT+CIPSENDRAW
기능: AT 커맨드모드에서 데이터모드로 변경
명령 | AT+CIPSENDRAW |
응답 | OK |
매개변수 | 없음 |
설명 | 명령 후 즉시 발효。 |
AT+CIPRECV
기능:Wi-Fi에서 수신한 데이터를 User 시리얼포트로 전달
명령 | AT+CIPRECV=<id>[,port] |
응답 | +CIPRECV=<len>,<data> |
OK | |
매개변수 | id= 연결의 ID 번호 |
port= 연결의 로컬 포트 번호 | |
len=수신 한 데이터 길이, 단위 Byte | |
data=수신데이터 | |
설명 | 명령 후 즉시 발효。 |
AT+CIPRECVCFG
기능:User 시리얼포트를 통해 Wi-Fi로 송신할 데이터의 설정 파라미터 쿼리/설정
명령(쿼리) | AT+CIPRECVCFG? |
응답 | +CIPRECVCFG:<recv mode> |
OK | |
매개변수 | 설정 명령의 매개변수 참조 |
설명 | 명령 후 즉시 발효 |
명령(설정) | AT+CIPRECVCFG=<recv mode> |
응답 | OK |
매개변수 |
recv mode= 0(커맨드모드를 나타냄, AT+CIPRECV 명령을 통해 수신해야 함; 1(데이터모드를 나타냄), 자동 수신을 나타냄 |
설명 | 명령 후 즉시 발효 |