일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Espressif
- 월패드
- 배당
- Home Assistant
- 현대통신
- homebridge
- RS-485
- ConnectedHomeIP
- 나스닥
- 오블완
- esp32
- 홈네트워크
- 공모주
- SK텔레콤
- MQTT
- Bestin
- 티스토리챌린지
- 국내주식
- 힐스테이트 광교산
- cluster
- matter
- 파이썬
- 해외주식
- 코스피
- 애플
- Apple
- Python
- 미국주식
- raspberry pi
- 매터
- Today
- Total
YOGYUI
Matter - Wi-Fi AP Mode 기본으로 활성화하기 (ESP32) 본문
ESP32 + CHIP(Matter) 프로젝트를 esp-matter 프레임워크로 진행하고 있다 (CHIP 소스코드를 wrapping해놓은거라 esp32 기기에 적용하기에 꽤나 유용하다)
BLE 커미셔닝하기 전에 ESP32에 HTTP나 웹소켓으로 접속해서 Matter 외 기타 디바이스 설정 기능을 구현하고 싶어서 깃허브 이슈로 문의해봤다
https://github.com/espressif/esp-matter/issues/205
Matter 1.0 specification에 따르면 SoftAP (AP: Access Point)는 Matter가 공인하는 방식이 아니라고 한다
(Matter에서는 BLE+Wi-Fi의 경우 커미셔닝 시 Wi-Fi는 Station 모드로만 작동하며, 사용자의 LAN에 접속하는 방식만을 다루고 있다고 한다... spec 문서 새로 읽어보던가 해야겠다 ㅋㅋ)
esp-matter 소스코드에서 해당 내용을 찾아볼 수 있다
(esp-matter/components/esp_matter/esp_matter_core.cpp)
line 865 ~ 910: 함수명: chip_init
static esp_err_t chip_init(event_callback_t callback)
{
// ...
ConnectivityMgr().SetBLEAdvertisingEnabled(true);
// ConnectivityMgr().SetWiFiAPMode(ConnectivityManager::kWiFiAPMode_Enabled);
if (PlatformMgr().StartEventLoopTask() != CHIP_NO_ERROR) {
// ...
PlatformMgr().ScheduleWork(esp_matter_chip_init_task, reinterpret_cast<intptr_t>(xTaskGetCurrentTaskHandle()));
// Wait for the matter stack to be initialized
xTaskNotifyWait(0, 0, NULL, portMAX_DELAY);
return ESP_OK;
}
886번 line의 주석을 빼고, idf.py menuconfig 등을 통해 다음 빌드 옵션을 추가해주자
sdkconfig 파일에 다음 항목들이 있어야 한다
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y
CONFIG_ENABLE_WIFI_AP=y
CONFIG_WIFI_AP_SSID_PREFIX="APNAMEPREFIX-"
CONFIG_WIFI_AP_CHANNEL=1
CONFIG_WIFI_AP_MAX_STATIONS=4
CONFIG_WIFI_AP_BEACON_INTERVAL=100
CONFIG_WIFI_AP_IDLE_TIMEOUT=120000
(SoftAP 모드가 활성화되어야 하며, Enable WiFi AP가 활성화되어야 한다)
빌드 후 플래싱해보니 BLE 커미셔닝이 되기 전에도 "APNAMEPREFIX-XXX-YYYY-ZZZZ " 이름을 가진 WiFi SSID가 정상적으로 생성되며, 접속 후 웹소켓 통신도 가능한 것을 확인했다
(Prefix 뒤에 붙은건 CHIP용 VIP, PID 등의 값들이다)
※ 아직 커미셔닝 후의 동작은 확인하지 않았다
#include <platform/CHIPDeviceLayer.h>
using chip::DeviceLayer::ConnectivityMgr;
ConnectivityMgr().SetWiFiAPMode(ConnectivityManager::kWiFiAPMode_Enabled);
SetWiFiAPMode를 PlatformMgr().ScheduleWork() 함수 호출 후 임의의 코드에서 호출해도 정상적으로 Wi-Fi Access Point가 생성되는걸 확인했다
esp_matter_core.cpp 소스코드를 수정하지 않고, 특정 시점에서만 AP Mode를 활성화하게 수정해봐야겠다
'홈네트워크(IoT) > Matter' 카테고리의 다른 글
Matter Specification - Level Control Cluster (0) | 2023.03.25 |
---|---|
Matter Specification - On/Off Cluster (0) | 2023.03.24 |
Matter - WiFi IP 주소 할당 이벤트 캐치 (0) | 2023.02.15 |
Matter - Google Home 개발 프로젝트 생성하기 (0) | 2023.02.02 |
Matter Specification 1.0 발표 (09/28) (0) | 2022.10.07 |