라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

졸업을 위한 졸업작품이 드디어 끝났습니다.

19년 2월부터 본격적으로 시작했던 것 같고, 9달쯤 걸렸네요.

그렇지만 난이도는 그렇게 높지 않아서, 그중에서도 바짝 한 시간은 2달 정도 될 것 같습니다.

졸업작품 때문에 헤매고 있을 친구들에게 조금이라도 도움을 주고자 제가 한 것들에 대해서 써보겠습니다.

제가 전기과라서, 처음에는 모터를 이용한 작품을 하려고 했습니다.

팀원과 아이디어를 짜다가, 아 요새 최저임금 상승과 더불어 곧 무인화 시스템이 구축될 것 같으니, 햄버거를 만들어 주는 로봇을 만들자 ! 라는 생각을 했습니다..

이 아이디어를 가지고 교수님을 찾아뵈었지만, 교수님께서 빠꾸.. 하셔서 급하게 주제를 바꾸게 됐습니다..

그래서 생각한 것이..

그때 한창 미세먼지가 많았던 때였습니다. 그리고 제가 자취를 하는데, 학교 갈 때 환기 때문에 창문을 열어놓고 가면, 오후에 미세먼지 농도가 높아져서, 환기를 괜히 한 것이 돼버리는, 그런 경험이 많아서,,

집의 상황을 아무 데서나 알 수 있고, 집안의 기기를 동작할 수 있는 시스템을 만들어 보자 ! 라는 생각을 하게 되었고,

그것의 제목을 Smart home system, 스마트홈 시스템 으로 하였습니다.

이거를 하면서 생소한 프로그래밍언어(php, 파이썬..)을 배우는 것이 가장 어려웠고, 대부분 구글에 검색하면 다 나오는 코드이기는 한데,

이것을 우리가 원하는 기능을 하도록 바꾸는 것이 가장 어려웠던 것 같습니다.

이것을 하기 위해서는 준비물로는 '아두이노(메가, 우노..), 라즈베리파이, 각종 센서(미세먼지, 우적, 온습도..)' 등등이 있습니다.

저희는 아두이노 메가, 라즈베리파이 b3+로 진행하였습니다.

기능으로는 : 집안의 환경 확인, 기기 동작(에어컨, 보일러), CCTV 기능(스트리밍과 외출 시 움직임이 감지되면 자동 녹화)

개발 환경

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

웹 프로그래밍으로는 APM이라고 불리는 것을 사용했습니다. ( 웹서버는 아파치, 데이터베이스는 마이에스큐엘, 프로그래밍은 php )

그리고 라즈베리파이 내부에서 작동하는 프로그램으로는 파이썬을 사용했습니다.

구글 차트를 사용하는 부분에서 약간의 자바스크립트를 사용했습니다.

아두이노는 다들 아실만한 ino 사용했습니다.

전체 시스템 구조

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

데이터 흐름입니다.

1. 센서에서 측정한 수치를 아두이노에서 받고,

2. 아두이노에서 라즈베리파이로 신호를 전송합니다.

3. 라즈베리파이에서는 받은 신호를 구분하여서 데이터베이스에 저장합니다.

4. php를 이용해서 데이터베이스에 있는 데이터를 사용자가 볼 수 있도록 하였습니다.

5. 또한 사용자가 기기를 동작할 수 있도록, 홈페이지에서 php를 이용해, 데이터베이스에 기기 조작 값을 저장할 수 있도록 하였습니다.

6. 라즈베리파이에서는 기기 동작 데이터베이스에서 조작 값을 참고하여, 아두이노로 기기 동작 신호를 보냅니다.

7. 아두이노에서는 기기 동작 신호를 받아서 기기가 동작하게 합니다.

이러한 큰 과정을 기본으로 하여 시스템을 개발하였습니다.

세부설계

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

제가 프로그래밍한 것 중에서 가장 중요한 것들을 추렸습니다.

1. 우선 데이터베이스는

로그인 기능을 위한 user

기기 동작 기능을 위한 control

센서 값 저장을 위한 data

CCTV 외출모드 기능을 위한 mode, motion

CCTV 자동 녹화 파일 다운로드 및 삭제를 위한 Video

로 구성하였습니다.

2. 그리고 아두이노에는

센서 값을 받아 라즈베리파이로 전송하고, 라즈베리로부터 기기 동작 신호를 받아 기기를 동작하는 sensor_led.ino

가 있습니다.

3. 라즈베리파이에는

센서 값을 받아 데이터베이스에 저장하는 sensor.py

기기 동작 신호를 아두이노로 전송하기 위한 led.py

기기 동작 신호를 데이터베이스로 저장하기 위한 led.php

CCTV 기능을 위한 것들.

그리고 위의 모든 기능을 사용자가 조작 및 확인할 수 있게 하는 홈페이지 main.php

로 구성하였습니다.

주요 코드:

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

라즈베리파이 졸업작품 아이디어 - lajeubelipai jol-eobjagpum aidieo

요로코롬 하였습니다.

오늘 졸업작품 전시회가 끝났고, 이제 졸업만 남아있네요.. 하하..

궁금하신 것 있으시면 댓글 달아주세요. ~

코드입니다. 참고하셔요.

그런데 최종 파일은 못 찾아서, 수정 중이었던 코드입니다. 그래도 얼추 비슷할 거예요.