현관문 프로젝트) LED Strip + Door,Motion sensor + esp8266 & pi 후기 (AWS IoT)

최재혁·2023년 3월 6일
0

제목 : 밋밋한 현관에 LED를 달아보자

부제 : AWS IOT를 활용해보자

1. 서론

  • 기간 : 2022.10.20 ~ 2023.03.06
  • 비용 : 약 30만원 + α (ec2 및 AWS IoT 비용)

작년 10월부터 기획했던 것이 어느새 5달이 되어서야 마무리가 됬습니다.
왜 이렇게 늦었냐? 하는 질문에 일 + 해외배송 + 맨땅에 헤딩 이라 변명을 해봅니다...

계기는 다른 것 없습니다. 단지 누군가가 만들어 놓은 것을 보고 "나도 할 수 있겠는걸?" 라는 생각을 가지고 만들게 되었고, 이걸 AWS 환경으로 구성한 것 밖에 없습니다.

그렇게 시작된 토이프로젝트 지금부터 간략하게 보겠습니다.

2. 아키텍쳐

아키텍쳐는 다음과 같습니다.

3. 동작 설명

  1. End Device로 부터 라즈베리파이로 zigbee통신
  2. 라즈베리파이에서 zigbee2mqtt를 이용하여 mqtt로 변환
  3. 변환된 mqtt 프로토콜로 AWS IOT Core에 PUSH
  4. Node-red가 설치된 EC2에서 MQTT 수신
  5. EC2에서 날씨 데이터를 기반으로 로직 처리
  6. LED Strip이 연결된 ESP8266에 WLED api 송신
  7. LED 동작

4. 디바이스 소개

4-1. Door sensor & Motion Sensor

4-2. 라즈베리파이 및 zigbee 동글

4-3. 12V 8.5A Power Supply, ESP8266, LED Strip

5. 문이 열렸을 때 & 동작이 감지되었을 때

5-1. 문이 열렸을 때

5-2. 모션센서가 감지 되었을 때

5-3. 영상

5-3. 컬러값

//온도

하늘색: (135, 206, 250) 0도 이하
연녹색 (0, 255, 255) 0도 이상 5도 이하 
연두색: (154, 205, 50) 5도이상 10도이하 
노란색: (255, 255, 0) 10도이상 15도 이하 
주황색: (255, 165, 0) 15도 이상 20도 이하
빨간색: (255, 0, 0) 20도 이상 25이하
자홍색: (255, 0, 255) 25도 이상 30도 이하
//날씨

Clear: #03A9F4 (파란색)
Clouds: #BDBDBD (회색)
Rain: #2196F3 (진한 파란색)
Snow: #E1F5FE (연한 파란색)

파란색에 노란색인걸 보니 봄이 오나 봄

6. Zigbee? MQTT? 그건 뭐죠

6-1. Zigbee란?

Zigbee는 저전력 무선 통신 프로토콜 중 하나입니다. 이 기술은 블루투스와 Wi-Fi와 같은 다른 무선 프로토콜과 함께 인터넷 물건(IoT)에 사용됩니다.

Zigbee는 소형, 저전력, 저비용의 무선 디바이스 간의 통신을 위해 설계되었습니다. 이를 통해 라이트 스위치, 스마트 플러그, 센서, 카메라, 문 잠금장치 등 다양한 디바이스가 서로 통신하며, 이를 통해 스마트 홈, 스마트 빌딩 등의 IoT 시스템이 구축됩니다.

Zigbee는 저전력 통신 기술을 사용하여 배터리 수명을 연장할 수 있으며, 인터넷 연결이 불안정한 환경에서도 안정적으로 작동할 수 있습니다. 또한 멀리 떨어진 디바이스 간의 통신도 가능합니다.

6-2. MQTT란?

MQTT(MQ Telemetry Transport)는 경량 메시지 프로토콜로서, IoT 디바이스와 애플리케이션 간의 통신을 위해 설계되었습니다.

MQTT는 발행-구독(Publish-Subscribe) 모델을 사용합니다. 이는 디바이스가 메시지를 발행하고, 필요한 구독자가 이를 구독하여 메시지를 수신하는 방식입니다. 이를 통해 IoT 시스템에서 디바이스와 서버 간의 효율적인 통신이 가능합니다.

