아두이노 보드 11(Rx), 12(Tx) 에 ESP8266에 연결되어 있음 : SoftwareSerial 사용
ESP8266 CH_PD 는 13번 핀에 연결되어 있어서 HIGH 를 출력하면 ESP8266 동작함
SerialBypass.ino 이용해서 9600baud 로 접속하면 AT 명령 접속 가능
펌웨어 버전 확인
AT+GMR
version:0.21.0.0 SDK version:0.9.5
동작모드 설정 AT+CWMODE=1
무선 공유기 검색 AT+CWLAP
무선 공유기 접속 AT+CWJAP="SSID_NAME","PASSWORD"
AP 접속이 안됨. AP에 접속하는 <AT+CWJAP="SSID_NAME","PASSWORD"> 명령에 FAIL 응답.
FAIL 응답 메세지는 "+CWJAP:4"
AP 접속 비밀번호가 10자리가 아니면 접속 안되는 버그가 있다는 얘기가 있어서 10자리로 바꿨는데도 안됨
http://www.esp8266.com/viewtopic.php?f=6&t=1332
+CWJAP:4 라는 응답이 오는데 "4"번 FAIL에 대한 의미를 찾을 수 없다!
FAIL code에 대해서 검색했으나 매뉴얼이 없음!
기존에 AP에 접속된 상태에서 AT+CWJAP 명령을 내리면 "4"번 에러가 난다
패스워드를 틀리게 입력했더니 "+CWJAP:2" 라고 응답이 나옴
AP이름을 틀리게 넣으면 "+CWJAP:3"라고 응답이 옴
그래서!! 혹시나 싶어서!! 무선 공유기 설정을 "WPA-PSK" "AES"로 바꿨더니 접속 됨!!
시험 결과 무선 공유기 접속 암호 글자수는 상관이 없음
접속할 수 없는 무선 공유기 설정 : "WPA2-PSK"+"AES","WPA2-PSK"+"TKIP","WPA-PSK"+"TKIP"
무선공유기에 접속했는지 확인하는 명령 AT+CWJAP?
할당받은 IP주소 확인 명령 AT+CIFSR
ThingSpeak.com에 가입하고 채널을 만들고 API를 할당받으면 데이터를 올릴 수 있다.
혹시나 싶어서 멀티채널 모드를 끈다 AT+CIPMUX=0 ThingSpeak.com 접속 주소 AT+CIPSTART="TCP","184.106.153.149",80 보내려는 문자의 개수 AT+CIPSEND=43 할당받은 API로 데이터 전송 GET /update?key=[THINGSPEAK_KEY]&field1=0
DO NOT USE 5V POWER SUPPLY FOR THE MODULE. 5V will burn both your MicroSD card and WTV020SD module.Please use only 3.3V power, either from Arduino or use 3.3V regulator chip.
예전에 작성한 내용 (아래 첨부는 라이브러리와 graphictest.ino 만 수정됨. bmp 읽는 예제는 수정 안됨)
buy at : http://www.aliexpress.com/item/Free-Shipping-2-4-inch-TFT-touch-LCD-Module-LCD-Screen-Module-For-Arduino-UNO-R3/1619321648.html
I tried 4~5 kinds of TFT Libraries, but not work! (I spend almost two days)
working source : http://www.moleandroid.com/arduino-tutorial-2-how-to-setup-mcufriend-2-4-lcd-tft-libraries-and-avoid-white-screen/
one little modification needed. at the start of program, it try to read and run init code along with its ID value. But there is NO answer from TFT module. (return value = 0) So I tried to assign ID by force.
modified code and library are attached this article.
unzip into arduino library folder. and run the example code in there.
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 주소 방식을 이용해서 데이터 업로드 테스트