아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

ESP8266 모듈에 바로 연결할 수 있는 어댑터 모듈이 나왔습니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

ESP8266 어댑터 연결 사진

왜 이제품이 이렇게 환영할 만한 제품이냐면 기존에 사용하던 방법을 보면 알 수 있습니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

기존의 아두이노 연결도

아두이노에 ESP8266모듈을 연결하기 위해서는 이렇게 복잡한 회로를 연결 해야 했습니다. 브레드보드로 연결했다면 점퍼선으로 배선 작업만 하는데 엄청 고생을 했을 것입니다. 심지어 ESP8266이 바로 브레드보드에 연결 되지 않기 때문에 M-F 점퍼선을 이용해서 하나하나 연결을 해야 했던걸 상상만하니 너무나도 끔찍합니다.

심지어 동작전압도 3.3v인데 전류를 많이 먹다보니 아두이노 에서 나오는 3.3v로 사용하면 전류가 모잘라서 정상적으로 제어도 하기 힘들어집니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

그런데 이 모듈을 사용하면 편-안 그 자체입니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

RX와 TX , 전원만 연결 하면 끝

거기에 로직 레벨 컨버터와, 레귤레이터가 내장되어 있어 아두이노의 3.3v 를 사용하지 않고 5V만 연결 해주면 바로 알맞은 전원, 알맞은 로직 전압이 공급이 됩니다.

제품 자랑만 하고 끝낼 수는 없지요...

직접 사용해보도록 하겠습니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

실제로 연결한 사진

회로를 연결하고 다음 소스코드를 올리도록 합니다.

#include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // RX, TX void setup() { Serial.begin(9600); mySerial.begin(115200);//기본 통신 속도가 9600인 제품은 9600으로 수정해 주세요 } void loop() { if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } }

소스코드를 올렸으니 시리얼 모니터를 열어 AT 커멘드를 보내 보도록 합시다.

커멘드 응답에 특수 기호나 글짜가 깨져있다.

AT응답을 하는데 글자가 깨진다고 하더라도 너무 걱정하지 않으셔도 됩니다. 회로나 제품의 이상이 아니라 아두이노의 소프트웨어 시리얼은 115200 의 통신속도를 지원하지 않기 때문에 통신이 불안정 한것 뿐입니다. 송신은 잘되나 수신이 잘 안되는 것이기 때문에 여기서 보드레이트를 바꾸는 명령을 보내어 보드레이트를 변경하면 됩니다.

보드레이트 변경

보드레이트를 변경하면 됩니다. (2019/04/08 esp8266의 펌웨어가 업데이트 됨에 따라 AT+CIOBAUD=9600이 사용되지 않습니다. 다음의 명령어를 통해 변경해주시길 바랍니다(AT+UART_DEF=9600,8,1,0,0)) 그러면 소스코드를 수정해야하는데 위의 소스코드에서 다음 부분을 수정하면 됩니다.

mySerial.begin(9600); // 115200을 9600으로 변경합니다.

와이파이 목록 잘받아 오는 구만~~~

와이파이에 접속 해보겠습니다.

AT+CWJAP="SSID","PASS"

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

[아두이노 강좌] WIFI ESP8266(ESP-01) 모듈 사용방법 알아보기

아두이노 와이파이 연결 - adu-ino waipai yeongyeol
로보다인시스템2017. 12. 1. 14:02

아두이노 와이파이 연결 - adu-ino waipai yeongyeol


안녕하세요 에듀이노 입니다.
오늘은 WIFI 모듈에서 가장 보편적인 모델중 하나인 ESP8266(ESP-01) 모듈을
사용하는 방법에 대해 알아보겠습니다.


아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

WIFI ESP8266(ESP-01) 모듈은 IOT 사물인터넷, 스마트홈 등을 구성할 때 필요한 와이파이
제품에서 가장 보편적인 모델중 하나로 활용되고 있습니다.
시리얼 통신을 통해 AT명령으로 설정 변경이 가능하며, 3.3V에서 동작합니다.

Module

Espressif ESP8266

ESP8266 Version

ESP-01

동작 명령

UART AT command

안테나 구성(Antenna configuration)

On-boad ceramic antenna

통신방식

802.11 b/g/n 지원

통신 속도(Baud rate)

9600

