Giter Club home page Giter Club logo

backend-server's Introduction

Backend Server (처리서버)

본 문서에서는 백엔드 처리서버에 대해 다룹니다. (MQTT Broker 및 얼굴인식 부분은 본 문서에서 다루지 않습니다.)


📂 프로젝트 구조

📂Backend-Server
┗ 📁firebase-python-sdk-key //파이어베이스 접속을 위한 KEY를 보관
  ┗ 📃<firebase-sdk-key>.json
  ┗ 📁module //각 모듈라이브러리를 저장
    ┗ 📁rabbitmq //MQTT를 사용하기위한 모듈
    ┗ 📁slack //slack을 사용하기위한 모듈
    ┗ 📁weather_api //날씨API를 사용하기위한 모듈
┗ 📃programstart_manager.py //각 프로그램 총괄관리
┗ 📃backend_process.py //MQTT 명령 처리 프로그램
┗ 📃realtimedb_connect.py //파이어베이스 RealTimeDB를 접속관리하는 프로그램
┗ 📃realtimedb.json //RealTimeDB에 현황을 파일로 실시간 업데이트
┗ 📃server_notification //RealTimeDB에 업로드할 사용자 추천 행동 값

✅ TODO

✅ 총괄 프로그램(programstart_manager)이 쓰레드가 아닌 프로세스를 실행하도록 변경

✅ 파이어스토어 스케쥴 확인 부분 추가

✅ 스마트홈 기기 제어 부분 추가

✅ 각 MQTT 함수는 독립적인 connection을 가집니다.

✅ MQTT 메시지 publish(전송)시 매 시점마다 채널을 열고/닫습니다.

✅ MQTT 메세지 consume(수신)시에 사용하는 채널을 분리합니다.

✅ 얼굴인식을 독립적인 프로세스로 진행함.

🚫 각 기기(안드로이드,웹오에스)로 부터 받은 스케쥴값을 파이어베이스에 추가하는 기능 구현해야함.

✅ 스케쥴 type이 once인 데이터는 실행후 삭제한다. (title중심 -> )

🚫 data.smarthome(clone)을 consume(수신)하여 작업 체크

✅ 각 센서 및 API 정보를 수집하여 사용자에게 행동 추천


실행

아래 명령을 통해 하위프로그램 전체 실행

sudo python3 programstart_manager.py



programstart_manager

목적 : 백엔드 프로그램 총괄, 하위 프로그램 실행관리, 예외상황 발생처리, 서버 디바이스 모니터링 관리

Python3 로 작성되었으며, 의존 모듈은 아래와 같습니다.

import os
import time
import multiprocessing as mp

from module.slack import slack



realtimedb_connect

목적 : 실시간DB 접근/관리, 날씨API로부터 데이터 수신

Python3 로 작성되었으며, 의존 모듈은 아래와 같습니다.

import time
import json

import firebase_admin
from firebase_admin import credentials
from firebase_admin import db

from module.weather_api import openweathermap_api
from module.slack import slack



backend_process

목적 : MQTT 클라이언트(송신/수신), 파이어스토어 접근/관리, MQTT 및 파이어스토어 데이터 정제 및 처리

Python3 로 작성되었으며, 의존 모듈은 아래와 같습니다.

import time
import threading
import json
import re
import os

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

from module.rabbitmq import rabbitmq_clinetinclude pika
from module.slack import slackinclude requests

스마트홈 가전제어 프로토콜 (RealTime DB, MQTT 메세지)

아래 그림 8자리와 더불어 프로토콜 최좌측에 가전모드값 추가. (총 9자리)


backend-server's People

Contributors

chhs2131 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.