아두이노 보드에서의 Wi fi, 그리고 ESP8266과 ESP32

아두이노 보드에서의 Wi fi, 그리고 ESP8266과 ESP32

1. 아두이노와 Wi fi

앞의 글에서, 미리 정해진 프로그램대로 동작하도록 하는데 사용하는 microcontroller 보드 중 가장 널리 알려진 아두이노 우노 보드에 대해 소개한 바 있다. (다음 Link 참조)

https://blog.naver.com/mythee1/223170115130

아두이노 보드는 2005년경 출시되었는데, 사용이 편리했고, 가격도 1-2만 원 정도(호환 품은 몇천 원 정도)로 저렴하기까지 했으나, 블루투스와 Wi fi 같은 무선 통신 기능은 기본적으로는 제공하지 않았다.

( 주 : 현재는 Wi fi 기능을 지원하는 Arduino가 2017년에 출시되었고, 이후 Rev 2로 업그레이드되었으나, 가격이 50Euro 정도로 고가이다.)

2. ESP8266과 ESP32 개발

무선통신을 통해서 마이크로컨트롤러를 제어하려고 했던 사용자들은 아두이노를 사용하면서 블루투스와 Wi fi를 사용하기를 원했고, 이러한 방법을 찾고자 했다.

그러던 중 2014년경 중국의 Espressif Systems (https://www.espressif.com/en)라는 당시에는 작았던 업체에서 ESP8266이라는 이름의 Wi fi 기능을 포함하는 5mm x 5mm 정도 크기의 칩을 출시하였고, 이 칩을 이용하면 Wi fi 기능을 제공할 수 있는 게 알려지게 되었다.

이 ESP8266 칩을 아두이노와 연계하여 Wi fi 기능을 제공하려는 시도로 나온 것이 8266 칩을 이용한 ESP 모듈들이며 여러 가지가 있으나, 그중에서 가장 대표적인 것이 다음 사진의 ESP-01 모듈이다. 이 ESP-01 모듈을 아두이노에 연결하여 사용하는 방법이 한동안 아두이노 보드에서 Wi fi를 지원하는 거의 표준적인 방법처럼 사용되곤 했었다.

ESP-01 모듈은 다음과 같은 방식으로 아두이노의 헤더 핀에 연결하고, Arduino IDE에서 프로그램 시 8266 칩에 필요한 라이브러리 사용을 선언해 주는 방법으로 사용하게 된다.

또한 ESP 8266 칩을 출시한 Espressif System 사는 ESP-01 모듈외에도, ESP8266 칩과 약간의 부품을 추가한 다음 모양의 ESP8266 모듈을 만들어 판매하기도 했고, 이를 토대로 ESP-01외에도 아두이노에서 사용가능한 확장 모듈이 만들어 지기도 했다.

이 회사에서는 ESP8266을 아두이노에 적용하는 것과 관련하여. SDK를 다음 Github 에 공개하고 있다.

https://github.com/espressif/ESP8266_RTOS_SDK

그리고 이 회사는 2016년경 ESP8266 칩의 성능을 더욱 강화시킨 ESP32라는 칩도 개발하여 출시하였는데, 다음과 같은 사항들이 개선된 것으로 알려져 있다.

* Wi fi와 함께 블루투스도 지원 (8266은 Wifi만 지원)

* 입출력에 사용 가능한 헤더핀의 수가 더 많음 (17 vs 36)

* 동작 속도가 더 빠름 (60~160MHz vs 160~240MHz)

* 메모리 용량이 큼 ( 160KB vs 512 KB)

* 8266칩에는 없는 다양한 센서 기능 내정(온도, 터치, 홀 센서)

이 회사가 현재 판매하는 매우 다양한 ESP모듈류에 대해서는 다음을 참조하기 바란다.

https://www.espressif.com/en/products/modules

3. ESP 보드류

ESP8266 칩에 기반한 ESP-01 모듈을 사용하게 되면서, 아두이노에서 Wi fi 지원 자체는 가능해졌으나, 거추장스러운 배선이 필요했고, 장치도 추가 모듈로 인해 복잡해지게 되었다.

또한 ESP8266과 ESP32 칩의 개발사인 Espressif systems에서 위에서 소개한 ESP32/ESP8266 모듈까지 출시하게 됨에 따라, 아예 새로운 시도가 나타나게 되었다. 즉, 아두이노에 ESP-01모듈을 추가하여 사용하는 대신에, ESP 8266 또는 ESP 32 칩과, 아두이노의 사용되는 microcontroller 기능을 통합한 형태의 보드들이 나오게 된 것이다.

이러한 보드들은 통상 ESP8266 보드 또는 ESP32보드라고 부르는데,

아두이노에 ESP-01 같은 외부모듈을 추가로 연결하여 사용하는 경우보다 배선이 간결해지고 소형화에도 유리해진다. 그러면서도 가격 역시 일반적인 아두이노 보드에 비해 별 차이가 없기도 하다. 특히 ESP32 칩을 사용한 경우에는 Bluetooth까지도 해결되고 성능도 현저히 향상되는 장점이 있어 인기가 많은 것으로 알려져 있다.

이러한 ESP 보드류들은 Espressiff사의 8266모듈 및 32모듈을 이용하여 여러 개발자가 다양한 형태의 변종보드들을 개발했기에 그 종류가 다양하나,

다음과 같이 ESP8266을 사용한 중에서는 Opensource 정책으로 세부설계 내용이 공개되어 많은 사람들이 생산하고 이용하는 NodeMCU라는 보드와

ESP32 칩을 사용하는 ESP32 보드 등을 들 수 있다.

4. 아두이노 보드의 Wi fi 자체 지원 동향

한편 아두이노 보드(호환보드 포함) 자체도 ESP-01 모듈을 사용하는 것보다 간결한 폼팩터를 구현하기 위한 방법들이 시도되었는데, 일부 3rd Party에서 아래 사진처럼 우노 보드에 8266 모듈을 부착시킨 형태가 시도된바 있다.

다만 이 제품은 아두이노 재단에서 공식적으로 개발한 것은 아니며, 아두이노 우노와 동일한 폼팩터를 가지지만, 엄밀한 의미에서는 위에서 소개한 것과 같은 ESP8266보드류의 하나로 간주되고 있다.

이후, 아두이노 재단에서도 아두이노에서 Wifi를 자체로 지원하기 위한 방법을 모색하다가 2017년경 다음과 같은 모양의 Arduino Uno Wifi 버전을 출시하였으며,

이후 이를 보완한 우노 Wi fi Rev2로 Upgrade 되어 판매되고 있는 상태이다.

다만 이 제품은 기존 아두이노로 구성된 여러 프로그램들에 쉽게 무선통신을 적용할수 있는 장점이 있기는 하나, 가격이 유럽에서 약 50유로 정도 (~70,000원)정도이고, 국내에서는 업체에 따라 다르나 11~13만원 정도의 고가로 판매되어 가성비 측면에서 이전의 방법이나 Wifi를 지원하는 유사한 기능의 다른 Microcontroller 보드류들(예 :라즈베리파이 피코 W, ESP8266보드류)에 비해 가성비 측면에서 다소 의문들도 있는 상태이다.