플래쉬 메모리(Flash memory)

16M Byte

프로세서 스피드(Processor speed)

80-160Mhz

크기(Size)

14.5 x 24.8mm

동작 전압

3.3V(최소 300mA 이상)로만 동작

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

WIFI는 생활 전반에서 사용되는 무선 통신 수단입니다. 일반적으로 PC
스마트폰과 같은 개인 전자 기기를 비롯해 가정집은 물론,
학교나 회사, 카페 등 곳곳의 통신 기기에서 사용되고 있습니다.






3. 아두이노와 WIFI ESP8266(ESP-01) 통신하기

   3.1 준비물
     ▶ 실습에앞서준비물이필요합니다. 
     
   (링크를클릭하면해당 제품페이지로이동합니다.)
         아두이노 우노 (DIP) : 링크 클릭
         WIFI ESP8266(ESP-01) 모듈 : 링크 클릭
         브레드보드 400(불투명) : 링크 클릭
         점퍼 케이블 : 링크 클릭
         저항(1K) : 링크 클릭 
          (저항은 1K옴을 사용하며 자세한 설명은 아래  3.3 WIFI ESP8266 연결하기에서
           확인할 수 있습니다. )
 
 
   3.2 ESP8266 초기 설정하기(펌웨어 업데이트)
      아두이노 우노 보드와 WIFI ESP8266(ESP-01) 모듈의 연결은 시리얼 통신을 이용합니다.
          우노 보드는 시리얼 통신핀을 1개만 가지고 있는데, 이 시리얼 통신핀을 PC와 통신하는데
          이용됩니다. 이런 이유로 우노 보드와 WIFI ESP8266(ESP-01) 모듈의 통신을 위해서는 우노
          보드의 디지털핀을 시리얼 통신핀으로 변경해 사용하는 ‘SoftwareSerial’ 방법을 이용해야
          합니다.
          ESP8266 모듈은 초기 통신 속도가 115200bps로 설정되어 있는 반면, ‘SoftwareSerial’
          통신 속도를 57600bps까지만 지원하므로 본 예제에서는 ESP8266 모듈의 통신 속도를
          9600bps로 변경해서 사용합니다.
         
먼저 초기 설정을 하기 전, 아래와 같이 회로를 구성하고 필요한 프로그램을 다운로드 받습니다.
            통신 속도 변경은 초기에 한 번만 하고 계속 사용할 수 있습니다.
          통신핀이 2개 이상인 아두이노 메가(Mega), 듀에(Due) 보드를 이용하면    
          (초기 설정 없이) 바로 사용이 가능합니다.
  

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

위 결선도 및 결선표를 참고하여 하드웨어 연결을 마치고 
펌웨어를 ESP8266에 올리기 위한 프로그램과

펌웨어를 다운로드 받습니다.



    1) 프로그램 준비
      - 아래의 펌웨어 업데이트 툴을 다운로드 후 압축을 풀어줍니다. (별도의 설치는 없습니다.)

      - 아래 펌웨어 압축 파일을 다운로드 받습니다. 압축을 풀고 ‘bin’ 파일을 펌웨어 업데이트 툴
        있는 폴더에 복사해 놓습니다.     


 
   2) 펌웨어 업데이트
      아두이노를 PC에 연결합니다. PC의 몇 번 시리얼 포트에 연결되었는지 알기 위해
          아두이노 IDE 실행하여 포트 번호를 확인 하고 IDE를 닫아줍니다.
          PC의 경우, COM5에 연결된 것을 확인할 수 있습니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

      펌웨어 업데이트 프로그램(esp8266_flasher.exe)을 실행하고 Bin 버튼을
           눌러 위에서 다운받은 펌웨어 파일을 선택해줍니다.
           ‘COM 포트 번호가 다르게 되어있으면 알맞게 고쳐줍니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

       'Download' 버튼을 누르면 펌웨어 업데이트가 진행됩니다. 맨 마지막에 'Leaving...' 메시지가
          나오면 업데이트가 정상적으로 종료된 것입니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol



   3) 오류 상황
        < failed to connect 오류가 뜰 경우 >
           -  아두이노와 ESP8266이 제대로 연결되었는지 확인합니다.
              연결이 잘되었더라도 재연결 해보고, 10초 정도 기다린 후 다시 시도해봅니다.
 
        < invalid head of packet error 오류가 뜰 경우 >
           -  아두이노 보드에 이미 다른 스케치가 올라가 있을 경우 발생할 수 있습니다.
              Blink 예제를 불러와 보드에 업로드 시킨 후 다시 시도해봅니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

