본문으로 건너뛰기

그룹 채널로 ESP32 두 대 제어하기

Remocon esp32-group-led 예제는 두 장치가 같은 상태 문자열을 받고, 각자의 위치에 해당하는 출력을 적용하는 실습입니다. 공개 웹앱에서는 직접 태그를 제어하고, Remocon에서는 그룹 검색 규약으로 UI를 찾습니다.

준비와 설정​

각 ESP32에 CID LED 실습과 동일하게 GPIO 4 외부 LED를 연결합니다. 한 대만 있어도 자신의 출력 위치를 확인할 수 있지만, 동시 제어 확인에는 두 대가 필요합니다.

  1. examples/esp32-group-led/esp32-group-led.ino를 엽니다.
  2. Wi-Fi 설정을 바꿉니다. 기본 서버는 io.remocon.kr:55488입니다.
  3. 첫 보드는 OUTPUT_INDEX = 0, 둘째 보드는 OUTPUT_INDEX = 1로 업로드합니다.
  4. 두 보드의 GROUP_CHANNEL과 관련 태그는 동일하게 유지합니다.
  5. 두 장치 모두 시리얼에서 READY CID:를 확인합니다.

공개 웹앱 실습​

  1. 그룹 LED 프리셋을 선택하고 wss://io.remocon.kr/ws에 연결합니다.
  2. 장치 1을 누르면 #lab$states에 TEXT 10을 보냅니다.
  3. 장치 2는 01, 모두 켜기는 11, 모두 끄기는 00을 보냅니다.
  4. 첫째·둘째 LED가 각 문자열 위치에 따라 바뀌는지 확인합니다.
문자열첫 보드둘째 보드
10ONOFF
01OFFON
11ONON
00OFFOFF

장치는 정확히 두 자리의 0/1 문자열만 처리합니다. 다른 형식은 출력을 바꾸지 않습니다.

Remocon 그룹 검색 규약​

목적태그데이터
그룹 검색#scan/chEMPTY
그룹 알림#detect/ch#lab
그룹 이름#lab$nameESP32 LEDs:Tutorial
UI 항목#lab$uiLED 1,LED 2
공유 출력 설정#lab$states00 ~ 11

장치가 준비되거나 검색 요청을 받으면 그룹을 알립니다. Remocon 웹앱의 그룹 채널 UI와 같은 태그 규약입니다. 다른 그룹을 만들려면 관련 태그와 웹 구독·송신 태그를 함께 바꾸세요. $의 위치가 달라지면 다른 태그로 인식됩니다.

기존 그룹 모델과의 관계​

그룹 제어는 여러 역할로 나눌 수 있습니다. 제어 장치는 버튼 입력 등으로 공유 상태를 발행하고, 수신 장치는 자신의 출력 위치를 적용합니다. 하나의 장치가 CID 명령을 받아 공유 상태를 발행하는 혼합 방식도 가능합니다. 이 실습은 기존 그룹 규약을 유지하면서 웹앱을 제어 장치로, ESP32 두 대를 각 LED의 수신 장치로 구성합니다. 각 보드는 웹의 그룹 검색을 위해 같은 이름과 UI도 알립니다.

UI 항목 순서와 상태 문자열 위치는 서로 맞아야 합니다. 현재 두 항목을 더 늘리려면 UI, 문자열 길이 검사, 출력 위치와 웹 프리셋을 함께 변경하세요.

공유값과 실제 상태​

#lab$states는 그룹에 적용할 공유값입니다. 이 값이 웹에 보였다는 것만으로 두 장치가 모두 실행했다고 보장하지 않습니다. 장치는 적용 후 각자 @$state로 on/off를 발행하므로, 필요하면 각 장치 CID의 @$state를 구독하여 따로 확인합니다.

장치는 부팅 시 LED를 끄고, 그룹 상태를 임의로 00으로 덮어쓰지 않습니다. 서버에 보관된 값이 있으면 구독 후 적용할 수 있습니다. 보관 여부·크기·개수·유지시간은 서버 설정과 인증 유형에 따라 달라집니다. 이 과정은 LED 실습용이며 연결이 끊겨도 마지막 GPIO 출력은 유지될 수 있습니다.