댕댕이 위치나 재실 여부 추적하기

댕댕이 위치나 재실 여부 추적하기

사람이 집을 들락날락 하는 건 센싱할 방법이 많다. 사람 몸에 사실상 붙어있는 스마트폰 덕분이다. 스마트폰이 실내 Wi-Fi 라우터에 연결되었는지, 블루투스 어댑터에서 스캔이 되는지, GPS 위치는 어떻게 찍히는지는 직관적으로 알 수 있다. 물론 스마트폰에 의존하지 않는 현관문 개폐 센서, 레이저 센서도 출시되어 있다.

반려동물은 다르다. 댕댕이를 잃어버렸을 때, 댕댕이가 어디 있는지를 알고 싶을 것이다. 댕댕이 몸에 시술해도 무해하고 체온을 전력원으로 삼는 GPS나 블루투스 칩이 있다면 좋겠지만, 댕댕이에게 뭘 붙이는거라곤 현재로서는 목걸이 밖에 없는 것 같다. 지금으로서는 목걸이에 트래킹 장치를 다는 수밖에 없다.

어떤 장치를 달까?

Apple AirTag & Samsung Galaxy Smart Tag

Apple의 AirTag, 삼성의 Galaxy Smart Tag는 선택지에서 바로 제외했다. 스마트폰을 BLE Observer로 삼기 때문에, 와이프와 내가 출근한 시간(=집에 스마트폰이 없는 시간)에 댕댕이들의 재실 여부를 확인할 수 없다. 그리고 센싱 데이터가 활짝 개방되어있지 않아 Home Assistant 같은 환경에서는 자동화를 만들기 곤란하다. 여러 평들을 보면 잘 작동하는 환경도 기대보다 제한적인 것 같다.

반면, 댕댕이에 쓸 수 있는 GPS Tracker는 선택지가 많지 않고, 배터리 소모가 커 손이 많이 간다. 시중의 GPS Tracker는 월 이용요금을 받기도 했다. GPS Tracker도 포기했다. 내 질문을 우리 댕댕이 달자는 지금 어디있을까가 아니라 우리 댕댕이 달자는 지금 집에 있을까로 단순화할 수 밖에 없었다.

결국, 자주가는 IoT 커뮤니티에서 BLE Beacon을 쓰는 것이 좋겠다는 의견을 들었다.

준비물 1: BLE Beacon

댕댕이가 불편없이 메고 다닐 수 있게 가능한 가볍고 작은 것으로 선택했다. 개당 19달러 정도에 폭 3.5x3.5cm, 무게 10g 정도 하는 Blue Charm Beacon이 괜찮아보여 2개 구매했다. 다른 유사제품도 많다.

BLE Beacon

우리 댕댕이 목걸이에 달아놓았다.

목줄에 멘 BLE Beacon

BLE Beacon 사용설명서는 Beacon 설정을 가급적 수정하지 말라고 하는데, 블루투스 어댑터에서 자주 이탈하는 현상이 있어 KBeacon이라는 앱으로 신호 송출주기를 1000ms로 수정했다. 배터리를 조금이라도 아낄까 싶어 iBeacon은 끄고 EddyStone(TLM)만 송신하도록 설정했다.

BLE Beacon

구매하고 사용한지 한달이 되어가는 지금, AirTag만큼 영롱하지 못한 점은 아쉽지만 무게나 크기 때문에 불편한 점은 없다.

준비물 2: BLE Beacon Tracker

BLE Tracker는 BLE Beacon이 송출하는 신호의 세기를 통해 재실 여부를 판단하고, MQTT Broker를 통해 Home Assistant에도 데이터를 보내준다. Home Assistant의 자체 BLE Tracker가 있지만 만듦새가 좋지 않다는 평이 좀 있었다. 대안으로 room-assistant를 설치했다.

room-assistant 설정에서는 homeAssistant, bluetoothLowEnergy 확장을 켜고, MQTT Broker와 각 Beacon을 트래킹하도록 설정하였다.

global:
  instanceName: home
  integrations:
    - homeAssistant
    - bluetoothLowEnergy
homeAssistant:
  mqttUrl: 'mqtt://MQTT 브로커 주소'
  mqttOptions:
    username: <MQTT 브로커 username >
    password: <MQTT 브로커 password >
bluetoothLowEnergy:
  hciDeviceId: 0
  timeout: 60
  allowlist:
    - dd340206****
    - dd340206****
  tagOverrides:
    dd340206****:
      name: Dalja BLE Tag
    dd340206****:
      name: SSamjang BLE Tag

MQTT Broker를 통해 Home Assistant에도 Beacon 트래킹 결과가 entity로 잘 떴다. 언제 댕댕이가 문 밖으로 나갔는지를 알 수 있다.

BLE Beacon

BLE Beacon

활용하는 방법

이제 댕댕이 재실 여부 데이터(정확히는 댕댕이의 목걸이 재실 여부)가 수집되기에 활용방법은 무궁무진하다. 현재 쓰고 있는 자동화는 간단한 것들이다.

  1. 댕댕이의 외출 여부를 스마트폰 푸시알람으로 받는다. 특히, 댕댕이 유치원에서 직접 집에 들어와 댕댕이 등원을 시켜주는데, 제 시간에 등하원을 했는지 확인이 가능하다. 일주일 간 평균 외출 시간도 관리할 수 있다. 외출 알림

  2. 댕댕이가 없는 동안 집안에서 동작이 감지되면 스마트폰에 경고 알람과 텔레그램 메세지를 보낸다. 댕댕이가 있는 동안 감지되는 (댕댕이의) 동작과는 따로 관리할 수 있어 유용하다.

  3. 댕댕이가 외출하면 로봇청소기를 돌린다. 로봇청소기가 돌 때 댕댕이들이 흥분하기에 산책나갈 때 로봇청소기를 돌린다. 보통 한바퀴 청소에 30~40분 정도 소요되어 산책하고 돌아오면 청소가 완료되어있다. 산책나갈 때 미리 장난감 정리를 하고 나가게 된다.