Mục lục:

TextPlayBulb: REST Enabled PlayBulb sử dụng Raspberry Pi 3, BLE và Telegram: 3 bước
TextPlayBulb: REST Enabled PlayBulb sử dụng Raspberry Pi 3, BLE và Telegram: 3 bước

Video: TextPlayBulb: REST Enabled PlayBulb sử dụng Raspberry Pi 3, BLE và Telegram: 3 bước

Video: TextPlayBulb: REST Enabled PlayBulb sử dụng Raspberry Pi 3, BLE và Telegram: 3 bước
Video: Sylvania Zigbee Garden Lights with Nanoleaf Hub (Apple Homekit) 2024, Tháng mười một
Anonim
TextPlayBulb: REST Enabled PlayBulb sử dụng Raspberry Pi 3, BLE và Telegram
TextPlayBulb: REST Enabled PlayBulb sử dụng Raspberry Pi 3, BLE và Telegram

Tài liệu hướng dẫn này cho thấy cách kết nối với đèn LED Bluetooth PlayBulb Color bằng Python, Raspberry Pi 3 và thư viện Bluetooth và để mở rộng các điều khiển thông qua API REST cho một kịch bản IoT và như một giới hạn, dự án cũng chỉ ra cách mở rộng API REST để kiểm soát PlayBulb của bạn qua ứng dụng khách văn bản IM, ví dụ: Telegram, chẳng hạn như nói chuyện với ngôi nhà tự động của bạn qua tin nhắn.

Dự án này được xây dựng trên 3 mô-đun:

  1. pyBulbDriver: Kết nối với PlayBulb qua BLE gatttool và python.
  2. pyBulbServer: Sử dụng pyBulbDriver để hiển thị điều khiển playbulb thông qua API REST.
  3. pyBulbMessenger: Kết nối với bot telegram để gửi và nhận lệnh thông qua ứng dụng telegram được cài đặt trên bất kỳ điện thoại thông minh nào và sử dụng API REST để ra lệnh cho PlayBulb.

Bạn có thể sao chép dự án thông qua kho lưu trữ git:

Mục tiêu của Dự án:

Để tạo một công cụ cơ bản để tương tác với bóng đèn của bạn thông qua các phương thức khác nhau, chẳng hạn như nhắn tin ngay bây giờ, các tình huống trong tương lai có thể liên quan đến lệnh bằng giọng nói, cử chỉ với đèn… v.v.

Các tài nguyên khác được sử dụng để tạo có thể hướng dẫn này:

  • Giao thức Bluetooth PlayBulb Color:
  • Kết nối Python với Playbulb qua Bluetooth:
  • Thiết lập bot điện tín:

Sự đóng góp

pyBulbDriver được mở rộng để linh hoạt hơn và được tham số hóa để dễ dàng mở rộng trong tương lai, xây dựng một kịch bản cho phép bạn thao tác với việc nhắn tin cho đèn của mình. Giao diện đơn giản để thử nghiệm và tìm kiếm xung quanh.

Giới hạn

Trình điều khiển được viết cho PlayBulb Color, cho các loại PlayBulb khác, ví dụ: Ban đầu hoặc nến, mã bluetooth trong pyBulbDriver cần phải thay đổi theo giao thức nói trên.

Bạn cần đăng ký một tài khoản telegram và nhận một khóa api, bạn thêm vào trong pyBulbMessenger.py, thực hiện theo cách thiết lập bot telegram trong tài nguyên của O.

Bước 1: Thiết lập dự án

1. Lấy khóa API của bạn từ Telegram

> Làm theo hướng dẫn hiện tại để lấy khóa API của bạn

> Thêm khóa api của bạn vào api biến trong pyBulbMessenger.py

2. Đặt tên PlayBulb của bạn trong pyBulbDriver

> Để gatttool tìm thấy thiết bị ghi, hãy đặt tên thiết bị của bạn được quét bằng pyBulbDriver.scanForBulb ("PLAYBULB COLOR"). Có thể tìm thấy ví dụ trong pyBulbServer.py để thiết lập Máy chủ REST của bạn

