02:20서버 작성 — 규약 검증기(protocol.js), SQLite 저장(db.js, Node 내장), 수집·대시보드 서버(server.js, 수집과 대시보드를 서로 다른 접속 범위로 분리), 기기 등록 도구(admin.js, 토큰은 해시만 저장).
02:21서버 테스트 5개 작성·실행 → 계약 테스트 2개 통과, 서버 테스트 3개 실패: ① 서버가 실제로 대기하기 전에 "준비 완료"를 출력하는 문제 ② 너무 큰 요청을 바로 끊어 버려 기기가 "개수 줄여서 재시도"(규약) 응답을 못 받는 문제 → 둘 다 수정 후 5개 모두 통과.
02:22펌웨어 작성 — Arduino 비의존 부분(sht.h 센서 변환·CRC, ringbuf.h 끊김 대비 버퍼, payload.h 전송 데이터·응답 처리)과 Arduino 부분(esp32-climate.ino: Wi-Fi, I2C 센서 자동 감지·재탐색, 1분 주기 측정·전송).
02:25[중단] 작업 중 세션이 끊김 → "계속 진행." 지시로 재개. 끊기기 직전 저장한 펌웨어 파일이 완전한지 확인하고, 백그라운드 설치가 계속 진행 중임을 확인한 뒤 이어서 작업.
02:28펌웨어 호스트 테스트(host-test) — 위 Arduino 비의존 코드를 Pi에서 컴파일해 46개 항목 검사 (데이터시트 CRC 예시, 변환식, 버퍼 넘침, 49.7일 후 시간 카운터 넘어감, 오래된 값 처리 등) + 펌웨어가 만든 데이터 4종을 서버 검증기에 통과시킴 → 첫 실행에 모두 통과.
02:29보드용 스크립트 — build.sh(컴파일 확인), flash.sh(실제 업로드: Wi-Fi 비밀번호·토큰은 임시 폴더에서만 사용 후 삭제).
02:30시뮬레이터(sim.js: 펌웨어와 똑같이 동작 + 끊김·재부팅·센서 고장 시나리오), 테스트 DB 채우기(seed.js: 실제 DB는 건드리지 못하게 막음).
02:30대시보드 작성 — 시각화 지침에 따라: 방별 숫자 타일(현재 온습도·이슬점·24시간 최저/최고·상태는 아이콘+글자), 온도와 습도는 단위가 달라 차트를 분리(한 차트에 축 2개 금지), 방마다 고정 색(색약 검사 도구로 밝은/어두운 모드 모두 통과 확인), 선 끝 이름표, 모든 방 값을 보여주는 툴팁, 표 보기, 어두운 모드.
02:31통합 시험 — 별도 시험용 서버에 7일치 데이터를 채우고 시뮬레이터 3대 가동: 침실 Wi-Fi 끊김(버퍼 4개 → 복구 후 5개 한꺼번에 전송, 손실 0), 거실 재부팅(새 부팅 ID로 정상 저장), 서재 센서 고장(상태만 보고 → 대시보드 "센서 오류").
02:32ESP32 코어 설치 완료 → 실제 ESP32 컴파일러로 빌드 성공: ESP32-DevKitC(프로그램 79%, 메모리 21%), ESP32-C3(85%, 17%), 경고 없음.
02:33대시보드 캡처 점검 → 문제 2개 발견: ① 시뮬레이터가 이미 끝난 뒤 찍어 모든 방이 "연결 끊김" ② 채운 데이터와 시뮬레이터의 기후 모델이 달라 그래프 끝이 튐 → 모델을 공용 파일로 합치고, 시뮬레이터를 켠 상태로 재촬영. 7일 보기·툴팁 촬영을 위해 스크린샷 도구가 비동기 동작을 기다리도록 개선.
02:37전체 테스트 스크립트 climate/test.sh와 부품 도착 후 절차·문제 해결표를 담은 climate/README.md 작성. 첫 실행에서 테스트 경로 지정 방식 오류(게임 때와 같은 문제) → 수정 후 전체 통과.
결과 / 증거
전체 테스트 통과: 서버·계약 5개, 펌웨어 46개 항목, 펌웨어 ↔ 서버 상호 검증 4종, ESP32·ESP32-C3 빌드.
부품이 오면: 배선 → 기기 등록 → Wi-Fi 정보 입력 → flash.sh로 업로드 (README에 단계별 정리).
대시보드 화면은 모두 시뮬레이션 데이터. 실제 집 데이터는 기록·공개하지 않음.
참고: 그래프 오른쪽 끝의 작은 단차는 시험 데이터(7일치 채움)와 실시간 시뮬레이션의 무작위 변동 시작값 차이로 생긴 것으로, 실제 센서 데이터에서는 생기지 않음.
20261005_023848_climate_tests.png — 전체 테스트: 서버·계약, 펌웨어 호스트 테스트·상호 검증, ESP32/ESP32-C3 실제 빌드20261005_023528_climate_dashboard_24h.png — 대시보드 (시뮬레이션 데이터): 방별 현재값·상태(서재는 센서 고장 시나리오), 온도·습도 24시간20261005_023545_climate_dashboard_7d.png — 7일 보기와 툴팁 (한 시점의 세 방 값을 함께 표시)20261005_023601_climate_dashboard_mobile.png — 휴대폰 화면