Skip to content

Crazy0416/lolock_api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

LoLock_API

LoLock이란

기존 도어락을 스마트하게 만들어 주는 IoT 기기입니다.

등록된 사용자의 출입 기록, 원격으로 도어락 오픈, SMS로 일회용 키를 url로 발급해 원격으로 오픈, 불법 침입 감지 등 다양한 기능을 제공합니다.

Lolock 서버 기능

  1. gps 좌표를 이용해 현재 좌표의 기상 정보를 가져옴
  2. FCM 서버에 푸시 메세지 보내기 요청
  3. LoLock IoT에 원격 조종 신호 보내기
  4. LoLock IoT에 대한 회원 가입 및 로그인(같은 IoT를 등록하면 그룹 or 가족으로 인식)
  5. 그룹원 리스트 반환 및 그룹원 출입기록 반환
  6. 유저가 집 안 혹은 집 밖인지의 정보를 가지고 있음.
  7. LoLock IoT의 상태 신호를 받음.
  8. LoLock IoT의 일회용 키 발급.

시연영상

유튜브 영상

통신 구조

통신 구조

Applicatoin Server가 현재 프로젝트의 서버

Lolock API 서버는 ThingPlug와 안드로이드 어플 사이의 중계서버로

클라이언트가 다양한 기능을 다룰 수 있게 도와주는 역할을 수행합니다.

서버 아키텍처

서버 구조

서버 아키텍처 구조

HTTP 프로토콜로 통신하며 firebase를 통해 푸시 메세지를 보내거나 기상청 API를 이용할 땐 클라이언트 역할을 하여 데이터를 받거나 전송하고 그 외에 기능들은 클라이언트(안드로이드 앱)와 직접적으로 http 프로토콜 통신한다.

ThingPlug와 통신할 때도 ThingPlug가 제공하는 규격대로 http 요청을 보낼 수 있다. ThingPlug 서버가 LoLock API 서버의 주소를 구독하고 있으므로 ThingPlug의 요청을 받을 수 있다.

Dependency

  • 리눅스 환경 (개발환경은 ubuntu 16.04)
  • weather_location.c의 out 파일(리눅스 환경 실행파일)
  • node.js (개발 환경은 node.js v8.9.4 LTS)
  • npm
  • 기상청 API
  • mysql
  • config/db_config.json 파일 (mysql 설정 파일)
  • firebase 클라우딩 메세지 서버 (푸시 메세지 기능 제공)

Config

config/db_config.json

{
  "host" : <"mysql host">,
  "user" : <"mysql user">,
  "password" : <"mysql password">,
  "database" : <"database">
}

전제 조건

  1. 로락 디바이스를 판매자(우리)가 먼저 DB의 lolock_devices에 등록을 해둔다
  2. lolock_devices 등록과 동시에 subscribe를 해둔다. subscribe 이름 : AlldataNoti;
  3. 사용자가 로락 디바이스를 구매한 뒤 앱으로 등록을 하게 되면 앱에서 POST 방식으로 /register로 데이터전송 그리고 DB table에 등록한다.

API 문서

다음을 참고

API 문서

About

2017 skt 메이커톤 대회 출품

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 84.3%
  • C 10.9%
  • HTML 4.8%