첫 시그널: 버튼과 LED
기존 IOSignal esp32_channel_txrx 예제를 사용합니다. 이 과정은 #homeButton 이벤트가 전달되는 것을 확인하는 실습입니다.
준비와 배선
- ESP32 개발보드, USB 케이블
- 푸시버튼: GPIO 12와 GND 사이
- 외부 LED를 쓸 경우 GPIO 2 → 330Ω 저항 → LED 양극, LED 음극 → GND
예제의 기본 핀은 LED 2, 버튼 12입니다. 실제 보드의 핀 배치와 부팅 관련 핀 제약을 확인하고 필요하면 LED_PIN, BUTTON_PIN을 변경하세요. 내장 LED가 없거나 종류가 다르면 외부 LED를 사용합니다. 예제는 active-low 초기값을 사용하므로 외부 active-high LED에서는 초기 켜짐 상태가 다를 수 있지만 이벤트에 따른 토글은 확인할 수 있습니다.
실행
- Arduino IDE에 IOSignal과 필요한 Boho, Crypto, Bounce2를 설치합니다.
- 파일 → 예제 → IOSignal → esp32_channel_txrx를 엽니다.
WiFi.begin()의WIFI_SSID,WIFI_PASS를 바꿉니다.- 보드와 포트를 선택하고 업로드합니다. 시리얼 모니터는 115200 baud입니다.
- 통신 실습실을 실행하고 기본 송수신 프리셋을 선택합니다.
- 웹 연결 URL을
wss://io.iosignal.net/ws로 맞추고 연결합니다. - 버튼 이벤트를 누르면 장치 LED가 토글되는지 확인합니다.
- 장치의 물리 버튼을 누르면 웹에
#homeButton, 문자열esp32가 들어오는지 확인합니다.
메시지 흐름
장치와 웹이 #homeButton을 구독합니다. 웹은 browser, 장치는 esp32 문자열을 보내지만, 장치의 LED 처리는 문자열 값 대신 태그를 기준으로 토글합니다.
송신자도 같은 태그를 구독하면 자신이 보낸 메시지를 수신할 수 있습니다. 웹의 TX와 RX가 함께 보인다고 장치의 응답이라고 판단하지 마세요. 실제 장치 상태 응답은 다음 CID LED 실습에서 다룹니다.
이 예제에 포함된 #robot 수신은 별도 바이너리 실험용입니다. 기본 버튼 실습에는 필요하지 않습니다.