3. Để bắt đầu dự án

> Bạn cần bắt đầu pyBulbServer.py trước, sau đó là pyBulbMessenger.py để nhắn tin. Bạn có thể kiểm tra các lệnh pyBulbServer bằng CURL.

4. Vật liệu cần thiết:

> Raspberry Pi 3 và PlayBulb Color hoặc PlayBulb Candle

> Cài đặt Telegram cho Android hoặc iOS

5. Cài đặt Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Bước 2: Xem qua mã

pyBulbDriver.py

pyBulbDriver chứa các lớp trình điều khiển để kết nối với PlayBulb qua BLE

pyBulbDriver cũng có thể được sử dụng cho bất kỳ dự án chung nào khác, vì nó chỉ chứa mã để quét và thiết lập kết nối playBulb.

Các API chính cho giao diện Ứng dụng Người dùng:

  • scanForBulb (tên thiết bị: Chuỗi)> Để quét PlayBulb hoặc PlayBulb qua tên thiết bị của chúng
  • setBulbColor (s: int, r: int, g: int, b: int)> Để xác định các giá trị độ sáng và màu RGB (0 đến 255)
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> Tương tự như setBulbColor, nhưng bao gồm kiểu hiệu ứng và tốc độ. Để biết thêm, hãy kiểm tra phần Hiệu ứng giao thức màu

Trong lớp này, bạn cũng sẽ tìm thấy các phương thức trợ giúp khác dành cho việc kiểm tra tính toàn vẹn của dữ liệu chứ không phải cho giao diện người dùng

  • chuyển đổiRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (số)
  • checkModeAndSpeed (mode, offbeat, onbeat)
  • checksRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer hiển thị giao diện Ứng dụng Người dùng thành các siêu liên kết RESTful bằng cách sử dụng PUT và JSON để gửi và nhận dữ liệu tới pyBulbDriver. Ngoài ra, quá trình quét và khởi tạo kết nối BLE được thực hiện khi máy chủ được kích hoạt.

pyBulbResource (Tài nguyên) chuyển kênh các cuộc gọi đến Máy chủ REST bằng cách sử dụng màu sắc và hiệu ứng để xác định lệnh bóng đèn.

Ví dụ Để chỉ huy một hiệu ứng:

127.0.0.1/bulb/effect

JSON POST> {data ':' {"s": 0, "r": 255, "g": 255, "b": 255, "m": 1, "on": 15, "off": 15 } '}

pyBulbMessenger.py

Cuối cùng, pyBulbMessenger chịu trách nhiệm giao tiếp bot Telegram được kết nối với ứng dụng khách điện thoại thông minh telegram của bạn. Để biết thêm chi tiết về cách cấu hình và kết nối với bot telegram, hãy kiểm tra

cmdHandler (bot, update) là nơi các lệnh văn bản được xác định và kết nối với PlayBulb thông qua API RESTful.

Hiện tại dự án chỉ có văn bản, một mục tiêu khác là cũng gửi tin nhắn thoại đã ghi âm sẽ được gửi đến trình nhận dạng giọng nói để kích hoạt các lệnh khác (Chưa được thực hiện).

Bước 3: Kết luận

Thiết kế kiến trúc hiện tại thiên về sự đơn giản hóa hơn là khả năng mở rộng. Vẫn còn thiếu kết nối nhóm, cũng có nhiều ứng dụng liên quan đến nhắn tin cho bóng đèn để ra lệnh thẳng hoặc tương tác vui tươi vẫn đang được nghiên cứu.

Bằng cách đăng ký git repo hoặc theo dõi, sẽ có thêm thông tin chi tiết về các bản cập nhật này. Lý do cho một dự án như vậy là để giao diện playBulb và tạo ra một giao diện RESTful để dễ phát triển trong IoT (kịch bản internet vạn vật) nhưng cũng để mở ra cơ hội sử dụng các phương thức khác nhau thông qua điện tín IM Client như hình ảnh, giọng nói và văn bản để tương tác với các thiết bị từ góc độ nghiên cứu.

Đề xuất: