본문 바로가기

집 꾸미기/스마트한 집

Zigbee 코디네이터 무선으로 Home assistant에 연결하기

반응형

HA+ESP8266+CC2530+CC2591 = Zigbee2Mqtt

 

 

home assistant 에서 zigbee2mqtt 를 사용중이다.

zigbee 장치는 보통 전용 브랜드의 게이트웨이나 브릿지에 연결된다 (휴 브릿지, 트로드프리 게이트웨이 등)

당연히 다른 회사 장비들 끼리는 호환이 제대로 되지 않고 브릿지도 비싸다.

Home assistant 를 꾸미고 범용으로 사용할 수 있는 zigbee coordinator 를 사용하는 방법이 몇가지 있는데 지원하는 장치가 많은 방식으로 가장 유명한게 ZHA와 Zigbee2mqtt 가 있다.

이번에 꾸민 HA+ESP8266+CC2530+CC2591 의 대략적인 동작 형태를 먼저 설명해보자면 아래와 같다.

동작 형태 HA+ESP8266+CC2530+CC2591

  1. Coordinator (CC2530+CC2591)를 serial 로 ESP8266 에 연결
  2. ESP8266 은 tcp serial server 로 동작
  3. zigbee2mqtt 는 hass.io 애드온으로 동작, ESP8266 tcp 서버에서 데이터 받아서 mqtt 서버로 보내줌
  4. hass.io 에 설치한 mqtt broker(서버) 에서 수신
  5. Home asssitant 통합구성요소에서 mqtt 장치 확인 및 사용
    + zigbee 장치 coordinator 와 페어링. zigbee2mqtt 프론트 페이지에서 페어링 모드 설정 및 결과 확인 가능

보통 CC2531 을 USB에 꽃아서 사용하는데 위와 같이 진행 한 이유는 NAS는 신발장 안에 있어서 zigbee 장치를 사용하 는 위치가 너무 멀어서다. 이렇게 esp8266과 합체하면 wifi로 연결되니 멀리 던져놓아도 된다. 그리고 CC2530+CC2591 이 무선 신호 증폭이 되어서 사용 가능 범위가 훨씬 넓다. (대략 2~3배)


생각보다 해야 할 일들이 많다.

준비물

  1. CC2530+CC2591 : 알리 익스프레스에서 구입 (약 8$ + 배송비 2$)
  2. ESP8266 또는 ESP32 구입 : ESP32가 더 좋긴 한데 집에 굴러다니는 wemos d1 mini(esp8266) 사용. (약 2$ + 배송비 0~2$)
  3. 점퍼 케이블, 인두와 납 : ESP8266 핀이 납땜 안되있을 경우 납땜이 필요하다.
  4. CC 디버거 또는 라즈베리파이 또는 ESP8266 : CC2530 에 펌웨어를 넣기 위해 필요하다. 나는 라즈베리파이 사용

진행방법

  1. 라즈베리파이로 펌웨어를 넣어준다.
    아래와 같이 연결해줘야 한다. 핀맵 그림을 참조하자.
Raspberry Pi        CC2531
GND            GND
Pin 38            DD
Pin 36            DC
Pin 35            RST

  1. ESP8266 펌웨어를 TASMOTA ZBbridge 버전으로 넣어준다. (이 버전만 tcp server 사용 가능하다)
    아래 사이트에서 tasmota-zbbridge.bin.gz 를 받아서 라이팅 하면 된다.
    http://ota.tasmota.com/tasmota/release/
  2. 라이팅은 https://github.com/tasmota/tasmotizer 를 설치하고 esp8266(wemos d1 mini) 를 usb로 연결하고 바로 라이팅 하면 된다.
  3. wemos d1 mini가 재부팅 되면 wifi 로 TASMOTA 에 접속한 후 사용할 와이파이 SSID 와 비밀번호를 넣어준다.
    그리고 재부팅 되는데 config에서 module 설정, General(18)로 재빨리 바꾸고 저장해준다.
    1분쯤 지나면 wemos d1 mini가 초기화된다. zigbee 장치가 아니라서 그런 듯 싶다.
  4. wemos d1 mini 와 CC2531을 연결해준다
    여기서는 wemos d1 mini 의 D7, D8 을 TX RX 로 활용하였다.
    ESP8266 CC2530
    3v3 VCC
    GND GND
    TX P02
    RX P03
    GND P20

  1. TASMOTA 설정
    라이팅된 wemos d1 mini의 TASMOTA 로 접속해서 "Configuration", "configure Module" 에서 Rx, Tx pin을 맞게 지정해준다.
    그리고 Tasmota 메인 화면에서 Console 로 들어가서 아래와 같이 입력해놓자.
  2. Rule1 ON System#Boot do TCPStart 8888 endon Rule1 1
  3. 이제 Zigbee2mqtt 의 configuration.yaml 파일을 열어서 해당 wemos d1 mini 에 연결되도록 ip와 포트를 지정해준다.
  4. serial: port: 'tcp://192.168.2.13:20108'

 

이상하게도 Wemos d1 mini는 espeasy 에서 잘 안되더라....

기본 rx, tx pin을 사용해도 안되서 TASMOTA 로 진행했다.

 

이제 원하는 장소에서 usb 전원만 공급하면 원격 zigbee2mqtt 코디네이터로 사용하면 된다.

 

 

참조 링크 : https://www.zigbee2mqtt.io/information/connecting_cc2530.html

반응형