[ESP32 ZigBee Gateway] Bài 1 - Kết Nối ESP32 đến ZigBee Module

♥️Chào các bạn!♥️

Trong các bài viết về Arduino ZigBee Shield ở những kì trước, mình đã giới thiệu chức năng làm Gateway của Arduino ZigBee Shield. Tuy nhiên, mình nhận thấy nếu muốn tạo ra Front-end cho những hệ thống IoT, smarthome,.. thì sử dụng mỗi ZigBee Sheild thôi vẫn chưa đủ, chúng ta cần gửi những dữ liệu thu thập được lên Server thông qua một Gateway có tích hợp WiFi. Khi ý tưởng này chợt lóe lên, mình nghĩ ngay đến ESP32 như một giải pháp vô cùng tiện lợi với chi phí cực thấp.

Mình sẽ hướng dẫn các bạn kết nối ESP32 đến ZigBee Module để tạo thành một Gateway (ESP32 + ZigBee Module), giúp bạn kết nối đến các thiết bị ZigBee khác trên thị trường.

Tiện thể, nếu các bạn có nhu cầu sử dụng board WiFi thì có thể "quẹo lựa" Website của mình để tậu một board ESP32, ESP8266 ưng ý nhất nhé!

Sample Gateway ESP32 ZigBee này mình sẽ cung cấp thư viện mẫu và sample code sẵn cho các bạn nên cứ yên tâm làm theo. OK, chúng ta cùng bắt đầu nào!

I. KẾT NỐI THIẾT BỊ

Mình sử dụng các thiết bị sau:

- ESP32-DevKitC WROOM

- Mạch ra chân cho Zigbee Module E18-MS1PA1-IPX (ZigBee Shield)

Mạch 1 Relay Opto Chọn Mức Kích High/Low 5VDC

- Dây Jumper các loại

- Cảm biến Xiaomi: Cảm biến cửa, nút nhấn,...

- Bóng đèn và dây điện

Thực ra việc kết nối từ ESP32-DevKitC WROOM (mình tạm gọi là ESP32) đến ZigBee Shield khá là đơn giản, các bạn chú ý các chân kết nối VVC, GND, RX, TX là được.

Sơ đồ kết nối:

ESP32-DevKitC WROOM ZigBee Shield
3.3V3.3V
GNDGND
RX2TX
TX2RX

Các bạn chú ý rằng mình Enable chân UART2 trên ESP32 nên chúng ta sẽ sử dụng cặp chân RX2, TX2 trên board. Sau đó kết nối theo kiểu RX - TX, TX - RX như bảng ở trên.

Đối với Relay, do ESP32 chỉ sử dụng điện áp 3.3VDC nên sẽ không đủ kích, mình sử dụng điện áp 5VDC cấp ngoài cho Relay, các bạn kết nối như sau:

DC+: 5VDC (Nguồn ngoài)

DC-: GND (ESP32 -  chân chung)

IN: D4 (ESP32 - chân Signal)

II. NẠP CODE VÀ JOIN CẢM BIẾN

Bước 1: Tiến hành import thư viện dạng .zip của mình: https://github.com/epcbtech/ArduinoZigBee, nếu các bạn chưa quen có thể tham khảo cách import thư viện tại đây

Bước 2: Tải về sample code Sample_ZigBee_ESP32_Gateway, tiến hành build và nạp code cho board ESP32.

*Nếu các bạn chưa biết cách setup board ESP32 lần đầu trên Arduino IDE, hãy tham khảo tại đây

Bước 3: Bạn mở serial/minicom của IDE, chọn baud rate 115200, reset board và đợi một lát để Gateway cho phép khởi động, khi serial/minicom báo "OK" là được sau đó nhấn phím 1 trên bàn phím để cho phép kết nối cảm biến vào mạng, ngược lại nếu báo "NG" thì bạn reset lại board nhập key '0' để đưa cấu hình về mặc định.

Bước 4: Ở cảm biến cửa, bạn nhấn giữ nút reset trên cảm biến cho đến khi đèn cảm biến chớp tắt liên tục, bạn đợi một lát cho cảm biến kết nối tới Gateway là đã xong!

============================================

Vậy tóm lại, chúng ta có gì từ sample gateway này?

- Với việc sử dụng ZigBee ESP32 Gateway, các bạn đã có thể set-up một hệ thống IoT, smarthome với đầy đủ kết nối hiện đại: Internet, ZigBee. Các bạn tha hồ triển khai Front-End với các tùy chọn như gửi dữ liệu lên Server, điều khiển và giám sát qua APP,...

- ZigBee Module với firmware của bên mình hoàn toàn có khả năng tương thích với các thiết bị chuẩn ZigBee trên thị trường như Xiaomi, Ikea,..do đó các bạn có thể yên tâm tích hợp vào hệ thống.

Bật mí ở bài viết sau: Mình sẽ sử dụng sức mạnh của ESP32 để triển khai một ví dụ mẫu về một hệ thống giám sát IoT cơ bản, có sự góp mặt của Internet và ZigBee. Hãy đón chờ trong kì tới nhé!

Hy vọng bài viết này sẽ giúp ích cho các bạn. Nếu các bạn có những thắc mắc cần giải đáp, hãy nhắn tin cho mình qua Fanpage: EPCB hoặc qua Email: epcbtech@gmail.com. Cảm ơn các bạn đã theo dõi!

Chúc các bạn thành công!