IoT 프로젝트_1+(Introduce 보충)

김두현·2024년 11월 6일
0

SmartHome_IoT

목록 보기
3/6

이전 프로젝트 introduce 가 빈약해 보여 이것저것 내용을 추가…

23.05 부터 기획/개발을 시작해 23.11에 마무리된 IoT 기반의 프로젝트 “Smarthome”을 소개하고자 한다.

해당 프로젝트는 경북형 SW 인력양성사업의 일환으로 기업과 컨소시엄을 구성해 멘토링 및 소프트웨어 자원을 제공하고 학생들이 연구 개발을 진행했다.

이번 포스팅에서는 “Smarthome”을 어떻게 기획했고 설계해왔는지 큰 그림을 설명해보겠다.

Introduce

Goal

독거 가구를 위한 실시간 안전 모니터링 및 응급 대응 시스템을 구축하는 것을 목표로 한다.
IoT 센서를 활용해 실내 환경과 생체 데이터를 수집하고, 이를 분석해 비정상 상태나 응급 상황을 감지하는 시스템을 개발한다. 최종적으로 독거노인과 같은 돌봄이 필요한 가구에 안전한 생활 환경을 제공하고, 돌봄 공백을 최소화하는 것을 목표로 개발을 진행했다.


Sensor 결정

먼저 각 가구에 설치할 센서를 결정하는 것이 기획 단계에서 우선이였다. 우리가 설계하고자 하는 시스템은 각 가구에 설치된 여러 센서들을 실시간으로 수집해 DB에 저장하며 보호자가 실시간으로 언제든지 해당 가구를 모니터링 하기를 최종적으로 원했다!

보통 IoT 센서 통신 타입 중에 자주 사용되는 3가지 프로토콜이 있다.

  1. Wifi
  2. BLE or Bluetooth
  3. Zigbee

여러가지 이유가 있지만 시중에 zigbee 기반의 센서가 다양한 점, 저전력인 점, BLE보다 커버리지가 넓은 점 등을 고려해 Zigbee 센서를 최종 채택했다.

IoT 프로젝트인만큼 각 가구에 설치한 센서의 종류들이 여러가지가 존재하는데 우리 프로젝트에서 사용한 센서의 종류는 아래와 같다.

카테고리사용 목적데이터 유형사용된 센서
환경 데이터가정 내 온도와 습도 측정- 온도
- 습도
- 이슬점
게이트웨이 내부 측정 센서
가정 내 이상 징후 식별- 가스
- 연기
- 물 누수
- 가스 감지기
- 연기 감지기
- 물 누수 감지기
전력 사용량 측정- 전기- 스마트 플러그
생활 데이터건강 상태 확인- 혈압
- 혈당
- 산소 포화도
- 혈압 측정기
- 혈당 측정기
- 산소 포화도 측정기
활동 수준 확인- 움직임 빈도
- 문 열림 빈도
- 움직임 센서
- 문 열림 센서

이제 가구에서 발생된 센서 데이터를 클라우드 서버까지 전송할 Hub 역할이 필요했다.

위 사진은 프로젝트에 사용한 gateway 제품으로 각 가구에서 zigbee로 연결된 센서들과 데이터를 통신하는 허브 역할을 한다.

그리고 데이터 수집하는 과정을 간략화하면 아래와 같다.

  1. 각 센서 설치 및 zigbee를 사용해 gateway와 연결
  2. 센서에서 발생한 데이터는 gateway로 전달
  3. gateway에서 서버로 데이터 전달
  4. 서버 측에서는 별도의 프로그램을 통해 수신한 데이터를 db에 저장


Setting

우리가 선택한 gateway는 서버와 통신하기 위해서 MQTT 프로토콜을 이용한다. mqtt를 이용해 센서 데이터를 데이터베이스까지 저장하기 위해서 몇 가지 세팅이 필요하다.

Gateway Firmware

각 gateway에 설정된 host, port 및 여러 설정 값을 바꿀 필요가 있다. 해당 부분은 firmware를 조작하는 부분으로 gateway 제조사에게 요청을 해 펌웨어 업데이트를 부탁했다. 또한 mqtts 통신이 가능하도록 SSL 인증서를 발급하여 메시지를 암호화하여 전송할 수 있다

다음 첫 번째 사진과 같이 mqtt broker가 설치된 host 및 port , TLS 등이 변경됨을 확인할 수 있다. 두 번째 사진을 통해 gateway에 연결된 센서의 구상도를 확인할 수 있다.


MQTT Broker

MQTT 통신은 발행-구독의 방식으로 메세지를 전달한다. 게이트웨이가 발행한 메세지를 구독한 클라이언트에게 전달해주기 위해 중간에 broker 역할이 필요하다. 시중에 다양한 mqtt broker가 존재하지만 우리 프로젝트에서는 Eclipse의 오픈 소스인 Mosquitto를 사용했다.

아래는 Mosquitto broker를 설치 후 설정을 변경할 수 있는 ‘mosquitto.conf’ 파일의 내용 일부이다. 게이트웨이와 통신이 가능하도록 port 및 SSL 인증서 파일의 경로를 설정했다.

다음 포스팅부터 본격적인 개발 하면서 만났던 issue or 로직을 포스팅하겠다…!

profile
끄적끄적

0개의 댓글