스마트폰으로 재실 인식시키기 feat. AB BLE Gateway V4

2022. 3. 25. 16:28IoT Life

안녕하세요. 쿠루가이입니다.

오늘은 스마트폰을 재실센서로 사용하는 방법에 대해서 알아보려고 합니다. 재실센서라는것은 집안에 사람이 있냐 없냐 판단해주는 센서입니다. 재실센서를 이용하여 엘베에서 내리자마자 도어락을 자동으로 열리게 하는 것도 해보았고, 집안에 들어왔을 때 현재 집안 상황에 대해서 브리핑하는것도 해보았습니다.

저는 지금까지 ST Arrival Sensor를 가지고 다니며 재실센서로 활용했는데요. 이것을 이용하면 불편한 점들이 몇가지 있었습니다. 하나는 이걸 계속 들고 다녀야한다는것이고 다른 하나는 배터리를 자주 갈아주어야한다는것입니다. 약 3~4개월 가는거 같아요.

2017.11.26 - [IoT Life] - Samsung SmartThings Arrival Sensor 사용기

 

Samsung SmartThings Arrival Sensor 사용기

※ 이 게시글은 쑤기와 윤탱이가 피땀흘려 벌은 돈으로 쓴 글입니다 ^^ Samsung SmartThings Arrival Sensor(이하 재실센서)는 사람, 동물, 자동차가 떠났거나 도착했음을 알려주는 센서입니다. 내 위치를

verificationkr.tistory.com


https://youtu.be/RwKbQo676Zg

https://youtu.be/-2_hFNBiPKA


게다가 키플을 이용하면서부터 자동차 키없이 스마트폰만 가지고 다니고 있는터라 더더욱 ST Arrival Sensor는 귀찮은 존재가 되어 버렸습니다. 스마트폰만으로 재실을 인식시키게 할 순 없을까? 라는것을 생각하게 되었습니다. 그러던중 네이버 IoT카페의 룰루해피님이 솔루션을 개발하셔다는 게시물을 보게 됩니다. 오호! 당장해봐야짓!
https://cafe.naver.com/stsmarthome/35004

 

AB BLE Gateway V4 + 휴대폰을 이용한 재실관리 SmartThings SmartApp

AB BLE Gateway V4로 BLE장치의 재실관리가 가능하다는 얘기를 듣고, 알리익스프레스에서 $40주고 하나 구매하였습니다. https://wiki.aprbrother...

cafe.naver.com

 

준비물은 뭐뭐가 있나요?

스마트폰과 AB BLE GATEWAY V4만 있으면 됩니다.

1. SMARTPHONE

먼저 스마트폰입니다. 스마트폰은 안드로이드, 아이폰 아무거나 상관없습니다. 이번 환경에서는 갤럭시20+ 기준으로 합니다.

 

2. AB BLE GATEWAY V4

AB BLE GATEWAY V4는 유무선LAN, BLE의 인터페이스를 탑재하고 있습니다. 지원하는 프로토콜은 HTTP Server/Client, MQTT입니다. 가격은 알리익스프레스에서 약 $40달러 정도합니다. 화이트 / 블랙있는데 취향에 따라 골라주세요.^^

 

동작 컨셉

동작 컨셉은 다음과 같습니다.

1. 스마트폰에서 주기적으로 BLE신호를 송신합니다. BLE신호 송신은 "Beacon Simulator" 앱 또는 "Home Assistant"가 있는데 저는 "Home Assistant"를 이용하였습니다.
2. AB Gateway는 집안에서 브로드캐스트되는 BLE신호를 수집하여 목록을 만듭니다. 그리고 ST SmartApp에 그 목록을 JSON형태로 보냅니다. 송신주기가 짧은수록 재실확인은 빠르게 됩니다.
3. SmartApp에서는 수신된 BLE신호 목록 중 Presence Sensor로 지정하여 재실센서로 추가합니다.
4. 추가된 재실센서의 BLE신호가 들어오면 "사람있음"으로 인식하고, 신호가 일정시간(이건 정해줄수 있음) 안들어오면 "사람 없음"으로 인식하는것입니다.
이제 이 동작 컨셉대로 세팅을 해보겠습니다.

 

스마트폰에 Home Assistant 앱 설치 및 설정하기

BLE 신호를 뿌려줄 HA앱을 설치해보겠습니다.
1. 구글스토어에서 Home Assistant를 검색 후, 설치합니다.
2. Home Assistant를 실행하고, 서버 정보, ID/PASSWORD를 입력하여 접속을 합니다. 만약 HA 서버를 설치하지 않았다면 아래 링크를 참고해주세요.
2021.01.10 - [IoT Life] - 헤놀로지(시놀로지)에 Hass.io 설치하기

 

헤놀로지(시놀로지)에 Hass.io 설치하기

지난글에서 Intel NUC7JYH에 EXSI를 설치한 후, 헤놀로지를 설치해주었었습니다. 2020/12/01 - [IoT Life] - Intel NUC7JYH에 헤놀로지 설치하기 feat. Exsi Intel NUC7JYH에 헤놀로지 설치하기 feat. Exsi IoT인..

verificationkr.tistory.com


