본문 바로가기
  • Larry`s arduino blog
아두이노

[ 아두이노 강좌 ] 0-4. ESP32 / ESP8266에 대해 알아보자(차이점, 핀맵 pinmap, 스펙, 전원 공급 방법, 통신 핀, 쓸

by larry 2020. 12. 25.

[ 아두이노 강좌 ] 0-4. ESP32 / ESP8266에 대해 알아보자(핀맵 pinmap, 스펙, 전원 공급 방법, 통신 핀, 주의할 점)

esp32 개발보드
esp8266 개발보드(nodemcu)

1. 설명

ESP32와 ESP8266은 아두이노처럼 쓸 수 있지만 와이파이와 블루투스(ESP8266에는 없음)가 포함되어있어서 IOT를 구현할 때 편하고, 속도가 훨씬 빨라서 고성능이 필요할 때는 사용하기 좋다.
ESP32와 ESP8266은 ESPRESSIF라는 회사에서 만들어 졌는데
ESP8266이 더 구형 버전이고 ESP32가 ESP8266의 단점을 보완해서 만들어진 것이다.
원래 위 사진처럼 생긴 것은 아니고 위 사진은 개발 보드로 개발할 때 쓰기 좋으라고 만든 것이다.

ESP32안에 들어있다

이 사진처럼 개발 보드에 ESP32 칩이 들어있는 것이다.
ESP32 보드도 종류가 많은데 크게 그냥 위 사진처럼 생긴 일반 개발 보드, 카메라가 달린 개발보드, 배터리홀더가 달린 개발보드, 화면이 달린 개발 보드 등이 있다.
참고로 일반 개발 보드를 살 때 핀 수가 더 많고 5v 핀이 있는 것이 있고 아닌 것도 있다.
핀 수가 더 많은 것이 5v가 있어서 사용하기 편하므로 5v핀이 있는 것으로 사는 것을 추천한다.

2. ESP32 / ESP8266 차이점 및 스펙

이름 ESP32 ESP8266(nodemcu)
마이크로컨트롤러 Xtensa Dual-core LX6 Xtensa Single-core L106
작동전압 3.3v 3.3v
GPIO 36 17(실제로 쓸 수 있는건 더 없음)
PWM 디지털 핀 16 8
Flash Memory 4~16MB 4MB
SRAM 512KB 160KB
Clock Speed 160~240MHz 60~160MHz
내장된 LED핀 번호(LED_BUILTIN) 2 2
WiFi O O
블루투스 Bluetooth 4.2, BLE X
터치센서 O X
온도센서 O X
홀센서 O X

1. 핀 개수
ESP8266이 보기에는 아두이노 우노보다도 핀 개수가 더 많아 보이지만 대부분이 내부적으로 쓰고 있는 핀이어서 쓸 수 있는 핀이 너무 적었다.
이 문제는 ESP32에서는 핀 개수가 확 늘면서 해결되었다.
2. 성능
성능도 ESP32가 더 좋다.
3. 블루투스
ESP32에는 ESP8266에는 없던 블루투스가 추가되었다.
4. 그 외 터치센서, 온도센서, 홀 센서 등 다양한 것들이 추가되었다.

나는 가격을 생각하더라도 ESP32를 쓰는 것을 더 추천한다.
*그래서 이 아래부터는 ESP8266 이야기는 없고, ESP32에 대한 이야기이다.

3. 핀맵

ESP32 핀맵(같은 ESP32인데 핀 배치가 다를 수 있다.)

4. 전원 공급 방법

1. 업로드할 때도 사용하는 USB 포트를 이용
전압 : 4.5~5.5v
2. 그냥 3.3v나 5v 핀에 맞는 전압 연결
3.3v핀에 3.3v를 연결하거나, 5v핀에 5v를 연결한다.
-는 GND핀에 연결

5. 통신 핀

1. UART(Serial) 통신
*ESP32에는 Serial 통신 핀이 3가지가 있지만 그중 한 가지는 업로드때 사용해서 못 쓰고, 다른 한가지는 쓸 수 없는 핀에 연결되어 있어서 다른 방법으로 핀을 바꿔줘야 쓸 수 있어서 쉽게 쓸 수 있는 Serial 통신 핀은 한 가지밖에 없다.
Serial
RX : RXD
TX : TXD
Serial 1 *이거 쓰고 싶으면 핀을 바꿔야 한다.
RX : SD2
TX : SD3
Serial2
RX : 16번
TX : 17번
*컴퓨터에서 소스코드를 업로드할 때 RXD, TXD를 이용해서 통신하고, SD2, SD3는 ESP32 Flash 메모리와 연결되어있어서 RXD, TXD, SD2, SD3를 이용하면 업로드 오류가 날 수도 있어서 ESP32에서는 보통 Serial2를 이용해야 한다.
*ESP32에서는 SoftwareSerial을 지원하지 않음

2. i2c
SDA : 21번
SCL : 22번
*i2c통신을 이용할 때는 맨 위에 #include <Wire.h>를 써주어야 한다.(라이브러리 사용 시에는 보통 라이브러리에 포함되어있어서 상관없음)

3. SPI
MOSI : 23번
MISO : 19번
SCK : 18번
SS : 5번
*SPI 통신을 이용할 때는 맨 위에 #include <SPI.h>를 써주어야 한다.(라이브러리 사용 시에는 보통 라이브러리에 포함되어있어서 상관없음)

6. 핀 설명

1. 정전식 터치 입력 지원 핀 : GPIO 4,0,2,15,13,12,14,27,33,32
2. 입력만 받을 수 있는 핀(PULLUP, PULLDOWN 저항이 없음)(출력 불가) : GPIO 34~39(34,35, SVP, SVN)
3. PWM 이용 가능한 핀 : 출력을 사용할 수 있는 모든 핀(위에서 말한 입력만 받을 수 있는 핀은 사용불가)
4. 사용 불가한 핀 : GPIO 6~11(SLK, SD0, SD1, SD2, SD3, CMD), RXD, TXD
5. 내장 LED(BUILTIN_LED) : GPIO 2
*32번 핀이 시작될 때 HIGH이면 부팅 실패

7. 주의할 점(esp32 기준)

GND핀 중에 GND역할을 하지 못하는 핀이 하나 있을 수 있다.(핀맵 참고)
일반 아두이노 우노 등에서 사용하는 부저 사용법이 통하지 않는다.
pwm, 부저를 사용할 수 있는 함수가 일반 아두이노 우노 등과 다르다.
위에서 말한 것처럼 쓸 수 없는 핀들이 조금 있는 편이다.
일반적인 방법으로는 Software Serial을 쓸 수 없다
처음 사용할 때 간단한 등록이 필요하다.

약간의 쓰기에 주의할 점들과 못쓰는 핀들이 있긴 하지만 기능이 다양한 만큼 정말 좋은 보드인 것 같다.

*재료 구입
ESP32 : https://s.click.aliexpress.com/e/_ApYvbS

4.3US $ |2021 ESP32 ESP 32 Development Board Wireless WiFi Bluetooth Dual Core CP2104 Filters Power Management Module 2.4GHz New

Smarter Shopping, Better Living! Aliexpress.com

www.aliexpress.com

*esp32는 핀 개수가 다른 여러 버전이 있으므로 왠만하면 핀부분이 노란색으로 되어있는 핀이 많은 버전을 사는 것이 편합니다

ESP32 CAM(카메라 기능 기본 탑재 버전) : https://s.click.aliexpress.com/e/_A7K20C
*esp32 cam에는 컴퓨터와 연결할수 있는 포트가 없어서 따로 연결해줄 장치가 필요합니다

ESP8266(NODEMCU) : https://s.click.aliexpress.com/e/_9IKmCC

0.9US $ 18% OFF|New Wireless module CH340 NodeMcu V3 Lua WIFI Internet of Things development board based ESP8266|nodemcu v3|lua

Smarter Shopping, Better Living! Aliexpress.com

www.aliexpress.com

*보통 알리익스프레스가 더 싸지만 배송이 국내보다 늦기때문에 급하시다면 국내에서 사고 급하지 않다면 알리익스프레스에서 사는게 좋습니다.

댓글