Name Last Update
..
src Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...
index.js Loading commit data...
package-lock.json Loading commit data...
package.json Loading commit data...

SMB (스마트 약병)

박권수 : Web Server & Database

  • Server : Node.JS
  • Web Framework : Koa
  • DBMS : Mongo DB
  • Networking : HTTP, MQTT

How To Use

  1. Node, Mongo DB Install
brew install node
brew install mongodb-community@4.4
  1. ServiceKey, Mongo DB URL Setting
// .env
SERVER_PORT=
MONGO_URL=
JWT_SECRET=
SERVICE_KEY=
  1. Server On
// server
npm start

DataBase Table & Field

  • 유저 Table / 허브(가칭) Table

https://github.com/Park-KwonSoo/Smart_Medicine_Bottle/blob/server/design/DataTable1.png?raw=true
  • 약병 Table

https://github.com/Park-KwonSoo/Smart_Medicine_Bottle/blob/server/design/DataTable2.png?raw=true
  • 약 정보 Table

https://github.com/Park-KwonSoo/Smart_Medicine_Bottle/blob/server/design/DataTable3.png?raw=true

ToDo

  • MQTT Hosting

→ 5 / 7 : test.mosquitto.org 와 raspberry 3.0 model B - mosquitto 설치로 다중 broker 연결, publish & subscribe 확인

  • Middle Ware

→ 5 / 9 : jwtMiddleWare ⇒ access tokening

  • 인증 구현

→ 5 / 9 : Register, Login, Logout, and Access Token

  • 데이터테이블 수정 및 추가 기능 구현

→ 5 / 9 : schema is changed

  • 데이터 처리 로직 구현
  • Node.JS의 특정 유저의 MQTT client를 어떻게 모듈화 시킬까 ?
  • API 유저 인증 추가

→ 5 / 11 : 각 API에 Authorization 추가

  • Bottle API : 데이터 요청 message publishing 추가

→ 5 / 11: Bottle Info 조회 시, Broker로 약병의 현재 상태 요청 메시지 전송

  • Hub, Bottle, User unregister 추가 및 연관 데이터 처리
  • logic return value 및 status

→ 5 / 11 : ctx.body, status 추가

  • Private IP의 브로커를 웹서버와 연결
  • Native Application에 전달할 데이터 규칙 정하기
  • WebServer AWS 배포
  • 안드로이드 <> 서버 <> 브로커 <> 약병 연결하기

⇒ 안드로이드에서 블루투스로 약병 찾은 후, 해당 약병의 정보를 서버로 전송, 서버는 이 정보를 브로커에게 전송 후 블루투스 통신?

  • bottleCtrl : lookUpInfo 함수에서 req 보낸 후 응답받은 새로운 bottle을 출력해야 한다.
  • Hub 이름 짓기

Schedule