Агуулгын хүснэгт:

TextPlayBulb: Raspberry Pi 3, BLE болон Telegram ашиглан PlayBulb -ийг REST идэвхжүүлсэн: 3 алхам
TextPlayBulb: Raspberry Pi 3, BLE болон Telegram ашиглан PlayBulb -ийг REST идэвхжүүлсэн: 3 алхам

Видео: TextPlayBulb: Raspberry Pi 3, BLE болон Telegram ашиглан PlayBulb -ийг REST идэвхжүүлсэн: 3 алхам

Видео: TextPlayBulb: Raspberry Pi 3, BLE болон Telegram ашиглан PlayBulb -ийг REST идэвхжүүлсэн: 3 алхам
Видео: Как работает Spring Boot и что такое auto-configuration. Магия? 2024, Арваннэгдүгээр
Anonim
TextPlayBulb: Raspberry Pi 3, BLE болон Telegram ашиглан PlayBulb -ийг REST идэвхжүүлсэн
TextPlayBulb: Raspberry Pi 3, BLE болон Telegram ашиглан PlayBulb -ийг REST идэвхжүүлсэн

Энэхүү зааварчилгаа нь Python, Raspberry Pi 3, Bluetooth номын санг ашиглан PlayBulb Color bluetooth LED чийдэнг хэрхэн холбох, IOT сценарийн хяналтыг REST API -ээр хэрхэн өргөтгөх, мөн хэрхэн өргөжүүлэхийг төсөл харуулж байна. REST API нь таны PlayBulb -ийг IM текст клиентээр удирдах боломжтой Telegram, жишээ нь автомат гэртэйгээ текстээр ярих.

Энэхүү төсөл нь 3 модуль дээр суурилсан болно.

  1. pyBulbDriver: PlayBulb руу BLE gatttool болон python -ээр холбогдоно уу.
  2. pyBulbServer: pyBulbDriver -ийг ашиглан REST API -ээр тоглуулах чийдэнгийн хяналтыг ил гаргах.
  3. pyBulbMessenger: Аливаа ухаалаг гар утсан дээр суулгасан телеграм клиентээр дамжуулан командыг илгээх, хүлээн авахын тулд телеграм бот руу холбогдож, REST API ашиглан PlayBulb -д тушаал өгнө.

Та төслийг git репозитороор клон хийх боломжтой:

Төслийн зорилго:

Одоогоор мессеж бичих гэх мэт өөр өөр аргаар чийдэнтэйгээ харьцах үндсэн хэрэгслийг бий болгохын тулд ирээдүйн хувилбарууд нь ярианы команд, дэнлүү дохио өгөх гэх мэт байж болно.

Энэхүү зааварчилгааг үүсгэхэд ашигласан бусад эх сурвалжууд:

  • PlayBulb өнгөт Bluetooth протокол:
  • Python-ийг Bluetooth ашиглан Playbulb руу холбох:
  • Цахилгаан ботийг тохируулах:

Хувь нэмэр

pyBulbDriver нь илүү уян хатан болж, ирээдүйд өргөтгөлийг хялбарчлах үүднээс параметрүүдийг нь өөрчилж, дэнлүүгээ мессеж бичих боломжийг олгодог хувилбарыг боловсруулсан болно. Туршилт хийх, хуурах энгийн интерфэйс.

Хязгаарлалт

Жолооч нь PlayBulb Color -д зориулагдсан бөгөөд бусад төрлийн PlayBulb -д зориулагдсан болно. Эх эсвэл лаа, pyBulbDriver дээрх bluetooth кодыг дээр дурдсан протоколын дагуу өөрчлөх шаардлагатай.

Та телеграм данс бүртгүүлж, pyBulbMessenger.py дээр нэмсэн api түлхүүрийг авахын тулд өөр эх сурвалж дахь телеграм ботын тохиргоог дагана уу.

Алхам 1: Төслийг тохируулах

1. Telegram -аас API түлхүүрээ авах

> API түлхүүрээ авахын тулд одоо байгаа зааварчилгааг дагана уу

> apB түлхүүрээ pyBulbMessenger.py дахь хувьсах api дээр нэмнэ үү

2. PlayBulb нэрээ pyBulbDriver дээр тохируулах

> Gatttool бичих төхөөрөмжийг олохын тулд төхөөрөмжийнхөө нэрийг pyBulbDriver.scanForBulb ("PLAYBULB COLOR") ашиглан сканнердахаар тохируулна уу. Жишээ нь pyBulbServer.py дээрээс REST серверээ тохируулах боломжтой

