현관문 프로젝트) LED Strip + Door sensor + esp8266 & pi 3편 (AWS IoT)

최재혁·2023년 3월 6일
0

이전 프로젝트에서는 라즈베리파이에 homeassistant를 설치해서 zigbee통신을 통해 led strip을 제어하는 것까지 진행했었습니다.

이번 프로젝트는 동일한 기능을 수행하되, AWS IOT 를 이용하여 만드는 것이 목표입니다.

이유따윈 없습니다. 흥미로운 도전이 될 것 같기 때문입니다.

(아키텍쳐를 먼저 그려봐야했을텐데 나중에 시간되면 그려보겠습니다.)

1. rasberry pi에 desktop 버전 설치

https://ubuntu.com/download/raspberry-pi

core 버전도 있어서 사용해봤는데 명령어가 apt가 아니라 snap을 쓰더군요...

전 snap으로 unzip 해야하는데 아무리 찾아도 안되서 desktop 버전을 설치하려 합니다...

balenaEtcher프로그램을 설치해서 sd카드에 넣어줍시다.

https://www.balena.io/etcher/

(desktop 버전이 2GB쯤 되니까 오래 걸리네요...)

2. 라즈베리파이 설정

2-1. docker 및 docker-compose 설치

https://docs.docker.com/engine/install/ubuntu/

공식 홈페이지대로 도커와 도커 컴포즈를 설치합니다.

2-2. zigbee2mqtt

https://www.zigbee2mqtt.io/guide/getting-started/#prerequisites

공식홈페이지 대로 zigbee2mqtt를 실행시켜봅시다.

Installation

1.) Find the Zigbee-Adapter

$ sudo dmesg
$ ls -l /dev/ttyUSB0

2.) Setup and start Zigbee2MQTT

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

Connect a device

$ docker ps
$ docker logs -f 컨테이너ID

End Device인 door sensor와 motion sensor 장치를 연결시켜줍니다.

localhost:8080으로 접속시 나오는 화면

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

0개의 댓글