이전 프로젝트에서는 라즈베리파이에 homeassistant를 설치해서 zigbee통신을 통해 led strip을 제어하는 것까지 진행했었습니다.
이번 프로젝트는 동일한 기능을 수행하되, AWS IOT 를 이용하여 만드는 것이 목표입니다.
이유따윈 없습니다. 흥미로운 도전이 될 것 같기 때문입니다.
(아키텍쳐를 먼저 그려봐야했을텐데 나중에 시간되면 그려보겠습니다.)
https://ubuntu.com/download/raspberry-pi
core 버전도 있어서 사용해봤는데 명령어가 apt가 아니라 snap을 쓰더군요...
전 snap으로 unzip 해야하는데 아무리 찾아도 안되서 desktop 버전을 설치하려 합니다...
balenaEtcher프로그램을 설치해서 sd카드에 넣어줍시다.
(desktop 버전이 2GB쯤 되니까 오래 걸리네요...)
https://docs.docker.com/engine/install/ubuntu/
공식 홈페이지대로 도커와 도커 컴포즈를 설치합니다.
https://www.zigbee2mqtt.io/guide/getting-started/#prerequisites
공식홈페이지 대로 zigbee2mqtt를 실행시켜봅시다.
1.) Find the Zigbee-Adapter
$ sudo dmesg
$ ls -l /dev/ttyUSB0
version: '3.8'
services:
mqtt:
image: eclipse-mosquitto:2.0
restart: unless-stopped
volumes:
- "./mosquitto-data:/mosquitto"
ports:
- "1883:1883"
- "9001:9001"
command: "mosquitto -c /mosquitto-no-auth.conf"
zigbee2mqtt:
container_name: zigbee2mqtt
restart: unless-stopped
image: koenkk/zigbee2mqtt
volumes:
- ./zigbee2mqtt-data:/app/data
- /run/udev:/run/udev:ro
ports:
- 8080:8080
environment:
- TZ=Europe/Berlin
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
# Let new devices join our zigbee network
permit_join: true
# Docker Compose makes the MQTT-Server available using "mqtt" hostname
mqtt:
base_topic: zigbee2mqtt
server: mqtt://mqtt
# Zigbee Adapter path
serial:
port: /dev/ttyUSB0
# Enable the Zigbee2MQTT frontend
frontend:
port: 8080
# Let Zigbee2MQTT generate a new network key on first start
advanced:
network_key: GENERATE
$ find
./docker-compose.yml
./zigbee2mqtt-data/configuration.yaml
# First start
$ docker compose up -d
# Check the logs
$ docker compose logs -f
$ docker ps
$ docker logs -f 컨테이너ID
End Device인 door sensor와 motion sensor 장치를 연결시켜줍니다.