요약
ESP32를 아두이노에서 실제로 테스트하기 전 간단하게 웹(wokwi)에서 시뮬레이션 테스트하는 방법
실제 개발보드로 테스트하며 진행하는 것이 물론 좋지만 핀을 수작업으로 일일이 연결하는 게 귀찮다...
시작하기에 앞서 wokwi가 뭔지 간단하게 살펴보자
wokwi란 온라인으로 간단하게 시뮬레이션할 수 있는 플랫폼이다. 하드웨어와 소프트웨어를 시뮬레이션하고 테스트할 수 있는 가상 랩 환경을 제공하며 교육용으로 사이트가 제작되었다.
다양한 언어와 MCU 하드웨어를 지원하며(라즈베리파이, 아두이노, ESP32, STM32 등) 각종 라이브러리를 적용할 수 있어서 실제 개발보드를 사용하는 것과 같은 환경을 제공한다.
LED, LCD, WIFI, GYRO, PIR, MOTOR 등 개발에 필요한 센서들 종류가 다양하게 있으며 실제 제품을 사용할 때와 동일하게 동작한다. 복잡하지 않은 WIFI연결도 지원하므로 FIREBASE, AWS 등 클라우드 연동 테스트 또한 확인 가능해서 웬만한 프로젝트는 모두 wokwi로 구현할 수 있다.
진짜 강력한 아두이노 웹 시뮬레이션 도구다!
아두이노 시뮬레이션 Wokwi 웹 시작
아두이노 시뮬레이션 테스트 웹 wokwi페이지를 접속해서 우측 상단에 SIGN IN으로 로그인한다.
GOOGLE 아이디로 접속하면 1초 만에 로그인되니까 진짜 편하다.
샘플코드를 작성해서 테스트해 보자
ESP32를 클릭하고 스크롤을 조금 내려 Starter Templates에서 ESP32를 선택해 보자.
그러면 오른쪽 그림과 같이 ESP32 모양이 나오며 테스트 환경은 끝났다.
그리고 실행버튼을 누르면 저장하라는 창이 뜨는데 Public으로 저장하면 된다.(유료 결제하면 Private 할 수 있으나 그냥 Public으로 진행하자)
실행하면 프로그램의 가장 기초 중의 기초 "Hello World"가 출력되는 것을 확인할 수 있다.
이 wokwi 플랫폼이 강력한 이유가 여기에 있다.
초기 설정을 알아서 다 해주고 개발자는 코드만 개발하여 테스트할 수 있어서 진짜 진짜 편하다.
(하지만 실제 개발보드로 구현할 때는 많은 어려움이 발생되긴 한다)
LED 불빛 OUTPUT 제어
이제 Hello World 벽을 넘었으니 LED 불빛을 깜빡이는 Output 제어를 해보자.
실행 버튼 옆에 (+) 버튼을 누르면 각종 센서 리스트가 뜬다.
아래 그림과 같이 회로를 구성하고 코드를 입력해서 불빛이 깜빡이는지 테스트해 보자.
코드를 복사 붙여 넣기만 하면 된다.
#define LED_PIN 32
int toggle = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
toggle++;
digitalWrite(LED_PIN,toggle%2);
delay(500); // this speeds up the simulation
}
자세히 보면 LED에는 방향이 있고 led1:A가 5V 부분과 연결이 되어야 한다. led:C가 32pin과 연결되어야 정상적으로 동작한다. 저항은 220Ω으로 설정해 주면 된다.
LED 방향이 반대일 경우 아무런 동작이 되지 않는다.
실제 개발보드로 진행할 때 위치가 틀리게 연결하면 각종 소자가 불에 타버리는 경우가 많이 발생된다.
하지만 시뮬레이션으로 실제 동작을 다 확인한 후에 연결하면 비교적 안전하게 작업을 할 수 있다. (정말 편하다)
펌웨어를 개발하는 과정에서 정말 알 수 없는 일들이 많이 발생한다. (핀 연결 실수, 그라운드 이슈, 전압 이슈 등)
더 큰 문제는 내가 코드를 잘못 짜서 동작안 하나? 라는 의문으로 하드웨어 보단 코드를 다시 보게 된다.
하드웨어를 다시 수정해서 확인해도 동작 안 하면 정말 멘붕 오고 헤매게 된다.
이런 일을 최소한으로 줄일 수 있는 게 wokwi로 시뮬레이션해보는 거다.
하드웨어도 부담 없이 연결해도 되고(불에 타지 않으니) 보드에 연결하지 않아도 되니까 어디서든 테스트 가능하고.
ESP32, 아두이노로 개발할 때에는 가능하면 시뮬레이션으로 확인 후에 진행해 보도록 하자.
'ESP32 > 장치설정' 카테고리의 다른 글
[아두이노] ESP32 Multi Thread 구현하는 방법 (easy RTOS) (2) | 2024.03.06 |
---|---|
[아두이노] ESP32 MAC, CHIP ID, 고유 식별 값 읽는 방법 (3) | 2024.03.05 |
[아두이노] ESP32 PIN OUT 사용 가능한 핀 (0) | 2024.02.18 |
[아두이노] ESP32 아두이노 2 설치 (1) | 2024.02.15 |
[아두이노] ESP32란? (2) | 2024.02.13 |