작년 10월부터 기획했던 것이 어느새 5달이 되어서야 마무리가 됬습니다.
왜 이렇게 늦었냐? 하는 질문에 일 + 해외배송 + 맨땅에 헤딩 이라 변명을 해봅니다...
계기는 다른 것 없습니다. 단지 누군가가 만들어 놓은 것을 보고 "나도 할 수 있겠는걸?" 라는 생각을 가지고 만들게 되었고, 이걸 AWS 환경으로 구성한 것 밖에 없습니다.
그렇게 시작된 토이프로젝트 지금부터 간략하게 보겠습니다.
아키텍쳐는 다음과 같습니다.
//온도
하늘색: (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 (연한 파란색)
파란색에 노란색인걸 보니 봄이 오나 봄
Zigbee는 저전력 무선 통신 프로토콜 중 하나입니다. 이 기술은 블루투스와 Wi-Fi와 같은 다른 무선 프로토콜과 함께 인터넷 물건(IoT)에 사용됩니다.
Zigbee는 소형, 저전력, 저비용의 무선 디바이스 간의 통신을 위해 설계되었습니다. 이를 통해 라이트 스위치, 스마트 플러그, 센서, 카메라, 문 잠금장치 등 다양한 디바이스가 서로 통신하며, 이를 통해 스마트 홈, 스마트 빌딩 등의 IoT 시스템이 구축됩니다.
Zigbee는 저전력 통신 기술을 사용하여 배터리 수명을 연장할 수 있으며, 인터넷 연결이 불안정한 환경에서도 안정적으로 작동할 수 있습니다. 또한 멀리 떨어진 디바이스 간의 통신도 가능합니다.
MQTT(MQ Telemetry Transport)는 경량 메시지 프로토콜로서, IoT 디바이스와 애플리케이션 간의 통신을 위해 설계되었습니다.
MQTT는 발행-구독(Publish-Subscribe) 모델을 사용합니다. 이는 디바이스가 메시지를 발행하고, 필요한 구독자가 이를 구독하여 메시지를 수신하는 방식입니다. 이를 통해 IoT 시스템에서 디바이스와 서버 간의 효율적인 통신이 가능합니다.
MQTT는 저전력 디바이스와 통신할 수 있도록 설계되었으며, 대역폭 제한이 있는 네트워크에서도 작동합니다. 또한, MQTT는 메시지 브로커(Message Broker)를 사용하여 여러 디바이스와 애플리케이션 간의 통신을 중개합니다. 이를 통해 메시지 전송의 신뢰성과 보안성을 보장할 수 있습니다.
원래는 HomeAssistant 라는 것을 이용해 구성이 가능합니다.
무료이기도 하고, 동작설정도 간편하고 구성도 쉽게 할 수 있다는 장점이 있습니다.
그러나 HomeAssistant는 라즈베리파이에서 설치해야만 하는 단점이 있습니다.
게다가 추후에 확장 되고, 데이터 수집이 필요한 경우가 생길 때 라즈베리파이에서만 처리해야한다는 단점이 존재했습니다.
그렇기에 확장성 및 의존성을 줄이기 위해 AWS IoT를 사용하게 되었습니다.
가장 빡쎘던 점은 데이터를 AWS IOT에 올리는 것이 였습니다.
라즈베리파이와 End Device끼리 데이터를 주고받는 것 까지는 원활했는데, 이를 AWS IOT Core 서비스와 연동하자니 관련 문서가 별로 없어 구성하는데 애를 먹었습니다. 결국에는 공식문서 뒤져가며 스택오버플로우랑 아두이노 포럼까지 친해질때 쯤 데이터가 올라가는 것을 보고 감격을 금치 못했습니다. ㅠㅠ
EC2 : 지금 퍼블릭 서브넷에 0.0.0.0/0으로 돌아가고 있다는 점이 가장 크나큰 개선점입니다.
배선 : 테스트 하느라 브레드보드 (일명 빵판)에 구성되어 있습니다. 18 AWG 전선으로 납땜으로 고정을 하고 커넥터로 연결할 생각입니다.
설치 : 위에 것들을 마무리 하면 최종적으로 디퓨저를 LED Strip에 달아 먼지와 충격으로 부터 보호할 수 있도록 만들 계획입니다.
IOT는 돈이 많이 드는 취미인 것 같습니다...
도전하는 모습이 멋져요.