본문 바로가기
프로젝트

라즈베리파이를 이용한 스마트 룸 시스템

by 핫동경 2022. 4. 5.
반응형

[라즈베리파이를 이용한 스마트 룸 시스템]

라즈베리 파이를 이용해서 스마트 홈의 하위호환인 스마트 룸 시스템을 만들어 보자.

스마트 홈?

보통 스마트 홈은 사용자가 응용 프로그램을 통해 집안의 정보(온도, 습도, 조도 등)을 사용자에게 알려주고 사용자는 이 정보를 통해 집안의 온도를 제어하거나 가스불을 off 형태로 만든다던지 등 집 안의 기기를 제어할 수 있는 기능을 제공한다.

 

라즈베리파이를 이용한 스마트 룸(Room) 시스템

라즈베리파이에 커넥터를 이용해 여러 센서들을 부착해 스마트 홈과 비슷한 기능을 제공하는 프로그램을 만들 수 있다. 하지만 센서를 통해 값을 읽어올 뿐 아직 직접 방 안의 온도나 조도를 조절할 수 없기 때문에 방 안의 정보를 센서를 통해 읽어와 출력하고 그 값에 따라 사용자에게 다양한 메시지를 출력해주는 서비스를 만들 것이다.

 

구현할 기능

1. Flask라이브러리를 이용해 라즈베리파이에서 작성한 html 문서를 웹에 띄운다.

 

2. 라즈베리파이와 웹 페이지가 연결되면 MQTT라이브러리를 통해 서로 메시지를 주고 받을 수 있다

 

3. MQTT라이브러리를 통해 센서들이 웹에게 측정 값들을 보낸다.

 

4. 센서(온, 습도센서, LED, 조도센서, 라즈베리파이 카메라,초음파 센서)

 

5. 온,습도, 조도의 값을 받아 웹페이지에 값을 출력하고 그에 맞는 이미지를 출력한다.

 

6. 값이 높아지거나 낮아지면 이미지 또한 바뀌며 사용자에게(웹 상에서) 경고 메시지를 출력해준다.

 

7. 만약 조도의 값이 낮아졌다면 라즈베리파이의 LED는 켜지고 다시 높아지면 LED는 꺼진다.

 

8. 누군가 자신의 방 앞에 다가왔을 때 초음파 센서의 값이 지정한 값 이하가 된다면 카메라는 사진을 찍어

    웹 페이지에 사진을 보낸 후 출력하고 경고메시지를 출력한다. 거리가 멀어지면 사진은 사라진다.

 

 

 

[사용 라이브러리]

GPIO, FLASK(웹 띄우기), MQTT(통신), time, Adafruit_MCP3008, HTU21(온,습도), busio(습도), picamera 이외 등등..

 

 

 

 

[스마트 룸 실행]

앞서 말햇듯이 MQTT를 이용하여 통신하고 각 센서들의 값마다 topic을 설정하여 서로 메시지를 주고받음

그럼 동작하는 모습을 보자.

html을 더 세련되게 못 꾸민것이 많이 아쉽지만 ㅠㅠ 기능을 구현했다는 것에 만족하자

 

기능이 잘 되는지 확인하기 위해 테스트를 진행했다.

온도, 습도 센서를 손으로 가렸더니 온도도 26도로 올라갔고 습도는 58%까지 올라갔다.

습도가 너무 높아 사용자에게 습도가 높다는 경고메시지를 출력해주는 것을 볼 수 있다.


 

이번에는 방 안의 불을 꺼보았다.

또한 지정온도 값을 바꾸어 25도가 되어도 온도가 낮다는 것으로 인식하게 했다.

사용자의 설정값에 따라 그림과 메시지가 동적으로 변하는 것이다.

방 안이 설정한 값보다 어두으므로 어두움 그림이 나타났고 초록 LED에 불이 들어온 것을 볼 수 있다!!


마지막 누가 내 방문앞에 오면 사진을 출력해주는 기능만 남았다. 

초음파 센서에 가까이 다가가니 경고문구를 출력하고 사진을 출력해주는 것까지 확인이 되었다.


[마무리]

만들면서 코드를 구현하는 부분보다 오히려 어떤 기능을 추가할지의 아이디어쪽에 더 많은 시간을 쓴 것 같다. 정말 아이디어 싸움이구나 라는 생각을 하게 되었다. 

라이브러리가 없었다면 어덯게 됫을가....

정말 수많은 라이브러리들이 있고 이것들을 얼마나 잘 알고있고 잘 사용하느냐에 따라 역량이 달라질 수도 있겠구나 라고 생각하게 되었다.

반응형

댓글