3. 다음과 같은 경로로 이동하고 설정해줍니다.
구성하기 > 컴패니언 앱 > 센서관리 > BLE송신기
- 활성화 됨 : ON
- Advertise mode : Balanced(3Hz)
- Transmitter power : High(신호가 강해야 재실 정확도를 높일 수 있습니다)
- 나머지는 기본값
4. 앱이 꺼지는걸 방지하기 위해서 HA앱에 VIP대우를 해주어야 합니다.
1) 먼저 [|||] 버튼을 눌러서 상단의 아이콘을 클릭하고 '최근 앱에 열어두기'을 클릭합니다.
2) 설정 > 어플리케이션 > 배터리 클릭 > 제한 없음으로 설정합니다.
이렇게 하면 스마트폰을 재기동해도 HA앱이 종료되지 않습니다.


Smartthings SmartAPP 설치 및 인증 설정하기

* Github와 Smartthings IDE간 연동을 시킨상태입니다.

1. 웹브라우저에서 Smartthings IDE라고 입력하고 사이트에 접속합니다.
2. 삼성계정으로 로그인 한 후 My Location 메뉴에서 위치를 선택합니다.
3. My Device Handlers에서 iquix / AB-BLE-Presence / master를 추가한 후, ab-ble-presence-sensor.groovy를 pull 후 publish합니다.
4. My SmartApps에서 iquix / AB-BLE-Presence / master를 추가한 후, ab-ble-presence.groovy를 pull 후 publish합니다.
5. SmartApp 수정 화면에서 OAuth를 클릭하면 나오는 화면에서 체크박스를 클릭 합니다.

7. ST앱에서 자동화 > 루틴추가 > 추천 > 맨밑까지 스크롤 > AB BLE Presense를 클릭 후, 완료를 눌러서  설치합니다.(이거 찾기가 어려웠음. 엄청 잘 숨겨놓았음 -_-;;)
8. SmartApp 설정  설치된 SmartApp으로 진입한 뒤 "View Settings for AB BLE"를 누릅니다. 아래 내용을 잘 복사해둡니다. 이따가 AB Gateway에 이내용을 기입해야됩니다.

 

AB Gateway 설치 및 설정하기

1. AB Gateway에 전원 연결 하고, 스위치에 이더넷 연결을 해줍니다.
2. 다음의 공식 github 페이지에서 게이트웨이 설정 툴을 다운로드 받고 설치를 합니다.
https://github.com/AprilBrother/gw4-config-tool/releases
3. 게이트웨이 설정 툴을 실행하면 네트워크를 탐색해서 AB Gateway를 찾아줍니다.

같은 네트워크에 있는 AB GATEWAY를 찾아서 브라우징해준다

4. 클릭을 하면 상세메뉴가 나오는데 펌웨어 버전이 많이 낮은 상태로 출고가 됩니다. 반드시 최신버전으로 업데이트합니다. 왜냐하면 JSON으로 ST SmartApp에 보내야하는데 낮은 버전에서는 JSON이 없기 때문입니다. Advance > Devce의 [Update]버튼을 누릅니다. 이게 한번에 최신펌으로 올라가는게 아니라 단계적으로 올라가므로 최신펌이 될때까지 계속 펌웨어 업데이트를 해줍니다.


5. Application에서 Connection Type을 HTTP Client로 변경하고, SmartApp에서 얻은 정보를 입력합니다. 그리고 Request Interval을 1초로 설정하고 Request Format을 JSON으로 변경합니다. 나머지는 기본값으로 합니다. 참고로, Request Interval이 짧으면 짧을수록 재실인식이 빨라집니다.

 

Presence Sensor 추가하기

1. 설정이 제대로 되었다면, 감지된 BLE기기의 목록이 SmartThings서버에서 수신되고 난 뒤, "Add a New Device"가 활성화됩니다. 추가할려는 장치를 선택한 후 [완료] > [다음] > [완료]를 누릅니다.


2. ST APP에 재실센서가 추가된것을 확인할 수 있습니다.

 

스마트폰을 이용한 재실센서 동작확인

고생많으셨습니다. 이제 마지막 동작이 제대로 되는지 확인해보겠습니다.

먼저 저희집을 소개하자면 4bay로 된 29평 아파트입니다. AB BLE GATEWAY는 거실에 놓았고 대부분의 위치에서 정상적으로 제가 집에 있다는걸 인식했는데요. 그런데 안방화장실에서 장시간(?) 큰일을 보고 있으면 "사람없음"으로 인식해버립니다. BLE신호가 닳지 않는 음영지역인가 봅니다.ㅠㅠ 이때, ST APP의 AB BLE Presence에서 Set timeout in considering not present(seconds)의 값을 음영지역에 머무는 시간보다 여유있게 넣어준다면 잘못 인식되는 오류를 줄일 수 있습니다. 저는 600초로 설정했더니 2달 넘게 사용해도 잘못 인식되는 경우가 없었습니다! 상황에 맞게 이 값을 변경해주시면 좋을것 같습니다.  

자! 스마트폰를 소지한것만 가지고 도어락을 자동으로 열리도록 자동화를 추가를 하고요. 잠시 외출했다가 엘베에서 문이 열리면 몇초만에 재실로 인식되어 도어락이 자동으로 열리는지 테스트해보겠습니다. 총 3회 테스트해볼게요!

1회 : 12초
2회 : 13초
3회 : 11초

'사람 있음'으로 인식하여 도어락이 자동으로 열리기 까지 평균 12초 걸리는것을 확인 할 수 있었습니다. 이제 도어락 비밀번호 누를일은 없을것 같습니다^^

오늘 준비한 내용은 여기까지입니다. 도움이되셨다면 구독과 좋아요 부탁드리겠습니다. 감사합니다.