기존 도어락을 스마트하게 만들어 주는 IoT 기기입니다.
등록된 사용자의 출입 기록, 원격으로 도어락 오픈, SMS로 일회용 키를 url로 발급해 원격으로 오픈, 불법 침입 감지 등 다양한 기능을 제공합니다.
- gps 좌표를 이용해 현재 좌표의 기상 정보를 가져옴
- FCM 서버에 푸시 메세지 보내기 요청
- LoLock IoT에 원격 조종 신호 보내기
- LoLock IoT에 대한 회원 가입 및 로그인(같은 IoT를 등록하면 그룹 or 가족으로 인식)
- 그룹원 리스트 반환 및 그룹원 출입기록 반환
- 유저가 집 안 혹은 집 밖인지의 정보를 가지고 있음.
- LoLock IoT의 상태 신호를 받음.
- LoLock IoT의 일회용 키 발급.
Applicatoin Server가 현재 프로젝트의 서버
Lolock API 서버는 ThingPlug와 안드로이드 어플 사이의 중계서버로
클라이언트가 다양한 기능을 다룰 수 있게 도와주는 역할을 수행합니다.
서버 아키텍처 구조
HTTP 프로토콜로 통신하며 firebase를 통해 푸시 메세지를 보내거나 기상청 API를 이용할 땐 클라이언트 역할을 하여 데이터를 받거나 전송하고 그 외에 기능들은 클라이언트(안드로이드 앱)와 직접적으로 http 프로토콜 통신한다.
ThingPlug와 통신할 때도 ThingPlug가 제공하는 규격대로 http 요청을 보낼 수 있다. ThingPlug 서버가 LoLock API 서버의 주소를 구독하고 있으므로 ThingPlug의 요청을 받을 수 있다.
- 리눅스 환경 (개발환경은 ubuntu 16.04)
- weather_location.c의 out 파일(리눅스 환경 실행파일)
- node.js (개발 환경은 node.js v8.9.4 LTS)
- npm
- 기상청 API
- mysql
- config/db_config.json 파일 (mysql 설정 파일)
- firebase 클라우딩 메세지 서버 (푸시 메세지 기능 제공)
{
"host" : <"mysql host">,
"user" : <"mysql user">,
"password" : <"mysql password">,
"database" : <"database">
}
- 로락 디바이스를 판매자(우리)가 먼저 DB의 lolock_devices에 등록을 해둔다
- lolock_devices 등록과 동시에 subscribe를 해둔다. subscribe 이름 : AlldataNoti;
- 사용자가 로락 디바이스를 구매한 뒤 앱으로 등록을 하게 되면 앱에서 POST 방식으로 /register로 데이터전송 그리고 DB table에 등록한다.
다음을 참고