일상과 생활/일상이야기

[스마트홈 프로젝트 - 04] Zigbee 센서 추가하기 - 1

다과랜드 2021. 10. 30. 10:35
728x90

안녕하세요!

다과랜드입니다.

 

 

이번에는 여러가지 센서를 추가해보기로 했다.

센서에는 문열림 센서, 온습도 센서, 모션 센서 등 정말 많은 종류가 있다.

 

습도에 따른 환풍기 자동화를 생각하고 있기 때문에 온습도 센서는 꼭 필요했다.

 

Zigbee 프로토콜

스마트 홈 구축을 위한 많은 센서들은 Zigbee라는 프로토콜을 사용한다.

프로토콜은 어떤 일종의 소통 방법을 의미한다.

 

어떤 센서는 Wifi를 통해서 정보를 전달하고, 어떤 센서는 Zigbee라는 방법을 통해서 정보를 전달한다.

이외에도 Z-Wave, Bluetooth 등 다양한 방식이 있다.

 

Zigbee의 장점은 저전력이라는 것이다.

배터리 소모가 크지 않기 때문에 센서에 코인 배터리를 넣고 2년은 가뿐히 넘긴다고 한다.

그리고 무엇보다 보편화 되어있고, 가격이 싸다.

 

그래서 Zigbee를 사용하는 여러 센서들을 구비하기로 했다.

이전에 나는 라즈베리파이를 이용해서 Home assistant를 설치했다.

문제는 라즈베리파이는 zigbee를 지원하지 않는다.

 

 

Zigbee stick 구매

라즈베리 파이는 zigbee를 지원하지 않기 때문에 통신할 수 있도록 만들어주는 동글 같은게 필요하다.

무선랜 와이파이 모듈 처럼(데스크탑에 usb처럼 꽂는거) zigbee도 stick이 있다.

 

가장 많이"썼던" 칩셋인 CC2531을 구매하기로 했다.

먼저 가장 저렴하다.

그리고 많이 "썼던"인 이유는, 이 칩셋이 성능도 별로 좋지 않아 감당할 수 있는 기기수도 얼마되지 않고,

무선 커버리지도 짧아서 이젠 사람들이 잘 안쓴다.

하지만 무엇보다.. 가격이 저렴하다는 특징때문에 나는 이걸 골랐다.

그렇게 많은 기기를 당장 쓰지도 않을거고, 지금은 괜찮을거라고 판단했기 때문이다.

 

Zigbee2mqtt 사이트에 따르면, 현재(2021년 10월) 기준으로 추천되는 칩셋은 다음과 같다고 한다.

  • Recommended adapters are the ones with a CC2652R, CC2652P, CC2652RB or CC1352P chip (e.g. the Electrolama zig-a-zig-ah! (zzh!)). They are very powerful, have good range, are well tested with Zigbee2MQTT and can be flashed without additional hardware.

좋은 대신에 가격은 3~4배라는 사실은 무시할 수 없다.

나중에 업그레이드 하든지 해야겠다.

 

참고로, 이 CC2531를 사용하기 위해서는 펌웨어를 직접 flashing (밀고 재설치)하는 과정이 필요한데,

이 과정이 여간 번거로운게 아니다. 직접 납땜을 하거나 아니면 칩셋보다 더 비싼 연결 커넥터를 사거나 해야된다.

하지만 알아본 결과, 이미 flashing 된 칩셋을 알리에서 팔고 있었다.

무려 $6이라는 저렴한 가격에 구매를 했다.

 

CC2531 Zigbee USB dongle

 

알리에서 이렇게 팔고 있다. Sonoff라는 회사에서 펌웨어를 미리 플래싱 해둔 듯 하다.

이렇게 구매를 했고, 한 5일 정도 후에 받은 듯 하다. 배송이 굉장히 빠르다.

 

CC2531

 

 

Zigbee2mqtt

Zigbee2mqtt 모식도

 

센서, 전등과 같은 endpoint 기기들은 zigbee 프로토콜을 통해 통신다.

그리고 이 신호들을 mqtt의 형태로 바꾸고, 최종적으로 HA와 통신하게 된다.

여기서 zigbee로 mqtt로 바꿔주는 녀석이 Zigbee2MQTT이다.

 

MQTT의 자세한 정보는 아래를 참고하자.

 

MQTT - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Publish-subscribe based messaging protocol MQTTMQTT logoStatusPublishedYear started1999Latest version5.0[1]7 March 2019OrganizationOASISCommitteeOASIS Message Queuing Telemetry Transpo

en.wikipedia.org

 

먼저 구매한 CC2531 stick를 라즈베리파이의 usb단자에 꽂고,

 

 

 

HA의 Supervisor > System > Host의 점 세개 > Hardware에 가면 창이 하나 뜬다.

거기서 CC2531 글자를 잘 찾고, DEVNAME을 잘 찾아서 적어둔다. 리눅스 상에서 /dev/~ 가 USB의 위치이다. (마치 포트 1번 2번과 비슷하게)

 

 

이후에 아까 모식도에서 본 것과 같이 Broker와 Zigbee2mqtt 두종류가 필요하다.

먼저 Broker를 설치한다.

HA의 Supervisor > Add-on store > Mosquitto broker 검색을 하면 아래와 같은 설치페이지를 볼 수 있다.

바로 Install 버튼을 눌러서 설치해주자.

 

설치가 완료되면 Configuration에서 유저를 지정해주면 좋다.

굳이 안해도 되긴하니 귀찮으면 안해도 된다. 하지만 보안상 해주는게 좋다.

logins:
  - username: 유저이름
    password: 비밀번호

와 같이 유저 정보를 알아서 설정해주자.

 

 

다음은 Zigbee2mqtt를 설치한다.

 

GitHub - zigbee2mqtt/hassio-zigbee2mqtt: Zigbee2mqtt Home Assistant add-on

Zigbee2mqtt Home Assistant add-on. Contribute to zigbee2mqtt/hassio-zigbee2mqtt development by creating an account on GitHub.

github.com

자세한 설치법은 공식 github 홈페이지에 잘 나와있다.

핵심은 HA의 Supervisor → Add-on store → ⋮ → Manage add-on repositories: 에 주소 입력창에 아래 주소를 입력후 add를 하면 된다. -edge말고 그냥 버젼 설치하면 된다. edge버젼은 베타테스터처럼 출시전 기능을 쓸 수 있다고 한다.

https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

 

이것도 설치 후 configuration을 진행해주자

다음과 같이 알맞게 수정해주면 된다.

mqtt:
  base_topic: zigbee2mqtt
  user: 유저이름
  password: 비밀번호
serial:
  port: /dev/ttyACM0

mqtt: 부분에는 아까 broker 설정에서 사용한 유저이름과 비밀번호를 작성하고,

serial: 부분에는 위에서 확인한 usb 단자의 위치를 적어주면 된다.

 


 

다음 편에서는 직접 zigbee 센서를 페어링 해보겠다.

반응형