Coder Social home page Coder Social logo

iot_kookmoban_ponjohmnaimann's People

Contributors

ckswjd99 avatar riyenas0925 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

iot_kookmoban_ponjohmnaimann's Issues

[DOC] 반납기 회로도 업데이트 (상태표시 LED 추가)

반납기의 상태를 간단히 알려줄 수 있는 상태 표시 LED를 회로도에 추가하자.

  • 파랑: 정상 보관중
  • 초록: 보관 절차 정상 진행중
  • 노랑: 보관 절차 진행중 오류 발생. 덮개를 열고 핸드폰을 가져가도록 함.
  • 빨강: 보관중 문제 발생. 관리자에게 알림.

[TST] 테스트용 마스터 QR코드 개선

원래는 기존 형식의 QR코드에서 totp값을 추출하여 서버 검증 단계에서 마스터 값을 확인하였으나,

조금 더 수월한 테스트를 위해 QR코드 자체를 마스터키로 사용하는 방안을 고안하였음.

[DOC] license.md 파일 추가

Repository

osamhack2020/Sample_Technology_ProjectName_TeamNamelicense.md

에서 license.md 파일 그대로 추가 (MIT 라이센스)

[ENH] QR코드를 인식한 값을 서버에 전송하여 반납 기기를 검증하는 기능 구현

카메라가 찍는 QR코드를 읽고 아래 항목에 대한 정보를 각각 추출한다.

  • 기기ID
  • TOTP

그리고 서버에 아래와 같은 JSON 데이터를 POST 방식으로 전송하여 응답으로 성공 여부를 받는다.
{
 'timeInMillis': 현재 시간의 ms단위 값,
 'deviceId': QR코드에서 읽은 기기의 고유 Id,
 'expectedTOTP': QR코드에서 읽은 기기가 생성한 TOTP값
}

[BUG] phone_autoCut 함수 인자의 type이 통일되지 않음

코드 전체에서, 사진에서 핸드폰 영역만 잘라주는 함수인 phone_autoCut의 인자로서 주는 것들이 중구난방임.

  • str : 테스트를 위해 찍은 핸드폰 사진의 경우, 인자를 str타입의 사진의 경로로 제공함.
  • PIL.Image.Image : 화면을 캡쳐하여 사용하는 경우, pillow 라이브러리를 사용하므로 PIL.Image.Image 타입의 객체를 인자로 제공함.
  • np.ndarray : 이후 카메라를 사용할 경우, cv2 라이브러리를 사용하므로 numpy.ndarray 타입의 객체를 인자로 제공하게 됨.

따라서 함수를 실행시키면 가장 처음으로 인자의 type을 확인하여 numpy.ndarray형식으로 변환한 뒤 기존의 과정을 수행하도록 하여야 한다.

또한 함수에서 오류가 발생하는 경우, 함수가 False가 아닌 원본 사진에 해당하는 numpy.ndarray를 반환하도록 하는 것이 유리할 것임.

[ENH] 비정상적인 종료 상황을 대비한 반납기 상태 저장 기능 구현

반납기의 상태에 대한 몇 가지 정보를 파이썬 내장 모듈인 pickle을 활용하여 외부 파일로 저장하도록 한다.
저장하는 항목은 다음과 같다.

  • phone_isFull : 핸드폰 보관 상태인지 여부를 확인한다.
  • weight : 현재 측정되는 무게를 저장한다.

저장은 반납시, 불출시에 한 번씩 진행한다.

[ENH] 스켈레톤 코드 작성

라즈베리파이 반납기 기능

  • 무게 감지
  • 반납 과정 진행
  • 보관중 도난 방지

사용 라이브러리

  • pyzbar
  • numpy
  • pillow

[DOC] 반납기 회로도 상태표시 LED 관련 수정 등

회로도에 저항 사용에 대해 적어두지 않았음.

상태표시에 사용되는 LED는 정격전압 2.2V, 정격전류 30mA이므로 이에 맞는 회로를 구성하여야 함.

또한 문 닫힘의 확인을 위해 KW-10 스위치를 사용하기로 계획하였으나, 서보모터가 예상보다 확실하게 잘 작동하여서 KW-10 스위치는 사용하지 않아도 괜찮을 것 같음.

[ENH] Key Vector를 기반으로 이미지를 Decoding 하는 기능 구현

특정 색상으로 암호화된 QR코드를 Decoding 하기 위해, 특정 색상의 RGB값을 Key Vector로 하여 이미지 전체를 변환한다.
변환 과정은 아래와 같다.

  1. Key Vector를 기준으로 Gram-Schmidt 과정을 통해 Orthonormal Basis를 생성한다. 이를 Key Basis라 하자.
  2. 이미지의 각 Pixel값을 읽고 Key Basis를 Column으로 하여 구성한 행렬의 역행렬과 곱한다.
  3. 이 중 Key Vector의 성분에 해당하는 값으로 이미지의 각 Pixel을 대체한다.
  4. 이미지 전체를 반전시킨다.

올바른 Key Vector를 통해 위 과정을 진행한다면, 특정 색상으로 암호화된 QR코드 이미지는 선명한 흑백의 QR코드가 된다.

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.