본문 바로가기
카테고리 없음

Zigbee에 대하여

by SuldenLion 2026. 6. 14.
반응형
Zigbee — 임베디드 & IoT | IoT 프로토콜 #05
임베디드 & IoT · IoT 프로토콜#05 of 08

// IoT Protocol — IEEE 802.15.4 Mesh Network

Zigbee

Philips Hue에서 Amazon Echo까지. 10억 개의 스마트홈 기기를 연결하는 저전력 메시 네트워크

IoT 프로토콜약 13분중급IEEE 802.15.4 · 메시 · 스마트홈

Section 01

Zigbee란? — 스마트홈 메시의 사실상 표준

Zigbee는 2003년 CSA가 IEEE 802.15.4 위에 정의한 무선 메시 네트워크 프로토콜입니다. 전 세계 누적 10억 개 이상의 기기가 Zigbee로 통신합니다.

🔗
메시의 힘: Zigbee 라우터 기기는 다른 기기의 패킷을 중계합니다. 기기를 추가할수록 네트워크가 강해집니다. 이론상 65,000개 기기까지 하나의 PAN에 연결 가능합니다.

Section 02

프로토콜 스택 구조

물리 계층

IEEE 802.15.4

2.4GHz · 250kbps

MAC 계층

IEEE 802.15.4

CSMA/CA 미디어 접근

네트워크

Zigbee NWK

메시 라우팅 · PAN 관리

보안

AES-128

Network Key + Link Key

애플리케이션

ZCL + ZHA/ZLL

클러스터 상호 운용

최대 기기

65,000개 / PAN

16-bit 짧은 주소

Section 03

네트워크 역할

👑

Coordinator

네트워크 형성, PAN에서 1개, 항상 전원 연결

🔁

Router

패킷 중계, 메시 확장, 상시 전원 필요

😴

End Device

센서·스위치, 대부분 슬립, 배터리 구동

Section 04

ZCL — 제조사 초월 상호 운용성

ZCL(Zigbee Cluster Library)은 기기 유형별로 표준화된 클러스터(기능 단위)를 정의합니다. Philips 전구를 Samsung 앱으로 켤 수 있는 이유입니다.

0x0000Basic — 제조사·모델·FW
0x0006On/Off — 전원 ON/OFF
0x0008Level Control — 밝기 0~254
0x0300Color Control — Hue/Sat/CT
0x0402Temperature Measurement
0x0500IAS Zone — 보안 감지기

Section 05

채널과 Wi-Fi 간섭 회피

Zigbee는 2.4GHz 채널 11~26번을 사용하며 Wi-Fi 1·6·11번과 겹칩니다.

⚠️
권장 채널: Zigbee 채널 15, 20, 25, 26번이 Wi-Fi 1/6/11과 가장 적게 겹칩니다. Zigbee2MQTT의 채널 스캔 기능 또는 configuration.yaml에서 수동 지정하세요.

Section 06

Zigbee2MQTT — 오픈소스 게이트웨이

Zigbee2MQTT는 USB Zigbee 동글을 연결한 Linux 기기에서 실행되는 오픈소스 게이트웨이입니다. 2,500개 이상의 기기를 지원하며 Home Assistant와 자동 통합됩니다.

YAML — Zigbee2MQTT configuration.yaml
# /opt/zigbee2mqtt/data/configuration.yaml
homeassistant: true       # HA 자동 Discovery
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://localhost:1883'
serial:
  port: /dev/ttyUSB0       # USB Zigbee 동글
  adapter: zstack
advanced:
  channel: 25             # Wi-Fi 간섭 최소
  network_key: GENERATE
frontend:
  port: 8080             # 웹 UI

Section 07

실전 코드 — Python MQTT로 기기 제어

Python — Zigbee2MQTT 모니터링 + 온도 자동화
import paho.mqtt.client as mqtt, json
BASE = "zigbee2mqtt"

def on_message(c, ud, msg):
    if "/bridge/" in msg.topic: return
    data = json.loads(msg.payload)
    device = msg.topic.split("/")[1]
    if "temperature" in data:
        print(f"[{{device}}] {{data['temperature']}}°C / {{data.get('humidity','-')}}%")
        if data["temperature"] > 26:
            c.publish(f"{{BASE}}/living_ac/set", json.dumps({{"state":"ON"}}))

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
client.on_message = on_message
client.connect("localhost",1883)
client.subscribe(f"{{BASE}}/#")
client.loop_forever()

Section 08

장단점 및 Matter와의 관계

강점: 성숙한 메시 / 10억+ 기기 생태계 / 배터리 End Device / 65,000 기기 / Zigbee2MQTT 오픈소스 / AES-128 / 저렴한 모듈
⚠️
주의: 스마트폰 직접 연결 불가 / Wi-Fi 동일 대역 간섭 / Matter 등장으로 장기 전략 불확실성
🔮
Zigbee와 Matter: Matter는 Thread/Wi-Fi 위의 새 스마트홈 표준입니다. 신제품은 Matter로 전환 중이지만 기존 Zigbee 인프라는 당분간 지속됩니다.

// Quick Reference

물리 계층IEEE 802.15.4 (2.4GHz · 250kbps)
토폴로지메시 (Coordinator + Router + End Device)
최대 기기65,000개 / PAN
보안AES-128 (Network Key + Link Key)
오픈소스 게이트웨이Zigbee2MQTT · ZHA (Home Assistant)
권장 채널15 · 20 · 25 · 26 (Wi-Fi 간섭 최소)
입문 난이도⭐⭐ 보통
추천 용도스마트홈 · 빌딩 자동화 · 산업 모니터링
반응형

댓글