안녕하세요 디바이스마트 대짜이찐입니다.
이번시간엔 Wifi 모듈인 ESP-01을 아두이노와 연결하여,
Wifi 접속을 해보겠습니다.
ESP-01은 ESP8266이라고도 하며, Wifi 모듈중에서 가장 많이 쓰입니다.
핀맵은 위 그림과 같습니다.
신호 중에서 주목할 것은 RX와 TX의 TTL Level이 3.3V입니다.
아두이노의 경우 RX와 TX의 신호가 5V이므로, 그냥 사용하다가는
ESP-01모듈이 망가져 버리고 맙니다.
따라서 저항을 사용해서 전압분배 회로를 만들어서 사용하는데요.
이방법은 복잡하기 때문에 이 방법을 추천드리지 않고,
ESP-01 모듈 어댑터를 사용하는걸 추천드립니다.

아두이노의 경우 RX와 TX의 신호가 5V이므로, 그냥 사용하다가는
ESP-01모듈이 망가져 버리고 맙니다.
따라서 저항을 사용해서 전압분배 회로를 만들어서 사용하는데요.
이방법은 복잡하기 때문에 이 방법을 추천드리지 않고,
ESP-01 모듈 어댑터를 사용하는걸 추천드립니다.

ESP-01 모듈을 어댑터 위에 연결해주고,

이렇게 아두이노와 연결해 주면 됩니다.

사실 ESP-01 모듈을 아두이노로 사용하기에는 TTL레벨이 3.3V라는 문제뿐만 아니라
통신 속도가 115200bps으로 세팅되어 출고된다는 문제입니다.
이게 왜 문제가 되냐면,
아두이노와 PC는 Hardware Serial로 디지털 핀 0,1로 Serial 통신을 합니다.
때문에 ESP-01은 Software Serial로 통신을 해야하는데 Software Serial은 통신 속도를 57600bps까지만 지원하므로, 통신을 할때 문제가 생길 수 있습니다.
때문에 통신속도가 9600bps로 바꿔주는 펌웨어 업로드를 하거나, ATCommand로
9600bps로 변경해 줘야 합니다. (한번만 변경해도 됩니다.)
이번 시간에는 펌웨어 업로드가 아닌, ATCommand를 사용하여 통신속도를
변경하도록 하겠습니다.
위 회로도에서 다음과 같은 소스코드를 아두이노에 업로드 해줍니다.

라인엔딩은 Both NL & CR로 변경해 준 후,
'AT'를 입력해 동작 하는지 확인해 줍니다.
AT 명령어는 아래에 표로 안내해드리겠습니다.
(115200bps로 통신하지만 시리얼 모니터에는 9600bps 이므로 글자가 조금 깨질 수 있습니다. 하지만 송신은 제대로 동작하므로 괜찮습니다.)

AT명령어로 'AT+UART+DEF=9600,8,1,0,0'을 입력해
통신 속도를 9600bps로 바꿔줍니다.
(위에 스크린샷은 오타이니 AT+UART_DEF=9600,8,1,0,0으로 명령어를 넣어주세요)
이후 다시 아두이노 소스코드에서 ESP-01과 통신하는 Software Serial을
9600bps로 수정하여 업로드 해줍니다.

ATCommand 의 명령어는 아래표에서 간단히 볼 수 있습니다.

더 자세한 ATCommand는 아래링크에서 확인하시면 됩니다.
http://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/#AT
감사합니다.

이렇게 아두이노와 연결해 주면 됩니다.

사실 ESP-01 모듈을 아두이노로 사용하기에는 TTL레벨이 3.3V라는 문제뿐만 아니라
통신 속도가 115200bps으로 세팅되어 출고된다는 문제입니다.
이게 왜 문제가 되냐면,
아두이노와 PC는 Hardware Serial로 디지털 핀 0,1로 Serial 통신을 합니다.
때문에 ESP-01은 Software Serial로 통신을 해야하는데 Software Serial은 통신 속도를 57600bps까지만 지원하므로, 통신을 할때 문제가 생길 수 있습니다.
때문에 통신속도가 9600bps로 바꿔주는 펌웨어 업로드를 하거나, ATCommand로
9600bps로 변경해 줘야 합니다. (한번만 변경해도 됩니다.)
이번 시간에는 펌웨어 업로드가 아닌, ATCommand를 사용하여 통신속도를
변경하도록 하겠습니다.
위 회로도에서 다음과 같은 소스코드를 아두이노에 업로드 해줍니다.

라인엔딩은 Both NL & CR로 변경해 준 후,
'AT'를 입력해 동작 하는지 확인해 줍니다.
AT 명령어는 아래에 표로 안내해드리겠습니다.
(115200bps로 통신하지만 시리얼 모니터에는 9600bps 이므로 글자가 조금 깨질 수 있습니다. 하지만 송신은 제대로 동작하므로 괜찮습니다.)

AT명령어로 'AT+UART+DEF=9600,8,1,0,0'을 입력해
통신 속도를 9600bps로 바꿔줍니다.
(위에 스크린샷은 오타이니 AT+UART_DEF=9600,8,1,0,0으로 명령어를 넣어주세요)
이후 다시 아두이노 소스코드에서 ESP-01과 통신하는 Software Serial을
9600bps로 수정하여 업로드 해줍니다.

ATCommand 의 명령어는 아래표에서 간단히 볼 수 있습니다.

더 자세한 ATCommand는 아래링크에서 확인하시면 됩니다.
http://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/#AT
감사합니다.
0 댓글