TL;DR
- Groundrun과 ESP32-C6 개발 보드, 안드로이드 휴대전화를 연결해 다섯 가지 Wi-Fi 설정 방식을 하드웨어 루프 테스트로 검증함.
- 블루투스, Soft AP, Wi-Fi 캡티브 포털, SmartConfig, WPS 각각에 맞춘 펌웨어와 사용자 흐름을 구성함.
- Claude와 Groundrun 기술을 활용해 앱과 펌웨어, 테스트 흐름을 만들고 Claude Code가 하드웨어에서 이를 실행하도록 설정함.
- 다섯 가지 설정 흐름을 대화형으로 실행하거나 지속적 통합(CI) 회귀 테스트로 매 변경 시 검증함.
- 측정 결과 Soft AP의 설정 단계가 WPS보다 거의 13배 오래 걸렸으며, SmartConfig는 15초 이내인 경우도 있지만 간혹 크게 지연되거나 실패함.
설정하기
- Wi-Fi 연결 제품을 구매한 고객이 가장 먼저 수행하는 작업은 Wi-Fi 설정이므로, 제품의 다른 부분이 바뀌어도 매번 안정적으로 작동해야 함.
- Groundrun으로 ESP32의 무선 업데이트(OTA) 테스트와 같은 방식으로 하드웨어를 테스트 루프에 연결함.
- 테스트에는 Espressif의 ESP32-C6 개발 보드를 사용함.
- ESP32-C6 보드를 USB로 Groundrun 장비에 연결하고, 안드로이드 휴대전화도 USB로 같은 장비에 연결함.
Wi-Fi 프로비저닝
- 연결 기기의 Wi-Fi 네트워크 설정 방식은 여러 가지이며, ESP32 제품군은 다음 방식을 지원함.
- 블루투스: 휴대전화가 Bluetooth Low Energy(BLE)로 보드와 페어링한 뒤 네트워크 이름과 비밀번호를 직접 전송함.
- Soft AP: 보드가 임시 Wi-Fi 네트워크를 열고, 휴대전화가 여기에 연결해 실제 네트워크 자격 증명을 전송한 뒤 보드가 실제 네트워크로 전환함.
- Wi-Fi 캡티브 포털: Soft AP와 같은 네트워크를 사용하지만, 휴대전화가 호텔이나 공항 Wi-Fi 로그인 페이지처럼 자격 증명 입력 웹페이지로 이동함. 앱은 필요하지 않음.
- SmartConfig: Espressif 자체 방식으로, ESP32에서 ESPTouch v2로 실행되며 ESP-IDF SDK에 포함됨. 휴대전화는 홈 네트워크에 연결된 상태에서 인코딩된 패킷 스트림으로 자격 증명을 브로드캐스트하고, 아직 네트워크에 연결되지 않은 보드는 무차별 모드(promiscuous mode)로 수신함.
- WPS(Wi-Fi Protected Setup): Wi-Fi Alliance의 업계 표준임. 라우터 버튼을 누르면 보드가 라우터와 직접 자격 증명을 협상해 네트워크에 연결됨.
- 목표는 다섯 가지 방식을 모두 테스트하는 것임.
스마트폰 앱
- 일반적으로는 기존 스마트폰 앱을 사용하지만, 여기서는 Wi-Fi 연결을 시연할 간단한 앱이 필요해 Claude에 빠른 앱 개발을 요청함.
- 앱은 다섯 가지 방식 각각에 필요한 바이트를 적절한 시점에 전송하는 기능만 필요함.
- 앱의 외관은 중요하지 않으며, 홈 화면에는 각 연결 방식별 버튼이 하나씩 배치됨.
펌웨어
- 기존 연결 제품이라면 펌웨어가 이미 작성되어 있음. 이번 사례에서는 AI 개발 도구가 펌웨어를 이해하도록 하는 모범 사례를 따름. 관련 참고 자료로 연결 제품 개발에서 AI 코딩 에이전트를 시작하는 방법을 제시함.
- Claude에 펌웨어 코드 작성을 요청했고, Groundrun은 ESP32 펌웨어 작업용 기술을 제공함. 결과물에는 앞서 나열한 각 Wi-Fi 설정 방식을 구현하는 코드 파일이 포함됨.
- Claude Code가 테스트 장비와 하드웨어에 접근할 수 있으므로 작업을 독립적으로 수행함. 목표와 계획, 중단 조건을 제공해 작업 대상과 종료 시점을 지정함.
- 예시인 WPS 펌웨어는 먼저 네트워크 인터페이스와 Wi-Fi 드라이버, 이벤트 처리기를 초기화하고 스테이션 모드로 설정함.
- 드라이버를 시작하기 전에 ESP-IDF의 기본 설정 저장소인 NVS에서 기존 Wi-Fi 자격 증명을 읽음. 공장 초기화 수준으로 지운 보드에는 자격 증명이 없고, WPS를 한 차례 완료한 뒤 재부팅한 보드에는 자격 증명이 남아 있음.
- 저장된 자격 증명이 있으면 Wi-Fi 연결을 시작하고, 없으면 WPS를 시작함.
사용자 흐름 설정
- 기본 사용자 흐름은 앱을 열고 Wi-Fi 비밀번호를 입력한 뒤 ESP32가 네트워크에 연결되는 과정임.
- 방식마다 구체적인 절차가 다르므로 Groundrun 흐름 작성기에서 다섯 가지 흐름을 각각 단계별로 정의함.
- SmartConfig 흐름은 단계 목록과 설치자, 앱, 보드 간 시퀀스 다이어그램으로 표현함.
- Claude가 Groundrun 기술을 활용해 흐름을 구성했으며, Claude Code가 각 흐름을 다시 독립적으로 실행할 수 있음.
테스트 실행
- 설정이 끝나면 Groundrun 코디네이터에서 대화형으로 Wi-Fi 설정 흐름을 실행하거나 지속적 통합(CI) 회귀 테스트로 실행함.
- 시스템을 변경할 때마다 회귀 테스트를 실행해 Wi-Fi 설정 기능이 계속 안정적으로 작동하는지 확인함.
- 회귀 테스트 모음에는 다섯 가지 Wi-Fi 설정 방식과 같은 파이프라인에서 실행되는 OTA 업데이트 시나리오가 포함됨. OTA 업데이트를 의도적으로 실패시키는 테스트도 함께 다룸.
시간 측정
- 모든 CI 실행 시간을 자동으로 측정하며, 코디네이터는 각 단계를 따로 기록함. 이에 따라 펌웨어 플래시, 앱 설치 및 실행, 연결 방식 실행, 보드의 네트워크 연결 확인 대기 시간으로 나눠 분석할 수 있음.
- 방식별 평균 시나리오 시간은 플래시와 부팅 단계가 대체로 22~24초로 비슷함. SmartConfig는 브로드캐스트를 감지하는 보드도 추가로 플래시하므로 해당 단계가 37초까지 늘어남.
- 플래시와 부팅 이후에는 연결 방식 자체의 실행 시간이 방식별로 크게 달라 별도로 비교할 가치가 있음.
- 연결 방식 단계만 분리하면 Soft AP 실행 시간은 WPS의 거의 13배임. 시스템 대화상자와 여러 화면을 거치는 흐름이 이 차이와 맞물림.
- SmartConfig와 WPS는 모두 15초 이내로 완료되며, 블루투스와 Soft AP, 캡티브 포털보다 빠름.
특이 사항
- 다섯 가지 방식을 나란히 테스트하면서 실제 동작 차이가 드러남.
- 캡티브 포털은 다섯 방식 가운데 가장 까다로움. 휴대전화에 표시되는 로그인 페이지가 몇 초 동안만 열려 있고, 페이지를 언제 닫을지는 휴대전화 운영체제가 단독으로 결정함. 이 시간 안에 양식을 작성해 제출하지 않으면 자격 증명이 보드에 전달되지 않음.
- 블루투스와 Soft AP는 휴대전화가 보드의 네트워크에 연결되기 전에 시스템 팝업을 표시함. 휴대전화가 보드를 검색하는 동안 팝업이 나타나기까지 몇 초가 걸릴 수 있어 테스트에서 이를 기다림.
- WPS는 앱이 필요하지 않음. 버튼을 누르면 라우터와 보드가 직접 자격 증명을 주고받음.
- 테스트에서는 SmartConfig가 다른 네 방식보다 눈에 띄게 느렸으며, 간혹 훨씬 더 오래 걸리고 원인을 하나로 추적할 수 없는 드문 실패도 발생함.
- WPS 테스트에서는 라우터 역할도 테스트 장비가 맡음. 보드의 무선 장치가 5GHz에 도달하지 못하므로 장비가 2.4GHz로 고정된 임시 Wi-Fi 네트워크를 만들고, 각 테스트 실행 뒤 네트워크를 해제함.
결론
- Wi-Fi 기능이 있는 연결 제품에서 사용자가 가장 먼저 하는 일은 Wi-Fi 설정이므로, 이 기능은 시스템에서 가장 안정적이어야 함.
- Groundrun으로 하드웨어 루프가 포함된 사용자 흐름과 해당 기능의 자동 테스트를 설정함.
- Groundrun이 플랫폼 개요에서 하드웨어 루프 시나리오를 실행하는 방법을 소개함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요