3. Төслийг эхлүүлэхийн тулд

> Та эхлээд pyBulbServer.py, дараа нь pyBulbMessenger.py файлыг мессежээр эхлүүлэх хэрэгтэй. Та pyBulbServer командыг CURL ашиглан туршиж үзэх боломжтой.

4. Шаардлагатай материал:

> Raspberry Pi 3 ба PlayBulb Color эсвэл PlayBulb Candle

> Android эсвэл iOS -д Telegram суулгах

5. Rasberry Pi 3 LE Bluetooth суулгах:

www.elinux.org/RPi_Bluetooth_LE

Алхам 2: Кодын дагуу алхах

pyBulbDriver.py

pyBulbDriver нь PlayBulb -д BLE -ээр холбогдох драйверын ангиудыг агуулдаг

pyBulbDriver нь зөвхөн playBulb холболтыг сканнердах кодыг агуулдаг тул бусад ерөнхий төслүүдэд ашиглаж болно.

Хэрэглэгчийн хэрэглээний интерфейсийн үндсэн APIs:

  • scanForBulb (төхөөрөмжийн нэр: String)> PlayBulb эсвэл PlayBulbs -ийг төхөөрөмжийн нэрээр хайх
  • setBulbColor (s: int, r: int, g: int, b: int)> Гэрэл болон RGB өнгөний (0 -ээс 255 хүртэл) утгыг тодорхойлох
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> setBulbColor -тэй төстэй боловч нөлөөллийн төрөл болон хурдыг агуулдаг. Илүү ихийг мэдэхийг хүсвэл өнгөний протоколын эффект хэсгээс үзнэ үү

Энэ ангид та хэрэглэгчийн интерфейс биш өгөгдлийн бүрэн бүтэн байдлыг шалгах бусад туслах аргуудыг олох болно

  • хөрвүүлэхRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (тоо)
  • checkModeAndSpeed (горим, гайхалтай, оновчтой)
  • checksRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer нь Хэрэглэгчийн програмын интерфэйсийг PUT болон JSON ашиглан RESTful холбоос болгон гаргаж, өгөгдлийг pyBulbDriver руу илгээж, хүлээн авдаг. Мөн сервер идэвхжсэн үед BLE холболтыг скан хийж, эхлүүлэх ажлыг хийдэг.

pyBulbResource (Resource) нь булцууны командыг тодорхойлохын тулд өнгө, эффект ашиглан REST сервер рүү дуудлага дамжуулдаг.

Эффектийг удирдах жишээ:

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

Эцэст нь pyBulbMessenger нь таны телеграм ухаалаг утасны клиентэд холбогдсон Telegram боттой харилцах үүрэгтэй. Цахилгаан ботийг хэрхэн тохируулах, холбогдох талаар дэлгэрэнгүй мэдээллийг https://www.instructables.com/id/Set-up-Telegram-Bo… үзнэ үү.

cmdHandler (bot, update) бол текст командыг тодорхойлж, RESTful API -ээр дамжуулан PlayBulb -тэй холбодог газар юм.

Одоогийн байдлаар төсөл нь зөвхөн тексттэй бөгөөд өөр нэг зорилго бол бусад командуудыг идэвхжүүлэхийн тулд яриа таних төхөөрөмж рүү илгээсэн дуут мессежийг илгээх явдал юм.

Алхам 3: Дүгнэлт

Одоогийн архитектурын дизайн нь өргөтгөх чадвараас илүү хялбарчлах тухай байв. Бүлгийн холболт байхгүй хэвээр байгаа бөгөөд чийдэн рүү мессеж бичих, эсвэл шууд тоглох эсвэл бусадтай харилцах олон програмыг судалж байна.

Git repo -г захиалж эсвэл дагах замаар эдгээр шинэчлэлтийн талаар илүү дэлгэрэнгүй мэдээлэл авах болно. Ийм төслийн шалтгаан нь playBulb -ийг интерфэйс болгож, IoT (интернэт юмсын интернэт) хөгжүүлэлтийг хөнгөвчлөх RESTful интерфэйсийг бий болгох, мөн IM Client телеграмаар дамжуулан зураг, дуу хоолой, Судалгааны үүднээс цахилгаан хэрэгсэлтэй харьцах текст.

Зөвлөмж болгож буй: