oneM2M IoT Server Platform for Smart Doorlock
2.4.x
스마트 도어락이란 한국전자부품연구원에서 개발한 오픈소스 IoT 서버 플랫폼인 Mobius 2.0을 활용한 사용자의 완벽한 외출을 도와주는 IoT 플랫폼 입니다. 자택 현관문 내부에 존재하는 기존의 도어락 본체는 제거하고 그 자리에 터치식 디스플레이를 설치하여 사용자에게 외출시에 필요한 날씨 및 미세먼지 등의 다양한 정보를 제공하고 가스 밸브 및 전등과 같은 가전들을 등록해 상태 확인 및 제어할 수 있는 기능을 가진 IoT 플랫폼 입니다.
스마트 도어락의 사진은 다음과 같습니다.
CNU-Econovation 17기 배종진 : Doorlock 및 Mobius 서버 개발, Doorlock Client 개발
CNU-Econovation 17기 김양하 : nCube & TAS(Doorlock, LED Group, Keypad) 개발
2019.04 ~ 2019.10.11
제3회 (전자부품연구원)KETI Mobius 2.0 IoT Service Developer Contest에서 전자부품연구원장상(2등상)
- 사용자의 스마트폰에 입력된 메모를 표시하는 기능
- 사용자가 살고 있는 지역의 날씨 및 미세먼지를 표시하는 기능
- 기본적인 도어락(문열기, 비밀번호 변경)등의 기능
- 등록된 가전(ADN_AE)의 상태를 확인 및 제어하는 기능
- 스마트 도어락 만의 특별한 출입관리 프로세스를 통한 일회용 출입관리 프로세스 기능
- 집안의 전등 및 가스레인지 같은 스마트 도어락에 등록된 가전의 상태를 확인 및 제어 함으로써 안전 사고 예방을 도와준다.
- 외출 시에 현관문에서 오늘의 날씨 및 미세먼지를 사용자에게 알려주어 옷차림은 알맞게 입었는지 마스크는 꼈는지 등의 외출준비를 도와줍니다. 이로써 사용자의 번거로움을 없애 삶의 질을 향상시킵니다.
- 스마트 도어락의 특화된 일회용 출입관리 프로세스를 통해서 집에 없는 사용자들도 안심하고 홈 서비스를 받을 수 있도록 도와줍니다.
스마트 도어락(version 1.0)의 시스템 아키텍처는 다음과 같습니다.
- Node.js (Mobius (In-CSE))
- MySQL (Database)
- Web Publishing Language (Smart Doorlock Front-End)
- C++ (nCube & Tas)
- AWS SMS Service
- LED Pin
- Adafruit Board + Wifi Module
- Servo Motor
- Keypad
- Model House(Handmade)
- Raspberry Pi + Raspberry Pi Touch Screen(7 Inch)
- Wifi dongle
- ...
Mobius Server(IN-CSE)와 통신하고 Mobius에 등록된 센서(ADN-AE)를 제어할 수 있는 Doorlock Server(IN-AE)의 코드가 있는 저장소 주소는 다음과 같습니다. (https://github.com/imbf/Smart_Doorlock_Project_Doorlock_Server)
oneM2M IoT 표준의 AE(Application Entity)를 C++을 사용하여 구현했으며, MQTT 프로토콜을 사용하여 사물인터넷 서비스 플랫폼(Mobius)과 연결된 nCube 및 Tas의 코드가 있는 저장소 주소는 다음과 같습니다. (https://github.com/imbf/Smart_Doorlock_Project_nCube_ADN)
The Mobius is based on Node.js framework and uses MySQL for database.
- MySQL Server
The MySQL is an open source RDB database so that it is free and ligth. And RDB is very suitable for storing tree data just like oneM2M resource stucture. Most of nCube-Rosemary will work in a restricted hardware environment and the MySQL can work in most of embeded devices. - Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world. Node.js is very powerful in service impelementation because it provide a rich and free web service API. So, we use it to make RESTful API base on the oneM2M standard. - Mosquitto
Eclipse Mosquitto™ is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for "Internet of Things" messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers like the Arduino. - Mobius
Mobius source codes are written in javascript. So they don't need any compilation or installation before running.
아래와 같은 명령어를 입력해서 Node.js 어플리케이션을 실행하세요.
node mobius.js
Mobius를 위한 라이브러리 의존성은 다음과 같습니다.
- body-parser
- cbor
- coap
- crypto
- events
- express
- file-stream-rotator
- fs
- http
- https
- ip
- js2xmlparser
- merge
- morgan
- mqtt
- mysql
- shortid
- url
- util
- websocket
- xml2js
- xmlbuilder