<invalid head of packet error 오류 시 – blink 예제 업로드>






   3.3 WIFI ESP8266 연결하기
      위에서 펌웨어 업데이트를 마치면, 아래와 같이 진행합니다.

      1) 회로 구성하기
            ESP8266 모듈은 반드시 3.3V에 전원을 인가해야 합니다. 또한, 전원뿐 아니라 TX, RX
                3.3V에서 동작합니다. 하지만 아두이노 우노 보드의 TX, RX5V에서 동작하므로 전압분배                  법칙을 이용하여 우노 보드와 WIFI ESP8266 모듈을 연결합니다.
                아래 저항들은 모두 1K옴입니다. 우노 보드 3번핀에서 출력된 5V 전압이 1K, 2K옴의
                저항에서 2:1의 비율로 전압이 분배되어 ESP8266에서는 5V X 2/3 = 3.3V가 연결됩니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol

아두이노 와이파이 연결 - adu-ino waipai yeongyeol



      2) 예제 코드
            ▶ 결선도에 따라 결선이 끝나면, 아래 코드를 아두이노 보드에 업로드 합니다.
                아두이노 우노 보드를 통해 AT명령을 주고 받을 수 있는 기본 예제 코드 입니다.

#include <SoftwareSerial.h> #define BT_RXD 2 #define BT_TXD 3 SoftwareSerial ESP_wifi(BT_RXD, BT_TXD); void setup() { Serial.begin(9600); ESP_wifi.begin(9600); ESP_wifi.setTimeout(5000); delay(1000); } void loop() { if (Serial.available()){ ESP_wifi.write(Serial.read()); } if (ESP_wifi.available()) { Serial.write(ESP_wifi.read()); } }



   3.4통신 TEST
       AT 명령어
        ESP8266 모듈에서 사용하는 통신 명령어입니다. 우노 보드를 통해 명령어를 보내면
        ESP8266 모듈이 특정 응답을 하며 통신을 하는 방식입니다.
        기본적인 AT 명령어는 아래와 같습니다.
 
      1) AT
          명령 : AT
          응답 : OK
          설명 : 모듈이 정상 동작하고 있다는 TEST 명령어 OK가 돌아오면 정상적으로
          동작중이고, 아무 대답이 없을 때는 비정상 상태입니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol



          2)  AT + RST
               명령 : AT + RST
               응답 : OK
               설명 : 모듈을 리셋 시키는 명령어

아두이노 와이파이 연결 - adu-ino waipai yeongyeol



          3) AT + GMR
             명령 : AT + GMR
             설명 : 모듈 버전 확인 명령어
 
          4) AT + CWMODE
              명령 : AT + CWMODE
              설명 : WIFI 모드 확인 또는 설정 명령
              -      AT + CWMODE? : 현재 ESP8266의 모드 확인 명령
              -      AT + CWMODE = 1 (Station Mode, WIFI 디바이스 기능으로 설정)
                                                    2 (AP Mode, Access Point 기능으로 설정)
                                                    3 (AP + Station Mode, 디바이스 + AP 설정)
 
          5) AT + CWLAP
              명령 : AT + CWLAP
              설명 : AP 리스트 출력 명령
 
          6) AT + CWJAP
              명령 : AT + CWJAP
              설명 : AP 접속 명령
              -      AT + CWJAP? : 현재 접속되어 있는 AP 정보 출력명령
              -      AT + CWJAP = “ssid”, “password”
              보안이 안되어 있는 AP에 접속할 경우에는 AT + CWJAP = ”ssid”, ””
              하시면 됩니다.
 
          7) AT + CWQAP
              명령 AT + CWQAP
              설명 : AP 접속 해제 명령




     3.5동영상
        ▶ 위 예제 테스트의 결과를 동영상으로 확인합니다.


여기까지 'ESP8266 모듈 사용방법 알아보기' 였습니다.
읽어주셔서 감사합니다.

아두이노 와이파이 연결 - adu-ino waipai yeongyeol