MQTT는 저전력 디바이스와 통신할 수 있도록 설계되었으며, 대역폭 제한이 있는 네트워크에서도 작동합니다. 또한, MQTT는 메시지 브로커(Message Broker)를 사용하여 여러 디바이스와 애플리케이션 간의 통신을 중개합니다. 이를 통해 메시지 전송의 신뢰성과 보안성을 보장할 수 있습니다.

7. AWS IoT Core를 사용한 이유

원래는 HomeAssistant 라는 것을 이용해 구성이 가능합니다.
무료이기도 하고, 동작설정도 간편하고 구성도 쉽게 할 수 있다는 장점이 있습니다.

그러나 HomeAssistant는 라즈베리파이에서 설치해야만 하는 단점이 있습니다.
게다가 추후에 확장 되고, 데이터 수집이 필요한 경우가 생길 때 라즈베리파이에서만 처리해야한다는 단점이 존재했습니다.

그렇기에 확장성 및 의존성을 줄이기 위해 AWS IoT를 사용하게 되었습니다.

8. Device 구성, AWS 구성, 연결 등등

8-1. 초기 구상

https://velog.io/@vnfmsqkek3/%ED%98%84%EA%B4%80%EB%AC%B8%EC%97%90-led%EC%8A%A4%ED%8A%B8%EB%A0%99%EC%9D%84-%EC%84%A4%EC%B9%98%ED%95%B4%EB%B3%B4%EC%9E%90-%EA%B5%AC%EC%83%81


8-2. 부품

https://velog.io/@vnfmsqkek3/%ED%98%84%EA%B4%80%EB%AC%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-LED-Strip-Door-sensor-Arduino-1%ED%8E%B8

8-3. HomeAssistant로 구성

https://velog.io/@vnfmsqkek3/%ED%98%84%EA%B4%80%EB%AC%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-LED-Strip-Door-sensor-Arduino-1%ED%8E%B8

8-4. AWS IOT Core을 위한 단계

https://velog.io/@vnfmsqkek3/%ED%98%84%EA%B4%80%EB%AC%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-LED-Strip-Door-sensor-esp8266-pi-3%ED%8E%B8-AWS-IoT

8-5. 라즈베리파이 구성

https://velog.io/@vnfmsqkek3/%ED%98%84%EA%B4%80%EB%AC%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-LED-Strip-Door-sensor-esp8266-pi-4%ED%8E%B8-AWS-IoT

8-6. ESP8266 구성

https://velog.io/@vnfmsqkek3/%ED%98%84%EA%B4%80%EB%AC%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-LED-Strip-Door-sensor-esp8266-pi-5%ED%8E%B8-AWS-IoT

8-7. EC2 node-red 구성

https://velog.io/@vnfmsqkek3/%ED%98%84%EA%B4%80%EB%AC%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-LED-Strip-Door-sensor-esp8266-pi-6%ED%8E%B8-AWS-IoT

9. 뭐가 제일 힘들었나?

가장 빡쎘던 점은 데이터를 AWS IOT에 올리는 것이 였습니다.
라즈베리파이와 End Device끼리 데이터를 주고받는 것 까지는 원활했는데, 이를 AWS IOT Core 서비스와 연동하자니 관련 문서가 별로 없어 구성하는데 애를 먹었습니다. 결국에는 공식문서 뒤져가며 스택오버플로우랑 아두이노 포럼까지 친해질때 쯤 데이터가 올라가는 것을 보고 감격을 금치 못했습니다. ㅠㅠ

10. 좀 더 개선해야할 점은?

  1. EC2 : 지금 퍼블릭 서브넷에 0.0.0.0/0으로 돌아가고 있다는 점이 가장 크나큰 개선점입니다.

  2. 배선 : 테스트 하느라 브레드보드 (일명 빵판)에 구성되어 있습니다. 18 AWG 전선으로 납땜으로 고정을 하고 커넥터로 연결할 생각입니다.

  3. 설치 : 위에 것들을 마무리 하면 최종적으로 디퓨저를 LED Strip에 달아 먼지와 충격으로 부터 보호할 수 있도록 만들 계획입니다.

11. 소감 한말씀

IOT는 돈이 많이 드는 취미인 것 같습니다...

profile
한다면 하는 남자! 줄여서 한남!

1개의 댓글

comment-user-thumbnail
2023년 3월 9일

도전하는 모습이 멋져요.

답글 달기