Mundarija:

TextPlayBulb: Raspberry Pi 3, BLE va Telegram yordamida PlayBulb -da REST yoqilgan: 3 qadam
TextPlayBulb: Raspberry Pi 3, BLE va Telegram yordamida PlayBulb -da REST yoqilgan: 3 qadam

Video: TextPlayBulb: Raspberry Pi 3, BLE va Telegram yordamida PlayBulb -da REST yoqilgan: 3 qadam

Video: TextPlayBulb: Raspberry Pi 3, BLE va Telegram yordamida PlayBulb -da REST yoqilgan: 3 qadam
Video: Convenience items needed in the family 2024, Noyabr
Anonim
TextPlayBulb: Raspberry Pi 3, BLE va Telegram yordamida PlayBulb -da REST yoqilgan
TextPlayBulb: Raspberry Pi 3, BLE va Telegram yordamida PlayBulb -da REST yoqilgan

Bu yo'riqnoma Python, Raspberry Pi 3 va Bluetooth kutubxonasi yordamida PlayBulb Color bluetooth LED chiroqqa qanday ulanish va IoT stsenariysi uchun boshqaruvni REST API orqali kengaytirishni ko'rsatadi, shuningdek, loyiha qanday qilib kengaytirishni ko'rsatadi. REST API sizning PlayBulb -ni tezkor matnli mijoz orqali boshqarish uchun, masalan Telegram, masalan, avtomatlashtirilgan uyingiz bilan matn orqali gaplashish.

Loyiha 3 moduldan iborat:

  1. pyBulbDriver: PlayBulb -ga BLE gatttool va python orqali ulaning.
  2. pyBulbServer: pyBulbDriver -dan foydalanib, REST API orqali pleybolni boshqarishni ochish.
  3. pyBulbMessenger: har qanday aqlli telefonga o'rnatilgan telegram mijozi orqali buyruqlarni yuborish va qabul qilish uchun telegram botiga ulanish va PlayBulb -ga buyruqlar berish uchun REST API yordamida.

Siz loyihani git ombori orqali klonlashingiz mumkin:

Loyihaning maqsadi:

Lampochka bilan turli xil usullar bilan muloqot qilish uchun tayanch vositani yaratish uchun hozircha SMS yozish, kelgusi stsenariylarga nutq buyruqlari, chiroqqa ishora qilish kiradi … va hokazo.

Ushbu ko'rsatmalarni yaratish uchun ishlatiladigan boshqa manbalar:

  • PlayBulb rangli Bluetooth protokoli:
  • Python-ni Bluetooth orqali Playbulb-ga ulash:
  • Telegram botini sozlash:

Hissa

pyBulbDriver yanada moslashuvchan va kelajakda kengaytirilishi uchun parametrlashtirilgan bo'lib, sizga chiroq yozish bilan skripka qilish uchun ssenariy tuzadi. Tekshirish va tebranish uchun oddiy interfeys.

Cheklov

Drayv PlayBulb Color uchun, boshqa PlayBulb turlari uchun yozilgan. Original yoki sham, pyBulbDriver -dagi bluetooth kodi yuqorida aytib o'tilgan protokolga muvofiq o'zgartirilishi kerak.

Siz telegramda hisob qaydnomasini ro'yxatdan o'tkazishingiz va pyBulbMessenger.py -ga qo'shadigan api kalitini olishingiz kerak, telegram botining sozlamalarini boshqa manbalarda bajaring.

1 -qadam: Loyihani sozlash

1. Telegramdan API kalitini olish

> API kalitini olish uchun amaldagi ko'rsatmalarga amal qiling

> apB kalitini pyBulbMessenger.py -dagi o'zgaruvchan api -ga qo'shing

2. PlayBulb nomini pyBulbDriver -ga o'rnatish

> Gatttool yozish qurilmasini topishi uchun pyBulbDriver.scanForBulb ("PLAYBULB COLOR") yordamida qurilmangiz nomini skanerlashni sozlang. Misolni pyBulbServer.py saytida REST serverini o'rnatish uchun topish mumkin

3. Loyihani boshlash uchun

