오늘은 아두이노와 비슷하면서도 몇 가지 부가 기능을 더 갖춘 ESP32에 대해서 간략하게 설명하고, ESP32 보드를 웹에서 (일부) 무료로 시뮬레이션 해볼 수 있는 사이트를 소개하려고 한다.
ESP32란?
ESP32는 Espressif Systems에서 개발한 마이크로컨트롤러 보드로, Wi-Fi와 Bluetooth 기능이 내장되어 있어 IoT 프로젝트에 많이 사용된다. 저전력으로 동작하며 가격이 저렴하고, 다양한 센서 및 액추에이터와 쉽게 연동할 수 있어 스마트홈, 환경 모니터링, 원격 제어 시스템 등에 적합하다.
개발은 Arduino IDE나 PlatformIO 같은 환경에서 진행할 수 있고, C나 C++를 기반으로 동작한다. ESP32는 아두이노처럼 사용할 수 있지만, 내장 무선통신, 높은 클럭 속도, 더 많은 메모리와 입출력 핀을 제공해 더 복잡하고 고성능의 작업도 처리할 수 있다.
아두이노(Arduino) 보드는 Wi-Fi 기능이 없고 성능도 낮은 편이라 별도의 통신 모듈을 부착하거나 단순한 제어용으로 쓰이는 반면, ESP32는 하나의 보드만으로도 통신, 센싱, 연산까지 모두 가능한 범용 플랫폼이다.
WOKWI - ESP32 시뮬레이터
이전 포스팅에서 아두이노를 시뮬레이션 해볼 수 있는 팅커캐드(TinkerCAD)를 소개한 적이 있다.
깔끔한 UI와 무료라는 점만 봐도 사용하지 않을 이유가 없는 정말 좋은 툴이다. 다만 회로 시뮬레이터가 아두이노만 되는 점이 아쉽다. 이번에 ESP32도 실습을 해보려고 준비중인데, 납땜 등 번거로운 작업을 하기 전에 꼭 시뮬레이션을 해보고 싶어서 찾아보던 중 한 이스라엘 스타트업에서 만든 Wokwi라는 웹 시뮬레이터를 발견했다.
무료로 기본 기능을 사용할 수 있다고 되어 있기는 하지만, 막상 코드를 입력하고 빌드를 시도해보니 빌드 서버가 폭주한다는 핑계를 대고 해주지 않았다. 여러 번 시도해봤지만 마찬가지였다. 결국 짜증은 좀 났지만 월 7$(부가세 포함 7.7$)라는 구독료가 크게 부담스럽지는 않기에 우선 구독료를 결제하고 하려던 걸 마저 하기로 했다.
실습: 온도 센서 연결
첫 실습은 간단하게 DS18B20이라는 온도 센서를 가지고 온도를 읽어서 출력하도록 해봤다. 회로 구성은 GPT에 물어봐서 해봤다. 납땜을 직접 할 필요가 없으니 회로가 실패하면 다시 물어봐서 다르게 연결해보면 그만이다. (이렇게 편리해진 세상에서 공부를 하는 게 얼마나 다행인지 모른다.)
자세한 회로 및 코드 설명은 나중에 기회가 되면 별도의 포스팅에 정리해 보도록 하고, 여기서는 간단하게만 요약해 본다.
DS18B20 센서 모듈 연결 방법:
- 왼쪽 - GND (접지)
- 가운데 - 데이터 (DQ)
- 오른쪽 - VCC (전원 공급)
사용한 코드 (C++) :
#include <OneWire.h>
#include <DallasTemperature.h>
// DS18B20이 연결된 핀 번호 (예: GPIO4)
#define ONE_WIRE_BUS 4
// OneWire 객체 생성
OneWire oneWire(ONE_WIRE_BUS);
// DallasTemperature 객체 생성
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
sensors.begin(); // 센서 초기화
}
void loop() {
sensors.requestTemperatures(); // 온도 요청
float temperatureC = sensors.getTempCByIndex(0); // 첫 번째 센서의 온도
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" °C");
delay(1000); // 1초 대기
}
시뮬레이션 화면 :
위와 같이 시뮬레이션을 하는 동안 온도가 계속 출력되는 것을 알 수 있다. (가상 환경이라 온도가 -127도로 나온다.)
'AI Journey > 혼자 공부하는 임베디드' 카테고리의 다른 글
아두이노 내장 LED로 S.O.S 구조 신호 깜빡이게 만들어 보기 (0) | 2025.06.14 |
---|---|
아두이노의 디지털 신호와 논리값에 대해... (+프로그래밍 연습) (5) | 2025.05.20 |