1. ESP8266과 ESP32 개발 보드
예전 글에서, 초기 아두이노 보드가 Wi fi나 블루투스를 지원하지 않았으나, 2014년경 중국의 Espressif Systems (https://www.espressif.com/en)라는 업체에서 Wi fi 기능이 있는 ESP8266 칩을 출시함으로써 아두이노에서 Wi fi 기능이 가능하게 됨을 소개한 바 있었다.
https://blog.naver.com/mythee1/223172333504
이 회사는 처음에 단순한 5mm x 5mm 정도의 반도체칩으로 출시하였던 ESP8266을 이후 모듈화하였고, 이후 마이크로 컨트롤러까지 포함한 ESP8266 개발 보드까지 출시하게 되었다. 이 보드는 그 자체로 마이크로 컨트롤러의 기능을 하면서, 기존 아두이노에서 지원이 어려웠던 Wi fi도 지원했기에 꽤 인기를 얻은 것으로 알려져 있다.
그리고, 이후 이 회사는 ESP 8266칩에 다음과 같이 성능을 더 향상시킨 ESP32칩을 만들었고, 이를 다시 모듈화하였으며, 이 모듈을 사용하여 여러 회사에서 ESP32 개발 보드를 출시하였는데, 성능도 향상되고, Wi fi 및 블루투스까지 지원되었고, 가격도 수천 원에 불과한 가격이라 꽤 널리 사용된 것으로 알려져 있다.
* Wi fi와 함께 블루투스도 지원 (8266은 Wi fi만 지원)
* 입출력에 사용 가능한 헤어핀의 수가 더 많음 (17 vs 36)
* 동작 속도가 더 빠름 (60~160MHz vs 160~240MHz)
* 메모리 용량이 큼 ( 160KB vs 512 KB)
* 8266칩에는 없는 다양한 센서 기능 내정(온도, 터치, 홀 센서)
2. ESP8266에 Micropython 개발 환경 만들기
일반적으로 ESP8266보드나 ESP32보드는 아두이노용 IDE인 스케치에서 사용하는 것으로 알려져 있으나, 최근 인기가 높아지고 있고, 배우기도 쉬운 파이썬 언어도 각각 마이크로 파이썬 언어를 설치하면 파이썬 사용이 가능한 것으로 알려져 있다.
인터넷에는 ESP8266에 마이크로 파이썬 개발 환경을 구축하는 방법이 여러 가지로 소개되어 있으나, 대부분 실제로 잘 동작하지도 않고, 매우 불필요했다. 나는 엄청 헛발질하다가, 결국 최신 Thonny IDE에는 이런 기능들이 기본 내장되어 있는 것을 알게 되었다.인터넷에 과거에 소개된 방법들은 너무 복잡하고 오류도 많아, 불편한 과거의 방법들이었다. 다음과 같이 설치하는 것이 가장 간단하고 확실하다.
Step 1. 먼저, Thonny IDE를 설치한다.
Thonny는 마이크로 파이썬을 코딩 및 인터프리터 기능을 해주는 역할도 하지만, 펌웨어를 ESP8266보드에 기록하는 역할도 통합되어 있다. Thonny IDE는 https://thonny.org/에서 다운로드할 수 있다. 이 사이트에 접속한 후, 다음 그림에 표시된 부분을 선택해서 자신에게 맞는 것을 선택해 다운로드하여 설치한다.
Step 2. ESP8266 개발 보드에 적합한 마이크로 파이썬 펌웨어를 다운로드해서 준비해 준다.
다음 링크를 통해 마이크로 파이썬 다운로드 사이트에 접속한 후,
https://micropython.org/download/#esp8266
여기에는 다양한 종류의 보드가 표시되므로, 이 중에서 ESP8266 보드를 선택하면
ESP8266보드용 마이크로 파이썬 펌웨어를 다운로드하는 페이지로 넘어가는데, 이 중에서 다음과 같이 가장 최신 버전을 선택해 다운로드하면 된다. 이 펌웨어는 bin 형식의 파일이다.
Step 3. USB to UART Bridge 드라이버 설치 여부 확인 (= 포트인식여부 확인) – 필요시 설치함
ESP 보드를 PC에 연결한 상태에서, 제어판 –> 설정 –> 장치관리자를 찾아 포트 항목에서 다음과 같이, CP210x USB to UART Bridge 드라이버가 설치되어 있는지를 확인한다. 이 칩은 ESP보드가 PC와 통신하기 위한 칩인 2102(또는 304칩)을 사용하기 위한 것으로, 기존에 다른 목적으로도 설치되는 경우가 많으므로, 자신의 PC에 없는 경우에만 설치하면 된다.
만일 이렇게 확인되지 않는다면 CP210x 드라이버(또는 CH304칩 드라이버)를 설치해야 한다.
해당 드라이버는 다음 링크로 Silicon Labs 사이트 (https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads)에 접속한 후, 다음과 같이 각자에게 맞는 드라이버를 다운로드하면 압축형태의 드라이버가 다운로드된다.
압축을 풀면 다음과 같은 파일들이 나오는데, 자신에게 맞는 것을 설치하면 된다. (Win10의 경우 x64버전 추천)
이 드라이버는 ESP 보드의 USB로 들어온 신호를 내부용 신호로 바꾸어주는 통신칩인 Silicon Lab사의 CP2102 칩을 활성화 시키는 드라이버인데, 기존에 설치된 경우도 많다. 따라서 기존 설치 여부를 확인하고, 필요한 경우에만 설치해 주면 된다.
또한 일부 ESP보드에서는 표준인 CP2102 칩 대신 다음 사진의 오른쪽에서 처럼 길쭉한 형태인 CH304G 칩을 사용하기도 한다. 이 경우에는 CP2102용 드라이버가 아니라, CH304G용 드라이버를 제조사 사이트에서 (https://www.wch-ic.com/search?t=all&q=ch340G) 에서 다운로드 하여 동일한 방식으로 설치해 주어야 한다.
Step 4. Thonny IDE에서, 다운로드한 펌 에어를 ESP8266 개발 보드에 넣어준다.
먼저 설치해 둔 Thonny IDE를 실행해서 다음과 같이 “도구” –> “옵션” 메뉴로 이동하고
“인터프리터” 탭으로 이동한 후, 다음 그림에 표시된 부분들을 각기 ESP8266으로 선택하고, 포트를 선택해 주고(참고로 내 경우는 COM8), 그 후 오른쪽 하단의 “Install Micropython”명령을 눌러준다.
그러면 다음과 같은 화면이 되는데, 여기서 다음 화면과 같이 포트를 다시 한번 확인하고, 미리 다운로드해 둔 펌웨어 파일을 지정한 다음 “설치”를 진행하면 다음 화면과 같이 ESP8266 개발 보드에 마이크로 파이썬 펌웨어 설치가 진행된다.
(주의 : 이 과정에서 Flash Mode 선택과, “Erase flash before installing”을 선택해 주어야 한다.)
그리고 잠시 뒤 다음과 같이 펌웨어를 개발 보드에 업로드하는 것이 완료되었다는 메시지가 나온다.
이제 마치 라즈베리 파이 피코 보드를 사용하듯이. Thonny IDE를 이용하여 ESP8266보드에서 마이크로 파이썬을 사용할 수가 있다.
LED 3개를 순차적으로 켰다가 꺼지도록 하는 간단한 회로를 만들어, 정상적인 동작을 test 해 보았다.
(참고 – ESP8266의 끝에 위치한 3개핀은 GP4, 5, 16번임)
import machine
import time
led1=machine.Pin(4, machine.Pin.OUT)
led2=machine.Pin(5, machine.Pin.OUT)
led3=machine.Pin(16, machine.Pin.OUT)
led0.value(0)
while True:
led1.value(1)
time.sleep(1)
led1.value(0)
led2.value(1)
time.sleep(0.5)
led2.value(0)
led3.value(1)
time.sleep(0.5)
led3.value(0)
time.sleep(0.5)
동작하는 모습은 다음과 같다.
3. ESP32 개발 보드에 Micropython 개발 환경 만들기
ESP32보드 역시 위에 소개한 것과 동일한 방법으로 마이크로 파이썬 개발 환경을 구축할 수 있다. 단, Thonny에서 펌웨어를 업로드할 때 한 가지 주의할 점이 있다.
Step 1. 먼저, 위에서처럼 Thonny IDE를 설치한다. (기존에 설치되어 있는 경우, 재설치할 필요 없음)
Step 2. ESP32 개발 보드에 적합한 마이크로 파이썬 펌웨어를 다운로드해서 준비해 준다.
마이크로 파이썬 다운로드 사이트(https://micropython.org/download/#esp8266)에 접속한 후, 자신에게 맞는 ESP32 보드를 선택하고
ESP32용 다운로드 페이지에서 가장 최신 버전을 선택해 다운로드한다.
Step 3. USB to UART Bridge 드라이버 설치 여부 확인 (= 포트인식여부 확인)
ESP32 보드를 PC에 연결한 상태에서, 제어판 –> 설정 –> 장치관리자를 찾아 포트 항목에서 CP210x USB to UART Bridge 드라이버가 설치되어 있는지를 확인한다. – 미설치시 드라이버 설치 필요 (세부 방법은 위의 ESP8266 부분 참조)
Step 4. Thonny IDE에서, 다운로드한 펌 에어를 ESP32 개발 보드에 넣어준다.
먼저 설치해 둔 Thonny IDE를 실행해서 다음과 같이 “도구” –> “옵션” 메뉴로 이동하고
“인터프리터” 탭으로 이동한 후, ESP32 보드와 포트를 선택해 주고(참고로 내 경우는 COM8), “Install Micropython”명령을 눌러준다.
그리고 다음 화면에서 앞서 소개한 ESP8266의 경우와 동일한 방법으로 설정하고 실행하면 되는데,
(주의 : 이 과정에서 Flash Mode 선택과, “Erase flash before installing”을 선택해 주어야 한다.)
내 보드에서는 다음과 같이 error가 발생했다.
이는 펌웨어를 ESP32보드에 업로드하는 동안 보드의 Boot 모드를 바꾸어 주어야 하는 것 때문인데, 다음 그림에 있는 Boot 버튼을 누른 상태에서, 위의 펌웨어 업로드 명령을 실행해 주면 해결된다. 참고로 ESP8266보드에서는 이렇게 하지 않아도 문제가 없었다.
약 30초~1분 정도의 시간이 지나면, 다음과 같이 완료 메시지가 나오면서, ESP32 보드에 대한 마이크로 파이썬 개발 환경 구축이 완료되었다.
다음과 같은 간단한 신호등 회로를 만들고 Thonny IDE에서 간단한 코드를 만들어 동작을 테스트했는데,
프로그램 코드는 위에서 사용한 것과 동일한 코드를 사용하되, 핀의 배치번호만 달라서 ESP8266에서 사용한 GP4, GP5,GP16을 GP1/ GP22 / GP23으로 바꾸어준 후 그대로 사용하였다.
그 결과 다음과 같이 잘 동작한다.

