체중을 재는 반려동물 스마트 침대

펌웨어 · 앱 · 관리자 웹 · 클라우드 · 디자인2024.02 ~ 2024.05

올라오면 무게를 재고 계절에 맞춰 온도를 맞추는 침대를 만들고, 보호자 앱과 관리자 웹을 붙였습니다.


과제 배경

보호자가 집을 비운 사이 반려동물이 어떤 상태인지 알 방법이 없었습니다. 기존 온열 매트는 켜고 끄는 것만 되고 기록이 남지 않아 변화를 볼 수 없었습니다.

주요 설계 결정

측정 시점

올라온 것을 감지하고 무게가 멎은 뒤에 스스로 잽니다

사람이 버튼을 눌러야 하면 재지 않는 날이 생기고, 그러면 변화를 볼 수 없어 재는 의미가 없어집니다.

MCU 선택

ESP32 를 쓰고 펌웨어를 RTOS 위에 올렸습니다

무게 측정과 온도 제어와 통신이 동시에 돕니다. 순서대로 처리하면 통신을 기다리는 동안 측정이 밀립니다.

펌웨어 갱신

관리자 화면에서 OTA 로 내보냅니다

기기가 고객 집에 있습니다. 펌웨어를 고치겠다고 회수하면 그 비용이 기기값을 넘습니다.

제공 기능

제공 기능
기능내용
자동 체중 측정올라온 것을 감지하고 무게가 안정되면 재서 기록을 쌓습니다.
원격 온도 제어앱에서 온열과 냉각을 조절하고 현재 온도를 봅니다.
상태 모니터링체류 시간과 체중 변화를 앱에서 봅니다.
관리자 웹펌웨어 버전, 사용자 데이터, 기기 상태를 한 곳에서 관리합니다.
OTA 펌웨어 배포관리자 화면에서 원격으로 펌웨어를 내보냅니다.

수행 결과

  • 보호자가 손대지 않아도 체중 기록이 쌓입니다.
  • 기기 상태와 사용자와 펌웨어 버전을 관리자 웹 한 곳에서 봅니다.
  • 펌웨어를 원격으로 바꿔 기기를 회수하지 않습니다.

화면 구성

화면의 구조와 기능을 보여주는 시안이며, 색과 서체를 포함한 디자인은 다음 단계에서 정합니다.

우리 아이

4.2kg

오늘 14:20 자동 측정

온도기록

지금 상태와 최근 체중을 봅니다

온도

28도

온열냉각끄기
  • 현재 실내 24도
  • 설정 유지 중

온도

침대의 온열과 냉각을 원격으로 맞춥니다

시스템 구성도

사용자와 기기서버저장소와 외부HTTPSHTTPSHTTPSOTA보호자 앱React Native온도 제어와 체중 기록스마트 침대ESP32 + RTOS무게와 온도를 다룹니다관리자 웹Next.js기기와 펌웨어 관리APIAWS Lambda요청이 있을 때만 돕니다체중과 사용 기록DynamoDB기기별로 쌓입니다펌웨어 저장소S3OTA 로 나갑니다

점선은 외부 서비스를 사용하는 항목입니다.

설계 원칙

설계 원칙과 적용 방법
원칙적용 방법
사람이 눌러야만 재는 일이 없다올라온 것을 감지하고 무게가 멎으면 스스로 잽니다
펌웨어를 고치겠다고 기기를 회수하지 않는다관리자 화면에서 OTA 로 내보냅니다
측정이 통신을 기다리다 밀리지 않는다RTOS 로 측정과 통신을 나눠 돌립니다

적용 기술

ESP32RTOSReact NativeNext.jsAWS LambdaDynamoDBS3OTA

관련 프로젝트