[ 팀 프로젝트 ] DIY 스마트미러 만들기 (소프트웨어 개발하기) [Make DIY Smart Mirror (develop software)

2021. 6. 28. 08:35프로젝트

반응형

[ 팀 프로젝트 ]

 제가 고등학교 1학년 2학기 때, 교내에서 진행하는 학생들이 개발한 소프트웨어 발표회가 있었습니다. 그때 선배들이 만든 '스마트 미러'라는 작품을 보았습니다. 생김새는 일반 거울과 같으나, 거울과 AI스피커 기능을 합친 기능을 가지고 있었습니다. 당시에는 신기하기도 하였고 멋져 보여서 꼭 만들 거라는 생각을 가지고 있었습니다. 그리고 때마침 학교 수행평가로 리눅스를 이용한 프로젝트를 제출하라고 하여서 이번 기회에 친구 한 명과 같이 2인 1팀으로 스마트 미러 프로젝트를 진행했습니다.

 

ps. 저는 이 프로젝트를 처음 진행하면서 Python이라는 언어를 이용하며, 지금까지 주요기술 언어로 Python을 이용하고 있습니다.

 

 해당 프로젝트는 라즈베리파이와 학교에 남는 자원인 TV를 이용하여 반 아이들을 위해 제작하였습니다. 

 

https://github.com/Mr-DooSun/SmartMirror_ver.1-use.pyqt5

 

GitHub - Mr-DooSun/SmartMirror_ver.1-use.pyqt5

Contribute to Mr-DooSun/SmartMirror_ver.1-use.pyqt5 development by creating an account on GitHub.

github.com

[ 개발 기간 ]

  • 2018.09 ~ 2018.11 ( 약 3달 소요 )

[ 개발 언어 ]

  • Python

[ 사용한 툴 및 핵심 스킬  ]

  • Sublime Text3 - 프로그래밍할 때 사용
  • Visual Studio Code - 프로그래밍, 깃허브 이용할 때 사용
  • Github - 코드 공유하기 위해 사용

 

  • Opencv - 스마트 미러에 들어갈 Youtube영상 기능을 위해 사용
  • Raspbian (Unix 계열) - 라즈베리파이를 이용하기 위해 사용
  • Pyqt5 - 윈폼 프로그래밍을 위해 사용

[ 맡은 역할 ]

시간, 날씨, 유튜브, 급식 기능 구현 및 스마트미러 UI 구성

 

[ 핵심 코드 ]

각 기능들이 모듈화가 안되어 있습니다. 아래 "완성된 코드"를 통해 확인 바랍니다

 

[ 결과 & 정리 ]

1 : 날씨와 기온을 알려주는 기능입니다 darksky api를 이용하여 날씨정보와 온도 정보를 읽어 온 뒤 해당 날씨에 맞게 아이콘을 출력하도록 하였습니다.

 

2 : 유튜브 영상을 보여주는 기능입니다. youtube data api v3과 yapi라는 모듈을 이용하여 비디오 정보를 읽어온 뒤, pafy 모듈을 통해 해당 링크의 비디오 정보를 불러와 opencv를 통해 비디오 데이터를 변환합니다. 그리고 변환된 비디오 데이터를 0.02초마다 QLabel에 변경됩니다 이렇게 될 경우 유튜브 영상을 출력하도록 하였습니다.

 

3 : Datetime 모듈을 이용하여, 현재 시간 정보를 불러온 뒤, 시간 정보가 보이도록 설정하였습니다.

 

4 : 급식을 알려주는 기능입니다. Json Parsing을 통해 급식정보를 불러왔습니다.

 

5 : 뉴스 기사를 보여주는 기능입니다. http://fs.jtbc.joins.com//RSS/newsflash.xml 해당 링크에 Xml Parsing을 통하여 뉴스 정보를 불러왔습니다.

 

+ 음성인식과 음성 출력기능은 환경상에 문제로 사용하지 못하였습니다. ( 학교 인터넷망으로 음성인식 및 음성출력 API 서버가 접속하지 못하였습니다 )

 

[ 완성된 코드 ] 

 

https://github.com/Mr-DooSun/SmartMirror_ver.1-use.pyqt5

 

GitHub - Mr-DooSun/SmartMirror_ver.1-use.pyqt5

Contribute to Mr-DooSun/SmartMirror_ver.1-use.pyqt5 development by creating an account on GitHub.

github.com

 

반응형