Skip to content

osamhack2020/IoT_AMDM_KimChunma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AMDM(Army Mobile Device Management)

저희는 RFID 기술을 이용한 IoT 장치와 휴대전화를 통제하는 APP을 개발하여 군에서의 보안/안전적인 측면을 더욱 강화시키는 것 뿐만아니라 전군 장병들의 휴대폰 관리를 전산화 처리를 할려고 합니다. 저희 팀은 국방 오픈소스 아카데미에 참가하여 국군 모바일 단말 장치 관리 시스템(Army Mobile Device Management System)을 구현시키고자 합니다. 🔥

로고

Logo

AMDM의 로고는 초승달과 자물쇠가 합쳐서 좋은 밤을 위해서는 보안을 잠그자 라는 뜻을 의미하고 있습니다.

팀소개 및 프로젝트 설명 동영상 👍

AMDM 프로젝트 발표자료(최종본)_22

기능 설계

구성 / 필수 조건 안내 (Prerequisites)

  • Android 6.0 (Marshmallow) 이상
  • 휴대폰 NFC, 인터넷 기능 필수
  • Python3.0 이상 필요
  • AMDMServer가 실행되어있어야 정상적으로 작동함

기술 스택 (Technique Used)

Server(back-end)

  • Python 3버전을 통해 개발
  • TCP 소켓 통신 서버
  • SQLite로 DB 구현

IoT

  • 아두이노를 중심으로한 잠금장치 구현(조도센서,서보모터 이용)
  • 라즈베리 ↔ 아두이노 간 I2C 통신을 통한 Master-Slave 아키텍처 구현
  • 라즈베리 TCP 클라이언트 구현

Android

  • Fragment를 통하여 메인화면 구현
  • BroadCast Receiver를 통해 안드로이드 켜질시 상태 구현
  • chart 구현을 위해 MPAndroidChart를 사용하여 구현
  • Lock구현을 위해 Screen 없애질때마다 커스텀 액티비티로 대체함
  • TurnOnService 서비스 구현

시스템 아키텍처 (System Architecture)

AMDM 프로젝트 발표자료(최종본)_7

시스템 라이프사이클 (System LifeCycle)

반납 사이클

AMDM 프로젝트 발표자료(최종본)_9

불출 사이클

AMDM 프로젝트 발표자료(최종본)_8

설치 안내 (Installation Process)

Android apk 실행

  • ${Git Home}/app-debug.apk

Python 서버 실행

$ python3 ${Git Home}/AMDMServer/server.py

SQLite 실행(필요시)

$ sqlite3
$ .open AMDMserver.sqlite3

프로젝트 사용법 (Getting Started)

  1. Android
  2. Server
  3. IoT장비와 데이터 교환
  4. Android와 데이터 교환
  5. DataBase(SQLite)

Android

화면 리스트

  • SplashActivity
  • LoginMainActivity
  • LoginActivity
  • MainActivity
    • MainLockFragment
    • MainSetupFragment
    • MainStaticsFragment
  • TurnOnActivity
  • TurnOnReceiver
  • LockService

참고사항

  • 로그인 ID: admin PW: admin
  • 서버통신 대체 : 3초 대기
  • RFID 태그 대체 : 3초 대기

Server

  • Python3으로 이루어진 TCP 소켓 서버입니다.

코드 소개

  1. logs 폴더
    • 서버의 로그를 저장하는 폴더입니다. D로 시작하면 Default, W로 시작하면 Warning, E로 시작하면 Error를 뜻합니다.
  2. util 폴더
    • 서버의 전반적인 유틸에 관한 코드입니다.
    • DBManager.py는 SQLite와 연결하기 위한 코드입니다.
    • jsonManager.py는 데이터와 Json 끼리 교환하기 위한 코드입니다.
    • serverLog.py는 로그저장하는 코드입니다.
    • ServerTime.py는 서버의 시간을 체크하는 코드입니다.

IoT장비 데이터 교환

참고 : 데이터 교환.txt

DataBase (SQLite)

참고 : 데이터베이스 스키마.txt

팀 정보 (Team Information) 💙

저작권 및 사용권 정보 (Copyleft / End User License)

이미지

코드

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages