Events/Tech Onboarding

[2022 신입 공채] 스마트 6조 - 오피스 온습도 모니터링 시스템 구축 👑

Tech HR 2022. 2. 10. 10:05
프로젝트명 : 오피스 온습도 모니터링 시스템 구축
팀명 : 스마트6조
팀원 :  Vinny, Delta, Kante
멘토 : Jack, Rowan

 

안녕하세요, 

저희는 2022 신입 개발자 공채 스마트6조의 비니, 델타, 캉테입니다. 

 

테크온보딩 기간 동안 진행했던 토이프로젝트 '오피스 온습도 모니터링 시스템 구축'를 소개하려고 합니다.

 

먼저 '스마트6조'라는 팀명을 짓게 된 이유는,

온습도 모니터링 시스템을 개발하고, 프로젝트의 최종 목표는 “스마트 오피스” 구축이었고,

스마트하게 프로젝트를 진행해보자는 의미에서 스마트 6조로 지었습니다.

 

프로젝트 설명을 시작하기 전에 자랑을 좀 하자면.. 동기들이 뽑은 최고의 프로젝트로 선정되었습니다. 😆

그리고 실제로 사내에서 사용할 서비스가 되어 스마트 6조가 유지보스를 사이드 프로젝트 느낌으로 담당하게 되었습니다. 

 

그럼, 지금부터 저희 프로젝트를 소개하겠습니다.

 

 

 

프로젝트 소개

프로젝트 동기

  • 현재 투썬월드빌딩의 경우 각 공간의 온도조절장치가 중앙에서 관리되고 있고, 온도를 모니터링하는 시스템의 부재로 각 공간의 이용자들이 덥거나 추울 때 슬랙을 통해서 온도조절을 요청해야 한다. 그래서 덥거나 추운 경우 총무팀이 슬랙 메세지를 일일이 확인하고 온습도계를 가지로 해당 공간에 방문하여 온도를 확인해서 조절해야 하는 등의 불편함이 있다. 그래서 각 공간별로 온도와 습도를 측정하여 한 곳에서 확인할 수 있는 시스템을 구축하면 좀 더 편리하게 온도, 습도에 대한 피드백을 반영할 수 있을 것이라고 생각하여 프로젝트를 시작하게 되었다.

 

🏹 목표

  • 투썬월드 빌딩의 카카오엔터테인먼트 오피스 5층 각 구역에 라즈베리파이와 온습도 센서 여러 대를 설치한다.
  • 오피스 각 구역별, 장비별로 모니터링하는 시스템을 구축한다.
  • 카카오엔터테인먼트 크루들이 각 구역에서 “더워요” , “추워요” 요청을 보낼 수 있다.
  • 온도 관리자는 “더워요”, “추워요” 알람이 오면 온도를 확인하여 대응할 수 있다.

 

👥 페르소나

  • 2021년 8월 1일 한여름 오늘도 나는 1시간 지하철을 타고 회사에 도착한다. 좁은 지하철에서 땀을 뻘뻘 흘리며 회사에 도착했는데 아니!! 회사가 더 덥다니… 바로 Slack 메신져를 켜서 5층 A구역이 덥다고 메세지를 보낸다. 10분.. 20분.. 하.. 퇴사할까… 결국 1시간이 지나서야 다른 직원분께서 내려오셔서 직접 온, 습도를 측정한 후 에어컨을 틀어주셨다.
    음.. 이 과정을 쉽게 처리할 수 있는 프로그램을 만들어볼까?? 아 근데 귀찮네 그냥 신입들 오면 프로젝트로 시켜야겠다.

(1년 후)

  • 2022년 8월 1일 한여름 오늘도 나는 1시간 지하철을 타고 회사에 도착한다. 좁은 지하철에서 땀을 뻘뻘흘리며 회사에 도착했는데 아니!! 회사가 더 덥다니… 하지만 스마트 오피스 기능을 사용해서 바로 온도를 올릴 수 있지! 바로 홈페이지에 접속하여 해당 층 해당 구역의 더워요 버튼을 누른다. 헐 10초 만에 에어컨이 켜지다니, 바로 업무에 집중해야지.

 

💪🏻 시스템 요구사항

  • 온습도는 각 센서에서 5분에 한 건씩 수집하여 DB에 저장한다.
  • 수집된 데이터를 각 구역별, 장비별로 그래프로 보여준다.
  • 크루로부터 “더워요”, “추워요” 피드백을 받을 수 있도록 한다.

 

👀 제한사항

  • 건물 공조 시스템 및 시스템 에어컨과의 연동은 단기간에 해결할 수 없기 때문에, 온도 조절 기능은 프로젝트 범위에 포함하지 않는다.
  • 모든 층과 구역에 온, 습도계(라즈베리 파이)를 둘 수 없다. ex) 크루들이 부딪혀 장비가 파손되기 쉬운 곳(포커스 룸 앞 공유 좌석)
  • 각 구역의 평균 온도를 측정할 수 있는 위치에 온, 습도계를 둘 수 없다.

 

👣 Next steps

  • 추후에 건물 내의 온도 / 습도 조절 시스템이 IoT를 지원하여 네트워크 통신을 통해 원격으로 온도 조절이 가능하다면 모니터링 시스템에 온도 / 습도 원격 조절 기능까지 만들 수 있다.
  • 모니터링 시스템의 후기가 좋으면 Admin 페이지 등을 구축하여 타 공간에도 해당 모니터링 시스템 구축이 용이하도록 만든다.
  • 관리자가 슬랙을 통해 알람을 쉽게 받을 수 있도록 한다.

 

 

