동작 확인용 데모입니다. 진열장·센서 값은 가상 컨트롤러가 만든 예시이며, 실제 기관 정보가 아닙니다.
VITRIA· 연동 규격

연동 규격

관제 PC와 현장 앱이 진열장 컨트롤러와 주고받는 명령·이벤트 규격입니다.

8-1. RS485 / Modbus RTU (관제 PC ↔ 컨트롤러)

19,200bps · 8N1 · 버스당 최대 32대 · 폴링 2.0초 · 응답 대기 300ms · 3회 연속 무응답 시 통신 끊김
주소종류이름단위·값
30001입력온도0.1℃
30002입력상대습도0.1%
30003입력조도lx
30004입력CO2ppm
30005입력문 상태0 닫힘 · 1 열림 · 2 움직이는 중 · 3 정지
30006입력잠금 상태0 잠김 · 1 해제
30007입력이벤트 번호(최신)0~65535
30010~30029입력이벤트 버퍼(최근 4건)번호·시각·경로·사용자·동작
40001보유명령1 열기 · 2 정지 · 3 닫기 · 4 잠금 · 5 해제
40002보유명령 사용자 번호사용자 ID
40003~40004보유명령 확인값1회용

컨트롤러 이벤트 버퍼를 관제 PC가 읽어 감사로그와 대조합니다. 현장 앱이 BLE로 연 기록도 컨트롤러가 자체 보관하므로, 휴대폰을 잃어버리거나 동기화가 안 돼도 기록이 빠지지 않습니다.

8-2. BLE (현장 앱 ↔ 컨트롤러)

제어 가능 조건: 인증 성공 + 신호 -75dBm 이상 + 역할 권한
항목내용
광고 이름VTR- + 진열장 번호 (예: VTR-2-03)
서비스Showcase Control
STATUS (알림)문·잠금·환경 값, 1초 주기
AUTH (쓰기·알림)도전값–응답 인증, 세션 키
CMD (쓰기)명령 + 1회용 토큰 + 사용자 번호
EVENT (알림)동작 결과, 컨트롤러 이벤트 번호

명령마다 1회용 토큰을 사용하므로, 다른 BLE 앱이나 같은 명령의 재전송으로는 진열장을 열 수 없습니다.

8-3. 가상 컨트롤러

위 규격 그대로 응답하는 가상 진열장 24대. 이 데모 화면이 이 가상 컨트롤러로 동작합니다. 실제 진열장이 나오기 전에도 관제·앱 개발과 테스트를 진행하고, 실물이 나오면 같은 규격으로 바꿔 끼웁니다.

8-4. 하드웨어·펌웨어 분담 2안

A안 · 소프트웨어만
발주사
진열장, IoT 모듈, ESP32 펌웨어 전체
저희
관제·앱·로컬 DB, 규격서, 가상 컨트롤러
맞는 경우
발주사에 펌웨어 개발자가 있을 때
연결 지점
규격서(8-1·8-2)
B안 · 펌웨어 통신부 포함
발주사
진열장, IoT 모듈, 센서·모터·잠금 제어
저희
A안 + ESP32 펌웨어의 BLE·Modbus 통신 계층
맞는 경우
통신 규격을 한쪽에서 끝까지 책임지게 하고 싶을 때
연결 지점
펌웨어 안 함수 경계(명령 실행·센서 읽기)