// IoT Protocol — IEEE 802.15.4 Mesh Network
Zigbee
Philips Hue에서 Amazon Echo까지. 10억 개의 스마트홈 기기를 연결하는 저전력 메시 네트워크
Section 01
Zigbee란? — 스마트홈 메시의 사실상 표준
Zigbee는 2003년 CSA가 IEEE 802.15.4 위에 정의한 무선 메시 네트워크 프로토콜입니다. 전 세계 누적 10억 개 이상의 기기가 Zigbee로 통신합니다.
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 앱으로 켤 수 있는 이유입니다.
Section 05
채널과 Wi-Fi 간섭 회피
Zigbee는 2.4GHz 채널 11~26번을 사용하며 Wi-Fi 1·6·11번과 겹칩니다.
Section 06
Zigbee2MQTT — 오픈소스 게이트웨이
Zigbee2MQTT는 USB Zigbee 동글을 연결한 Linux 기기에서 실행되는 오픈소스 게이트웨이입니다. 2,500개 이상의 기기를 지원하며 Home Assistant와 자동 통합됩니다.
# /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로 기기 제어
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
댓글