> Siz oldin pyBulbServer.py -ni ishga tushirishingiz kerak, so'ngra matn yozish uchun pyBulbMessenger.py. PyBulbServer buyruqlarini CURL yordamida sinab ko'rishingiz mumkin.

4. Kerakli materiallar:

> Raspberry Pi 3 va PlayBulb Color yoki PlayBulb Candle

> Android yoki iOS uchun Telegram -ni o'rnatish

5. Rasberry Pi 3 LE Bluetooth -ni o'rnatish:

www.elinux.org/RPi_Bluetooth_LE

2 -qadam: Kod orqali yurish

pyBulbDriver.py

pyBulbDriver PlayBulb -ga BLE orqali ulanish uchun haydovchi sinflarini o'z ichiga oladi

pyBulbDriver boshqa umumiy loyihalar uchun ham ishlatilishi mumkin, chunki u faqat playBulb ulanishlarini skanerlash va sozlash kodini o'z ichiga oladi.

Foydalanuvchi ilovasi interfeysi uchun asosiy APIlar:

  • scanForBulb (qurilma nomi: String)> PlayBulb yoki PlayBulbs -ni qurilma nomi orqali qidirish.
  • setBulbColor (s: int, r: int, g: int, b: int)> Yorqinlik va RGB rangini (0 dan 255 gacha) aniqlash uchun
  • setBulbEffect (s: int, r: int, g: int, b: int, mode: int, onbeat: int, offbeat: int)> setBulbColor -ga o'xshash, lekin ta'sir va tezlik turini o'z ichiga oladi. Qo'shimcha ma'lumot olish uchun rang protokoli effektlari bo'limiga qarang

Bu sinfda siz foydalanuvchi interfeysi uchun emas, balki ma'lumotlar yaxlitligini tekshirish uchun mo'ljallangan boshqa yordamchi usullarni topasiz

  • convertRGBToHexaCmd (s, r, g, b)
  • convertIntToHex (raqam)
  • checkModeAndSpeed (rejim, favqulodda, onbeat)
  • chexlarRGBInBounds (s, r, g, b)

pyBulbServer.py

pyBulbServer pyBulbDriver -ga ma'lumotlarni yuborish va qabul qilish uchun PUT va JSON -dan foydalangan holda User Application interfeysini RESTful giperhavolalarga chiqaradi. Bundan tashqari, server yoqilganda BLE ulanishini skanerlash va ishga tushirish amalga oshiriladi.

pyBulbResource (Resurs) lampalar buyrug'ini aniqlash uchun rang va effekt yordamida REST serveriga qo'ng'iroqlarni yuboradi.

Ta'sirni boshqarish uchun misol:

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

Nihoyat, pyBulbMessenger sizning telegrammali aqlli telefoningiz mijoziga ulangan Telegram botining aloqasi uchun javobgardir. Telegram-botni sozlash va unga ulanish haqida batafsil ma'lumotni https://www.instructables.com/id/Set-up-Telegram-Bo… ga qarang.

cmdHandler (bot, yangilash) - bu erda matn buyruqlari aniqlanadi va RESTful API orqali PlayBulb -ga ulanadi.

Hozirgi vaqtda loyihada faqat matn bor, boshqa maqsad - boshqa buyruqlarni faollashtirish uchun nutq tanuvchisiga yuboriladigan yozilgan ovozli xabarlarni yuborish (hali bajarilmagan).

3 -qadam: Xulosa

Hozirgi arxitektura dizayni miqyosdan ko'ra soddalashtirishdan iborat edi. Hali ham guruh aloqasi yo'q, shuningdek, lampochkaga to'g'ridan -to'g'ri buyruq yozish yoki o'yin o'ynash uchun ko'proq ilovalar hali ham o'rganilmoqda.

Git repo -ga obuna bo'lish yoki unga ergashish orqali ushbu yangilanishlar haqida batafsil ma'lumot beriladi. Bunday loyihaning sababi - playBulb interfeysi va IOT (Internet ssenariysi) rivojlanishining qulayligi uchun RESTful interfeysini yaratish, balki IM Client telegram orqali rasm, ovoz va tadqiqot nuqtai nazaridan asboblar bilan o'zaro aloqa qilish uchun matn.

Tavsiya: