1) PC에서 시리얼 통신으로 ESP8266을 이용해 ThingSpeak 접속하고 테스트 하는 명령어 순서
('>>' 는 응답 결과)
AT
>>OK
펌웨어 버전 확인
AT+GMR
>>00170901 :115200baud ESP_8266_BIN0.92.bin
>>0018000902 :9600baud v0.9.2.2 AT Firmware.bin
>>0018000902-AI03 : 9600baud :Version:0.9.2.4
동작 모드 확인 (1:Station, 2:AP, 3:Both)
AT+CWMODE?
>>+CWMODE:3
2라면 AP(Access Point,공유기)모드라서 다른 AP 접속이 안된다. 1번 또는 3번 모드로 변경해야 함
AT+CWMODE=3
혹시라도 이미 접속된 AP가 있다면 확인해 보자
AT+CWJAP?
>>+CWJAP:"U+Net36C3"
기존에 AP접속되어 있다면 접속을 해제해야 새로운 AP에 접속이 가능하다
AT+CWQAP
>>OK
AP 목록 검색
AT+CWLAP
>>+CWLAP:(0,"",0,d8:57:ff:3f:00:00,0)
+CWLAP:(3,"U+Net****",-81,00:08:**:**:**:c1,2)
+CWLAP:(0,"U+zone",-79,00:08:5b:??:??:??,2)
AP에 접속함, AP이름, 비밀번호를 반드시 따옴표에 넣어서 입력
AT+CWJAP="U+Zone","NOTTELLINGMYPASSWD"
>>OK
AP에서 할당 받은 IP주소를 확인
AT+CIFSR
>>192.168.219.172
한번 AP(AccessPoint, 무선공유기)에 접속하면 ESP8266 전원을 껏다 켜도 자동으로 재접속 함
멀티채널 접속을 Disable AT+CIPMUX=0
AT+CIPSTART="TCP","184.106.153.149",80 AT+CIPSEND=43 GET /update?key=QMRY6Q????GN????&field1=0
멀티채널을 이용해서 접속하는 방법
allow multiple connections
AT+CIPMUX=1
>>OK
AT+CIPMUX?
4번 채널을 이용해 Thingspeak 주소에 TCP/IP 80포트로 접속함
AT+CIPSTART=4,"TCP","184.106.153.149",80
>>OK Linked
4번 채널에 44바이트를 전송함 (문자수 +2 해야함. 명령 끝에 엔터치면 \r\n 두개문자가 더 보내지기 때문)
AT+CIPSEND=4,43
>> >
GET /update?key=[THINGSPEAK_KEY]&field1=0
GET /update?key=QMRY6Q????GN????&field1=0 <이건 내가 가입해서 만든 API KEY>
>>SEND OK
>>+IPD,4,1:8
>>OK
+IPD는 ESP8266이 메세지를 수신했다는 뜻, '4'는 4byte 받았다는 뜻, '1:8'는 ThingSpeak가 보낸 메세지, 일반적으로 entity(데이터 개수)가 표시되고, '0'일 경우 저장 실패를 의미 ThingSpeak에 데이터를 업데이트 할 수 있는 주기를 15초로 제한하고 있다.
주의: 업로드 값이 두자리 숫자면 총 문자 개수는 '45'로 해야함 (보내려는 문자의 갯수를 알려주는게 포인트)
AT+CIPSEND=4,44
GET /update?key=QMRY6Q????GN????&field1=22
ThingSpeak 싸이트에서 업로드한 데이터가 잘 표시되는지 확인한다
TCP 포트로 접속해서 업로드 하는 방법 외에 URL 주소에서 직접 데이터를 입력해 볼 수 있다.
2) Thingspeak 가입해서 Channel, api_key 만들고 웹브라우저에서 URL 주소 방식을 이용해서 데이터 업로드 테스트