라즈베리 파이

라즈베리파이, 총 23대의 사진

 

  • 실제 설치된 모습

 

 

데이터 흐름도

 

 

인프라 구성

 

 

 

화면 설계 

  • 전체 화면(MainPage): 카카오엔터테인먼트 총무팀이 투썬월드오피스 5층의 온습도 현황 모니터링 목적으로 개발하였기 때문에, 단일 페이지로 구성하였다.

  • 장소 선택 화면(SpaceChooseBox): 드롭박스를 통해 오피스를 선택할 수 있고, 체크박스를 통해 층을 선택할 수 있다.

  • 현재 온습도 보드 화면(CurrentPlaceBoard): 현재 선택된 오피스, 층의 Zone, Device 별 온습도 현황을 보여준다.

  • Zone, Zone의 평균 온습도 화면(DataZone): 각 Zone에 마우스를 올리면 더 쉬운 식별을 위해 색이 바뀌고, 클릭하면 Zone에 속한 현재 Device들의 평균 온습도를 알려준다. 또한 추워요, 더워요 버튼을 누르면 해당 정보고 DB에 저장된다.(추후에 서비스를 확장하면 사용할 예정)

  • Device, Device의 온습도 화면(DataBox): 각 Device(온도계 아이콘)에 마우스를 올리면 현재의 온습도 값을 보여준다. 온도에 따라 온도계 아이콘이 달라진다.



     
  • DataGraph 일일 온습도 변화 화면(DataGraph): Zone 또는 Device를 클릭할 경우, 일일 온,습도 히스토리를 그래프로 볼 수 있다. 우측 위에 날짜를 클릭해서 바꾸면 원하는 날짜의 히스토리를 볼 수 있다. 그래프가 작아서 보이지 않는 경우 드래그를 통해 확대할 수 있다.
  • 외부 온도 화면(OutWeather): 외부 open API를 활용하여 현재 투썬월드오피스 외부 온도를 볼 수 있다. 온도에 따라 다른 이미지와 멘트가 나타난다.

 

프로젝트 리뷰 

 

Vinny 🙆🏻‍♂️

  • 팀원들과 역할을 명확이 나누어 맡은 일을 계획대로 달성하면서 성취감을 느꼈고, 앞으로도 확장 가능한 서비스인 점이 매력적이다.
  • 디자인을 직접 만들어야 해서 어려웠다. typescript를 지원하지 않는 라이브러리가 있어 해결하는데 어려움이 있었다.

 

Delta 🙋🏻‍♂️

  • 간단한 서비스를 만드는 것도 신경 쓸 것이 많다. 실제로 쓸 서비스를 만들어본 경험이 처음이었는데 재미있었다.
  • 코틀린과 JPA가 처음이었는데 생각했던 대로 동작하지 않는 부분을 찾아서 고치는 것이 힘들었다.

 

Kante 🤷🏻‍♂️

  • spring boot와 kotlin 모두 처음 사용해보는 것들이고 aws를 통한 cicd 배포도 처음이어서 배우는데 재미를 많이 느꼈다.
  • 라즈베리파이를 학부생 때도 사용해본 적이 없었는데 실제로 해보니까, 생각했던 것보다 더 힘든 작업이었다.

 

 

동기들이 뽑은 가장 프로젝트를 잘 수행한 팀으로 선정된 스마트6조!

👑

 

동기1 : IoT는 되게 외부환경에 민감한데 그 부분에서 다루기 어려웠을 것 같고 실제 요구사항을 받아서 구현했다는 점에서 힘들었을 것 같습니다.

동기2 : 실제적으로 도움이 될만한 서비스라고 생각합니다. 대시보드에서 보여주는 정보들의 아이디어가 특히 빛이 난 것 같습니다.

동기3 : iot 해본적 없으셨을텐데 완성도 있게 만들어서 감탄했습니다. 정말 고생했어요!

동기4 : 임베디드 코딩이 하드웨어를 가지고 프로그래밍 해야해서 분명히 어려운 변수가 많았을 것 같은데, 그런 것들을 해결해내고 성공적인 결과물을 내서 투표했습니다.

동기5 : 오피스로 늦은시간까지 출근하시는 모습을 몇번봤습니다. 아무래도 IOT 기기를 직접 설치하다보니 사람이 없는 시간에 해야되서라고 생각했습니다. 부지런히 기기들을 다설치하고 노력하시는 모습이 보기 좋았습니다.

동기6 : 임베디드 개발도 어려운데 직접 오피스에 설치하고 서버와 클라이언트까지 3명이서 구현했다는 게 정말 멋지다.

동기7 : 라즈베리파이를 사용해 본 경험이 없다고 했는데도 불구하고 완성도 높은 결과물이 나왔고, 짧은 기간동안 개발과 새로운 환경에 대한 적응, 코틀린 스프링 부트에 대한 도전 등 다른 팀들보다 많은 도전을 한 점에서 투표하게 되었습니다.

 

나름 1등 기념, 소정의 상품을 드렸는데(커피상품권)

이걸 또 동기들과 함께 나누었다고 하네요~

너무 훈훈했던 현장입니다😊

 

 

비니, 캉테, 델타