안녕하세요~ 매드 입니다.

이번에는 WiFi 모듈 진짜 진짜 최종!! ㅠㅠ (이거 작성할 때만해도 최종인줄 알았음)
무려 4부까지 와버렸네요 ㅎㅎ

이번 시간에는 실제로 필요한 명령어들을 다루어 보도록 하겠습니다.


29-1. WiFi를 사용하기 위해 알아야할 상식

<AP(출처:구글사진)>


물론 아두이노를 다루는 제 강좌를 보러 오시는 분들이라면 이정도의 상식은 다들 있으시리라 생각하지만 이왕이면 한번 더 정리한다고 생각하고 간단하게 의미만 정리 해보도록 하겠습니다.

우선 WiFi 모듈을 다루기 위해 가장 많이 나오는 공유기!!
AP 라고도 부르는데요. 정확한 명칭은 Access Point라하고 소출력 무선기기라고 합니다. 하지만 공유기라는 명칭이 우리에게 더 친근한건 왜일까요 ㅠ

이 공유기에 우리는 스마트폰을 이용해서 무선 접속하게 되는데 이때 공유기 이름?? 이라고 많이 이야기 하죠? 이를 원래는 SSID 라고 한답니다. ㅎㅎ 그리고 이와 함께 사용 되는 암호를 PASSWORD ㅎㅎ 이정도는 다들 아실려나~


<서버 클라이언트(출처:구글사진)>

서버와 클라이언트의 관계 입니다. 사진은 1:1이지만 실제로 클라이언트는 1:N으로 다수가 될 수 있습니다.

자 그럼 이정도면 충분히 아는 것 같으니 ESP8266 명령어들을 알아볼까요?


29-2. EPS8266 WiFi 명령어

<ESP8266 명령어(출처:구글사진)>

사진에도 명령어가 어느정도 정리되어 있지만 아래 설명하는 명령어들만 있으면 일단 서버에 접속까지 가능합니다~ ㅎㅎ

!! 중요 !! 명령어 뒤에는 \n\r 개행과 리턴문자를 삽입해서 명령어를 인식시켜줘야 합니다.

AT
는 기본 명령어로 WiFi 모듈이 정상 동작하고 있는지도 알 수 있고 통신속도와 통신선이 제대로 연결되어 있는지를 알 수 있는 가장 기본적인 명령어가 되겠습니다.

AT+RST
ESP8266 WiFi 모듈을 스프트리셋하는 명령어 입니다. ㅎㅎ 많이 사용하지는 않지만 갑자기 동작하지 않는다거나 한다면 위급할 때 사용해볼만한 명령어죠?!

AT+CWMODE=1
ESP8266 모듈을 Client 모드로 동작하기 위한 명령어 입니다. 요건 지난 시간에 잠깐 실행해 봤었죠? ESP8266의 경웨 AP 모드, Client 모드, 둘다 지원되는 모드를 사용할 수 있는데요. 요건 취향에 맞게 사용하면 되겠지만 생각에는 Client 모드를 많이 사용하지 않을까요?

AT+CWJAP="SSID","PASSWORD"
자.. 기본 준비는 되었고 바로 공유기에 접속하면 됩니다. 어떻게? 바로 이 명령어를 사용하게 되는데요. 주의할 점이 " " 요렇게 콤마 사이에 넣어줘야 한다는 점이죠! 만약 제대로 접속이 되었다면 언제나처럼 OK 가 날라온다는거!
예) AT+CWJAP="madtime","maduinos"

AT+CIPMUX=0
요건 Single 커넥션 모드 입니다.... 사실 저도 멀티를 안써봐서 어떤건지는 잘 모릅니다. 하하;; 저희가 일반적으로 사용하는 것이 싱글 커넥션 모드라는 것 정도!?

AT+CIPSTART="TCP","서버주소",포트
서버에 접속하는 방법입니다. TCP,UDP가 있는데 요건 통식방식이니까 한번 인터넷 찾아보시면 될 것 같네요! >.< 그리고 접속하고자 하는 서버주소를 적으신다음 마지막에는 포트까지 마무리로 적어주셔야 합니다.
예) AT+CIPSTART="TCP","api.openweathermap.org",80

끝났습니다. 만약 서버에 정상적으로 접속이 되었다면 언제나처럼 OK!~

그런데?? 서버에 정상 접속한것 같기는한데 아무일도 일어나지 않는다구요??
ㅎㅎ 이건 서버마다 조금 다를 수 있는데요. 아마 대부분의 서버는 특정한 명령어를 보내줘야지만 서버에서도 우리가 원하는 명령어를 보내준답니다.

openweathermap 을 기준으로 한번 설명을 해보겠습니다.

여기서 사용되는 서버 명령어 중 하나가 GET 이라는 명령어 입니다.

바로 예를 들어 볼께요

예) GET /data/2.5/weather/KOREA\n\r

대략 이런식입니다. 이렇게하면 서버에서 KOREA 날씨를 보내주는 것이죠 ㅎㅎ 자세한건 서버마다 조금씩 다르지만 GET 이라는 명령어로 보내준다는게 중요한거겠죠?

이게 끝이냐? 아닙니다. 이 GET 이라는 명령어를 그냥 써주는 것이 아니라 GET을 사용하기 전에 GET으로 보내줄 데이터의 길이를 적어주셔야 실제로 명령어를 보내게 됩니다.

AT+CIPSEND=데이터길이
바로 요렇게 데이터의 길이를 적어주시면 됩니다.

하.. 이제 끝났네요.
기나긴 강좌가 끝.... 난 줄 알았습니다. 제대로 동작이 안되네요 ㅠ

위와 같이 사용하시면 우선은 기본적인 ESP8266 WiFi 모듈의 사용은 문제 없다고 보셔도 될 것 같네요! ㅎㅎ(만약 정상적으로 되시면 ㅎㅎ)

만약 서버에서 이상한 문자들이 날라왔고 자세히보니 먼가 날씨 수치나 글씨들이 보인다면 어느정도 성공하셨다고 볼 수 있겠네요.

하나 더 추가하자면 최근에 openweathermap 사용자들이 많아지면서 api key가 있어야지만 사용할 수 있습니다. ㅎㅎ 요건 각자 openweathermap.org 가서 가입하셔서 개인 key를 발행하고 발급받으시면 될 것 같네요!!

글로는 너무 힘드네요 ㅠ 물론 동영상도 ㅋㅋ 재미도 없고 지루하지만 ... ㅠ 좀 더 재밌게 해보도록 노력하겠습니다!!

ㅎㅎ 패망했으니 다음 5부때 !! 제대로 한번 해볼께요..

흐흐.. WiFi 모듈 모두 수고 하셨습니다!!