티스토리 뷰
1. 시스템 구동 아키텍처 개요
BiliMon265V12 펌웨어는 ESP32의 듀얼코어 성능을 극대화하여 고밀도 센서 스캔과 네트워크 통신 간의 병목 현상을 해결한 비동기 멀티태스킹 컨트롤 시스템입니다.
1.1. 멀티코어 듀얼 스레드 구조
| 코어 번호 | 태스크명 | 주요 담당 기능 | 작동 주기 | 우선순위 |
| Core 0 | NetworkTask | Wi-Fi 복구, DB 데이터 업로드, 원격 폴링 명령 처리, OTA 라이팅 | 10ms ~ 1min | 1 |
| Core 1 | InstrumentTask | ADS1219 ADC 4개 주소 스캔, 전압/전류 Peak 탐지, 배터리 테스터 구동 | 10ms 고정 | 1 |
와이파이 신호 불량이나 대체 서버 스위칭에 따른 딜레이가 발생하더라도 Core 1에서 작동하는 센서 스캔 루프(10ms)는 단 0.1ms의 멈춤 없이 무중단으로 구동됩니다.
| [크리티컬 세이프가드] OTA(무선 업데이트)가 진행되는 동안에는 플래시 메모리 라이팅 중 하드웨어 비동기 인터럽트 충돌을 막기 위해 Core 1의 InstrumentTask를 vTaskSuspend()로 강제 중단(Safeguard) 처리하는 안전 메커니즘이 활성화됩니다. |
2. 핵심 소스코드 구조 및 역할
개발자가 코드를 수정하거나 새로운 기능을 삽입하기 위해 알아야 할 파일 목록과 역할입니다.
| 파일명 | 역할 및 핵심 메커니즘 |
| BiliMon265V12.ino | 태스크 큐 생성, Core 배정 및 BLE 연동 처리 부문. |
| BConstants.h | THISDEVICEID(기기 고유 식별자), 서버 접속 정보 및 기본 설정 상수 저장 사전. |
| BiliMonConstants.h | 이벤트 판별을 위한 물리 임계 수치 및 전송 주기 정보. |
| ConfigManager | ESP32 내부 비휘발성 영역(NVS)을 제어하여 센서 채널 보정값 및 동적 서버 URL 저장. |
| NetworkManager | NTP 동기화, HMAC SHA-256 서명 빌드, 이중 서버 Failover 로직 탑재. |
| B_ADS1219 | I2C 통신, 센서의 핫플러깅 및 1초 이내 초고속 재연결 추적 엔진. |
3. 서버 장애 복구 (Failover) 상태 머신
네트워크 업로드 실패 횟수가 연속 3회 갱신되면, 서버 백본 장애로 간주하여 다음과 같은 상태 전이가 일어납니다.
1) active 서버 주소를 대체 서버(ALT_SERVER_URL)로 즉시 스위칭 및 NVS 저장.
2) justSwitched 플래그를 true로 설정한 후 새 서버로 즉각 1회 전송 테스트 실행.
3) 테스트 전송 성공 시 -> justSwitched = false로 복귀 및 안정 통신 속행.
4) 테스트 전송 실패 시 -> 네트워크 먹통 상태로 판단하여 큐 내부의 데이터를 즉각 버림(Discard) 처리한 후, 원래 통신하려던 반대편 서버로 주소를 강제 회귀(Revert)하고 justSwitched = true 상태 유지.
4. 신규 기능 확장 개발 가이드 (코드 추가 예시)
새로운 센서 이벤트 타입을 설계하고, 이를 Telegram과 Discord로 송출하는 기능을 추가하는 방법입니다.
1단계: BiliMonConstants.h 에 신규 이벤트 코드 상수를 정의합니다.
#define NEW_EVENT_DETECTED 200
2단계: B_ADS1219.cpp 의 MakeUploadDataInfo() 및 UpdateAddressData() 에서 물리 수치를 감지하여 이벤트를 발행하는 로직을 삽입합니다.
3단계: MakeTelegramMessage() 함수에 기기 식별자와 함께 신규 알림 포맷을 빌드하는 스위치 케이스를 삽입합니다.
'BilientSevices > Measurement&Monitoring' 카테고리의 다른 글
| 관리자를 위한 BiliMon 활용 방법 (0) | 2026.05.30 |
|---|---|
| 데이터 분석가를 위한 BiliMon 활용 방법 (0) | 2026.05.24 |
| 개발자를 위한 BiliMon 활용 방법 (0) | 2026.05.23 |
| BiliMon265, Codes Ver.0.8 - 일부 테스트 완료 버전 (0) | 2026.05.17 |
| Change Trend of Current Capacity for A4833/A5 (0) | 2026.04.02 |
- Total
- Today
- Yesterday
- 치매
- Hurdles
- 절연형
- bilient
- 배프
- 혁신
- 허들
- Innovations&Hurdles
- 빌리칠드
- image
- Decorator
- Video
- 아두이노
- DYOV
- 오블완
- 혁신과허들
- BiliChild
- 티스토리챌린지
- BSC
- 전압
- 심심풀이치매방지기
- 심심풀이
- 전류
- 빌리언트
- 치매방지
- ServantClock
- arduino
- Innovation&Hurdles
- Innovations
- 둎
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |

