inbum.net
블로그 목록

ESP32가 아두이노보다 좋은 점들 (IoT 프로젝트 관점)

2026년 5월 28일0

ESP32가 아두이노보다 좋은 점들 (IoT 프로젝트 관점)

📌 Context

아두이노(Arduino Uno/Nano 기준)는 입문용 MCU로 널리 사용되지만, 실제 IoT 프로젝트를 진행하다 보면 Wi-Fi/Bluetooth 미지원, 낮은 연산 성능, 제한된 메모리 등의 한계에 부딪히게 된다. ESP32는 이러한 한계를 극복한 MCU로, IoT 프로젝트의 요구사항을 대부분 내장 기능으로 충족시킨다.

⚙️ Core

주요 스펙 비교

항목Arduino UnoESP32
CPU8-bit AVR @ 16MHz32-bit Dual-core @ 240MHz
RAM2KB SRAM520KB SRAM
Flash32KB4MB (보드에 따라 16MB)
Wi-Fi없음 (실드 필요)내장 (802.11 b/g/n)
Bluetooth없음내장 (BT 4.2 + BLE)
ADC10-bit x 6채널12-bit x 18채널
GPIO14개34개
가격~$5 (정품 기준)$35 (모듈 기준)

ESP32 기본 IoT 예제 (Wi-Fi + MQTT)

#include <WiFi.h>
#include <PubSubClient.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
const char* mqttServer = "broker.hivemq.com";
const int mqttPort = 1883;

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWi-Fi connected: " + WiFi.localIP().toString());

  client.setServer(mqttServer, mqttPort);
  while (!client.connected()) {
    client.connect("ESP32Client");
  }
  Serial.println("MQTT connected");
}

void loop() {
  client.publish("iot/sensor", "hello from ESP32");
  client.loop();
  delay(5000);
}

Deep Sleep을 활용한 저전력 설계

#include <esp_sleep.h>

#define SLEEP_DURATION_US 10 * 1000000  // 10초

void setup() {
  Serial.begin(115200);
  // 센서 읽기 및 데이터 전송 로직
  Serial.println("Data sent. Going to deep sleep...");
  esp_sleep_enable_timer_wakeup(SLEEP_DURATION_US);
  esp_deep_sleep_start();
}

void loop() {
  // deep sleep 사용 시 loop()는 실행되지 않음
}

💡 Insight

  • Wi-Fi/BLE 내장: 아두이노에서는 ESP8266 실드나 HC-05 모듈을 별도로 연결해야 하는 반면, ESP32는 추가 부품 없이 무선 통신이 가능하여 회로 복잡도와 비용을 동시에 줄일 수 있다.
  • 듀얼 코어 활용: FreeRTOS 기반으로 두 개의 코어를 독립적으로 사용할 수 있어, 한 코어에서 센서 데이터 수집, 다른 코어에서 네트워크 통신을 병렬 처리하는 구조가 가능하다.
  • Deep Sleep으로 배터리 연장: 전류 소모를 약 10µA 수준까지 낮출 수 있어, 배터리 구동 IoT 디바이스 설계에 매우 유리하다.
  • 주의사항: ESP32는 3.3V 로직 레벨을 사용하므로 5V 아두이노용 센서/모듈 연결 시 레벨 시프터가 필요하다. 또한 일부 GPIO는 부팅 시 특정 상태로 설정되므로 핀 선택에 주의해야 한다.
  • 결론: 단순 LED 점멸 수준의 학습 목적이라면 아두이노가 적합하지만, Wi-Fi, BLE, 멀티태스킹, 저전력이 필요한 실제 IoT 제품 개발에는 ESP32가 사실상 표준에 가깝다.