Giới thiệu về Theengs Gateway, 1 cổng kết nối giữa các thiết bị bluetooth với MQTT

Nếu như bài trước Cài đặt Home Assistant phiên bản supervised trên Orange Pi Zero2 bạn đã có thể cài Orange Pi Zero2 với USB Zigbee như là một Zigbee Gateway để quản lý các thiết bị Zigbee, thì cũng với Orange Pi Zero2 với built-in bluetooth, bạn có thể cài thêm Theengs Gateway để thiết bị này trở thành 1 BLE Gateway kết nối với các thiết bị Bluetooth.

Đầu tiên, phải hiểu khái niệm gateway là gì?

Một Gateway hay một IOT Gateway nói chung, như tên gọi của nó là thiết bị đóng vai trò cổng kết nối giữa giữa các thiết bị IoT, (cảm biến, công tắc, camera, mô tơ, bộ điều khiển v.v.) và mạng internet. Tất cả dữ liệu di chuyển lên mạng internet hoặc ngược lại sẽ đi qua gateway này. IoT gateway thông thường sẽ là một thiết bị phần cứng chuyên dụng, có thiết kế linh hoạt, chịu được môi trường khắc nghiệt, hỗ trợ các chuẩn kết nối khác nhau như: LAN, WiFi, 3G, Zigbee, Z-wave, RF, Bluetooth v.v.

Do đặc trưng giữa các chuẩn kết nối, như Wifi hay Zigbee, RF hay Z-wave là các tần số khác nhau, vì vậy mỗi một IOT Gateway hầu như chỉ hỗ trợ được một chuẩn kết nối, hoặc nhiều nhất là 2 chứ hiếm khi có một gateway có thể kết nối đầy đủ các chuẩn. Hơn nữa, do sự đồng bộ giữa các thiết bị, nên thường một dự án sẽ sử dụng một chuẩn kết nối chung như Zigbee hoặc RF .v.v

Giới thiệu về Theengs Gateway

Theengs Gateway nằm trong bộ sản phẩm của Theengs (https://www.theengs.io) Theengs là một nhóm phần mềm mã nguồn mở trên gihub, bao gồm 6 thành phần khác nhau:

  • Theeng Decoder libary là thư viện bằng C++ giải mã dữ liệu trên các thiết bị cảm biến trở thành dữ liệu JSON.
  • Theeng Gateway là phần mềm viết bằng Python hoạt động như một cầu kết nối BLE với MQTT, và kết nối với các controller khác nhau, trong đó có thể là Home Assistant, OpenHAB, hay NodeRED. Nó sử dụng Theeng Decoder libary bên trên để giải mã dữ liệu và phát dữ liệu qua MQTT.
  • OpenMQTTGateway cũng là một gateway BLE to MQTT nhưng lại sử dụng cho các phần cứng low-end như ESP8266, ESP32, hay Arduino (Microchip AVR).
  • Theengs Explorer, cũng là 1 phần mềm được viết trên Python, thiết kế để phát hiện ra các thiết bị BLE mới, đọc dữ liệu raw của các thiết bị đó, hiển thị ra trên màn hình.
  • Ngoài ra thì có thêm addon của Theengs viết riêng trên Home Assistant. https://gateway.theengs.io/install/install.html#install-theengs-gateway-as-an-add-on-in-home-assistant
  • và 1 app trên Android, dùng chính Bluetooth của diện thoại để kết nối các thiết bị, sử dụng điện thoại như một gateway (cái này có bản bán trả phí trên android nhưng nó cũng là mã nguồn mở nên có thể tự build apk)

Theengs là chơi chữ của từ Things, trong Internet of Things – Internet vạn vật mà người ta vẫn hay nói tới gần đây. Theengs chưa hoạt động được một độc lập mà vẫn cần khá nhiều công sức để cấu hình, xử lý và kết nối giữa các thiết bị IOT và Home Assistant hay NodeRED. Tuy nhiên Theengs Gateway mở ra một khả năng cho các máy tính nhúng mini-pc có sẵn Bluetooth trở thành 1 gateway  bluetooth kết nối các thiết bị IOT BLE mà không cần thêm các công cụ ngoại vi nào. Ví dụ như với Zigbee bạn sẽ cần thêm usb zigbee hay z-wave cũng vậy, thì với Theengs Gateway, chỉ riêng 1 chiếc Orange Pi đã trở thành 1 gateway BLE sau khi cài đặt.

Có cài đặt Theengs Gateway trên Orange Pi không?

Tất cả các thiết bị Orange Pi có sử dụng chip Dual-band như AW859A như Orange Pi Zero2, Orange PI 3 LTS, … hoặc chip mới CDW 20U5622-00 như là Orange PI 4 LTS, …  đều có thể cài được Theengs Gateway. Cách cài đặt cũng rất dễ dàng. Bạn chỉ cần có Python3 và MQTT là đủ. Hầu hết các hệ điều hành Debian hay Ubuntu kernel 5 đều có sẵn Python3. Bạn chỉ cần cài thêm MQTT bằng câu lệnh sau
apt install mqtt

Sau đó cài thêm các gói python hỗ trợ
apt install python3-pip python3-dev

Và cài Theengs Gateway
pip install TheengsGateway

Sau khi cài, dùng lệnh help sau để hiện các tùy chọn

python3 -m TheengsGateway -h

thông thường nếu như bạn cài MQTT trên chính Orange Pi này, bạn sẽ chạy lệnh như sau

python3 -m TheengsGateway -H localhost [-u "username" -p "password"] username và password của MQTT của bạn nếu có

Nếu bạn muốn kiểm tra xem MQTT đã nhận được thông tin mà Theengs Gateway gửi lên chưa, bạn cần cài 1 MQTT client, tôi sử dụng MQTT Explorer. Các bạn có thể cài MQTT Explorer lên PC, sau đó connect đến Orange Pi và đọc các dữ liệu MQTT trên đó. Để cho MQTT Explorer trên PC có thể đọc được server MQTT trên Orange Pi, bạn cần mở cổng MQTT Server trên Orange Pi như sau

nano /etc/mosquitto/mosquitto.conf
thêm dòng này vào file, Ctrl + X và Y để lưu lại

listener 1883 0.0.0.0
allow_anonymous true

Bạn cũng có thể cài TheengGateway add-on trên Home Assistant để bắt đầu sử dụng. Chọn theo thứ tự Settings -> Add-ons -> Add-on store -> ⁞ (Menu) -> Repositories -> thêm vào repo sau https://github.com/mihsu81/addon-theengsgw -> Add.

Sau đó bạn sẽ thấy Add-on của Theengs bên dưới để cài.

Các bạn tham khảo video của tôi cài full Home Assistant supervised, Zigbee2MQTT và  Theeng Gateway trên Orange Pi Zero2 bên dưới

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *