개발/ESP32, ESP8266

ESP8266(ESP-01, ESP-01S) 개요, 업로드하기

어중E 2022. 10. 4. 22:19

ESP8266(ESP-01, ESP-01S) 개요, 업로드하기

ESP-01 모듈(왼), ESP8266EX 칩(오)

와이파이 기능을 사용할 수 있는 ESP8266칩을 장착한 모듈의 이름은 ESP-01, ESP-01S 으로 판매됩니다. 본체 프로세서 칩은 오른쪽과 같이 ESP8266EX로 되어 있습니다만 ESP8266으로 부릅니다. ESP8266, ESP-01등 혼용해서 사용되는데, 이는 칩과 모듈명으로 따로 구분하시는 것이 좋습니다. 

 

※ 제조사에 따르면, ESP8266의 칩도 있지만 현재 대부분 판매, 생산되는 것은 ESP8266EX 입니다. 

 

ESP8266칩을 사용해서 만든 모듈이나 보드들은 많이 있기 때문에 해당 모듈의 데이터시트를 참고하여 개발하시거나 공부하시는 것을 추천드립니다. ESP-01 모듈은 저렴하고 자료가 많기 때문에 접근이 용이할 듯 합니다.

 

ESP-01 모듈의 부품 구조

위 사진은 ESP-01 모델의 부품을 나타낸 것입니다. ESP-01S 라는 모델도 있습니다. ESP-01S와 ESP-01은 플래시 메모리의 용량 차이만 있을 뿐 대부분 비슷합니다. 설명에서는 ESP-01의 모듈을 예시로 들겠습니다.

 

ESP-01 모듈에는 컴퓨터와 통신을 도와주는 관련 부품이 없습니다. 보통 이런 부품들이 CH340, CP2102와 같은 모델의 칩입니다. 이런 부품이 없기 때문에 프로그램을 업로드 할때, 통신 부품이 있는 보드, 모듈에 연결해서 업로드를 진행합니다.

ESP-01 Pin map

위 사진은 ESP-01 모듈의 핀 맵입니다. Vcc에는 3.3V가 인가되어야 합니다. CH_EN은 Chip Enable의 약자로 Chip을 사용할 수 있는 상태로 만들어 주는 핀입니다. CH_PD로 불리기도 합니다.

 

아두이노 우노 호환보드, FTDI 모듈, ESP-01 업로드 모듈 (왼쪽부터 순서대로)

이제 컴퓨터를 통해서 프로그램을 업로드해야 하니 통신칩이 포함된 보드들을 찾아봅니다. 대부분 ESP-01에 호환되는 보드들입니다. 이 보드들 말고도 많은 보드들이 있습니다. 적절한 보드를 구매하셔서 사용해주시면 됩니다.

 

단 맨 오른쪽 과같이 전용 모듈 같은 경우에는 테스트용도보다 개발 이후 여러개의 보드에 빠르게 업로드 하기 위한 용도로 쓰는 것이 더 좋아보입니다. 여기에서는 가운데 모듈인 FTDI를 사용합니다.

 

FTDI 모듈을 본격적으로 사용하기 전에 해당 모듈에는 전압을 조절할 수 있는 점퍼핀이 삽입되어 있습니다. 이 점퍼핀이 3.3V으로 연결되도록 점퍼핀을 삽입해줍니다. ESP-01 모듈은 3.3V가 인가되야 하는 점을 기억하시면 됩니다.

 

업로드를 하기 위해서는 ESP-01과 FTDI 모듈을 위와 같이 연결해 주어야 합니다. 브레드보드가 있으면 브레드보드를 이용하시는 것이 편합니다.

 

 

이제 아두이노를 실행해줍니다. 실행하고 난 뒤에는 파일 - 환경설정으로 진입합니다. 환경설정에는 보드정보를 특정 URL에서 받아올 수 있도록 도와주는 항목이 있습니다. 이 항목에 아래링크를 복사 붙여넣기 하고 '확인' 버튼을 눌러줍니다.

 

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 

 

보드 매니저 창이 나타나면 검색 칸에 'ESP8266'을 검색하고 설치를 눌러줍니다.

 

이어서 툴 - 보드 - ESP8266 Boards - Generic ESP8266 Module을 선택해 줍니다.

 

이어서 메뉴에서 툴을 선택하면 여러가지 항목들이 나타납니다. 대부분 변경될 것들이 많이 없습니다. 간단하게 몇 가지 항목만 살펴보겠습니다.

 

CPU Frequency는 EP8266EX 칩에 성능이며, 보통 80Mhz이지만 최대 160Mhz까지 가능합니다.

 

Crystal Frequency는 크리스탈의 주파수로 이 글의 두번째 그림에서 자세히 보셨으면 26.000Mhz 라고 적혀있던 것을 보셨을 겁니다. 보드 종류나 제조사에 따라 40Mhz나 24Mhz 가 될 수 있습니다. ESP-01에서도 크리스탈의 주파수가 다른게 종종 있으니 확인하시고 넘어가면 좋습니다.

 

Flash Size는 플래시 메모리의 크기이며, 보통 ESP-01이 512K, ESP-01S가 1M 이지만 ESP모듈에 플래시 메모리의 모델명을 직접 검색해서 확인해보는 것도 방법입니다.

 

Flash Mode에는 4가지가 있습니다 Dual OutPut, Dual I/O, Quad OutPut, Quad I/O입니다. ESP8266EX는 모든 모드를 지원합니다. 하지만 ESP-01모듈은 Quad를 지원하지 않습니다. 따라서 Dual 을 사용해야합니다. Dual과 Quad의 차이점은 설정해야하는 핀의 갯수가 2개, 4개로 차이가 있습니다. 기본적으로 DOUT을 설정합니다.

 

Reset Method는 DTR로 설정합니다. 프로세서에 코딩한 프로그램 소스를 업로드할 때에 리셋버튼을 눌러줘야 합니다. 우리가 알고 있는 아두이노 보드들이 리셋을 눌러주지 않아도 업로드가 되는 것은 DTR이라는 핀이 자동으로 리셋을 해주기 때문입니다. 

 

이외의 항목은 기본 설정으로 해둡니다.

 

이제 실제로 예제 코드를 업로드 해보면서 현재 상태를 확인합니다.

파일 - 예제 - ESP8266 - CheckFlashConfig 를 클릭해줍니다. 이후 바로 업로드 버튼을 눌러 업로드를 진행해줍니다.

연결 상태에서 위 그림 상태와 같이 GND - GPIO0 의 연결을 분리해줍니다.

이후 시리얼 모니터에서 출력되는 메세지를 확인합니다. Flash Chip configuration ok. 라는 문구가 뜨면, 현재 상태에서 변경할 것이 없고,  Flash Chip configuration wrong 이라는 문구가 뜨면, 현재 보드 설정에서 다른 부분이 있음을 의미합니다.

 

ESP-01/ESP-01S에 따라 다르게 나타날 수 있으니, 확인하고 넘어갑니다

 

현재 첫 번째 프로그램이 ESP8266에 업로드 되었습니다. 다음 프로그램을 업로드 하려면 ESP-01의 GPIO0을 GND에 연결해두고, 리셋(RST)핀을 GND에 연결 했다 다시 분리해줘야 합니다. (※이 구간에 스위치를 설치하면 좋습니다.) 위 그림의 초록색 선을 참고하세요.