아두이노 와이파이 모듈 ESP8266 와이파이 잡기




안녕하세요. 저번 글에서는 아두이노 와이파이 모듈인 ESP8266을 펌웨어 업데이트하는 방법을 알아보았습니다. 


.



이번 글에서는 아두이노와 연결된 ESP8266으로 와이파이 신호를 잡아보겠습니다.


enter image description here


위와 같이 회로를 구성하시면 됩니다. 펌웨어 업데이트 할 때와 다른 점은 GPIO 0자리가 빠져있다는 것입니다.


enter image description here


이제 아두이노와 피시를 연결하여 전원을 넣어줍니다. 아두이노 통합개발환경인 스케치를 실행시키고 포트는 연결된 아두이노로 지정한 뒤 시리얼 모니터를 띄웁니다.


enter image description here


위의 사진에서 빨간 박스 쳐져있는 부분을 사진과 같이 바꿔줍니다. 9600 Baud Rate와 Both NL & CR로 바꿔야합니다.


이제 AT를 입력하여 OK를 리턴하는지 확인합니다. 위의 사진처럼 OK가 리턴된다면 정상적으로 동작하고 있다는 뜻입니다. AT+GMR은 펌웨어 버전을 확인하는 명령어입니다.

  • AT

  • AT+GMR

  • AT+CWMODE=1

  • AT+CWMODE?

  • AT+CWLAP

  • AT+CWJAP=”mHotspot”,”12345678a”

  • AT+CWJAP?



이제 위의 명령어를 하나씩 입력할 것입니다. 벌써 맨 위의 두 개는 확인이 되었습니다.


AT+CWMODE를 통해 와이파이 모듈 ESP8266의 모드를 변경할 수 있습니다. ESP8266의 모드는 다음과 같습니다.

  1. Station
  2. AP
  3. Dual



쉽게 말해서 1번은 와이파이 신호를 받는 모드(Client)이고, 2번은 와이파이 신호를 쏴주는 모드(Host), 3번은 두 가지가 동시에 가능한 모드입니다.


와이파이 신호를 받는 역할을 수행할 것이므로 AT+CWMODE=1 을 입력하시면 1번 모드로 설정됩니다.


AT+CWMODE? 라고 입력하시면, 지금이 어떤 모드인지 확인할 수 있습니다.


enter image description here


이제 위의 사진과 같이 AT+CWLAP을 입력합니다. 그러면 지금 주변에 존재하는 와이파이 신호들의 목록을 보여줍니다. 저는 제 스마트폰의 핫스팟을 이용하려고 합니다.


다음과 같은 형식으로 입력하시면 됩니다.


AT+CWJAP = “SSID” , “Password”


저를 예를 들었을 때, 다음과 같이 입력하면 됩니다.


AT+CWJAP = “mHotspot” , “12345678a”


연결이 되었는지 확인하려면 AT+CWJAP?를 입력하시면 현재 연결되어 있는 와이파이의 정보가 나타납니다.


이후로 특별한 설정이 없이 접속정보를 ESP8266 메모리에 저장해두기 때문에 전원을 껐다가 켠 후에도 접속했던 신호가 잡힌다면 자동으로 접속하게 됩니다.


AT Command에 관한 더 자세하고 많은 정보는 다음의 웹페이지로 이동하시면 확인해볼 수 있습니다.


http://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/#AT


지금까지 아두이노 와이파이 모듈 ESP8266을 이용하여 와이파이 신호를 잡아보았습니다. 도움이 되셨으면 좋겠습니다.

  1. 박선생 2016.04.05 17:40

    안녕하세요 좋은글 너무나 감사드립니다. 어제 처음 라즈베리파이를 알게되었고 오늘 구매해놓은 상태에서
    궁금한점이 있어 질문드립니다.
    라즈베리파이와 아두이노가 시리얼통신등으로 서로 통신하는 방법으로는 생각안하신거죠?
    각각 통신을 무선랜으로 잡으시는듯 한데 이유가 궁금해서요^^;
    화면을 보면서 스마트폰으로 제어하려고 하시는듯한데 맞나요?
    아니면 영상은 드롭박스(공부해볼게요^^)에 저장만 하고 드론은 스마트폰 등으로 육안으로 보면서 제어를 하시려는건지 궁금하네요
    두서없는 질문 죄송합니다.

    • 다무찌 2016.04.05 19:21 신고

      안녕하세요. 드론에 장착하려고 하는건 아두이노와 라즈베리파이 둘다 장착하는 건 맞습니다. 하지만 둘 간의 통신은 현재는 크게 의미가 없다고 생각되어서 고려하고 있지 않습니다.(하다보면 달라질 수도 있습니다.) 왜냐하면 아두이노로 드론의 변속기, 모터를 제어하는 용도이고 라즈베리파이는 단순히 드론 위에 달려서 영상을 스트리밍으로 보거나 촬영하는 용도이기 때문입니다.

      드론과 별개로 전력 측정 센서와 아두이노, 라즈베리파이 간의 시리얼 통신을 통해 분석 정보를 안드로이드 앱으로 받아보는 건 시도해볼 생각입니다. 하지만 언제가 될 지는 모르겠네요 ㅠㅠ 이것저것 관심 갖고 있는 것이 많아서 그렇습니다. 그래도 조만간 아두이노와 라즈베리파이 간의 시리얼통신에 대한 정보글을 올릴 것 같습니다. 좋은 하루 되세요!

    • 다무찌 2016.04.05 19:31 신고

      제가 질문에 제대로 답변드리지 못한거 같네요 ㅎㅎ 마지막에 말씀하신 것처럼 드론은 육안으로 보면서 제어하고, 라즈베리파이로는 촬영하거나 스트리밍으로 영상을 보는 용도입니다.

  2. PP 2016.04.09 21:45

    와이파이 신호 탐지는 AT+CWLAB가 아니라 AT+CWLAP아닌가요?

    왜 안될까 하고 보니 실행 사진에는 LAP로 적어놓으셨네요..

  3. 바바바 2016.08.18 14:13

    ESP8266을 가지고 실험하던중 업데이트를 마치고 시리얼 모니터창에서 AT를 입력했을때 아무런 반응이 없습니다.
    업데이트를 분명 마쳤고 기본소스도 업로드했습니다.
    이유를 아시는지요..

+ Recent posts