Mundarija:
Video: TextPlayBulb: Raspberry Pi 3, BLE va Telegram yordamida PlayBulb -da REST yoqilgan: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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:
- pyBulbDriver: PlayBulb -ga BLE gatttool va python orqali ulaning.
- pyBulbServer: pyBulbDriver -dan foydalanib, REST API orqali pleybolni boshqarishni ochish.
- 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:
WiFi yoqilgan matritsali chiroq: 6 qadam (rasmlar bilan)
Wi -Fi yoqilgan matritsali chiroq: Uyda animatsiyalarni ko'rsatadigan va boshqa lampalar bilan sinxronlashtiradigan ajoyib chiroqni kim xohlamaydi? To'g'ri, hech kim. Chiroq 256 ta alohida adreslanadigan LED -lardan iborat bo'lib, barcha LEDlar boshqacha bo'lishi mumkin
DIY signalli velosiped qulfi (zarba yoqilgan): 5 qadam (rasmlar bilan)
DIY signalli velosiped qulfi (Shok faollashtirilgan): Men ushbu loyihada sizga oddiy zarba bilan ishlaydigan signalli velosiped qulfini qanday yaratishni ko'rsataman. Nomidan ko'rinib turibdiki, velosipedingiz ruxsat bilan harakatlanayotganda signal signalini chiqaradi. Yo'l davomida biz piezoele haqida bir oz bilib olamiz
OpenLogger: yuqori aniqlikdagi, Wi-Fi yoqilgan, ochiq manba, ko'chma ma'lumotlar yozuvchisi: 7 qadam
OpenLogger: Yuqori aniqlikdagi, Wi-Fi yoqilgan, ochiq manba, ko'chma ma'lumotlar yozuvchisi: OpenLogger-bu qimmat dasturiy ta'minot yoki yozma dasturiy ta'minotni talab qilmasdan yuqori sifatli o'lchovlarni ta'minlash uchun mo'ljallangan, ko'chma, ochiq manba, arzon narxlardagi, yuqori aniqlikdagi ma'lumotlar yozuvchisi. boshidan. Agar siz muhandis, olim yoki havaskor bo'lsangiz
Bluetooth yoqilgan analog VU o'lchagich: 6 qadam
Bluetooth yoqilgan analog VU o'lchagich: Bu mening SMP deb nomlangan universitet darslarimdan birining loyihasi edi. Biz STM32F103RB ishlab chiqish kartasidan foydalanganimizda, men o'z loyihamni bunga asosladim, oddiy VU o'lchagichdan boshlab. Keyin men Bluetooth -ni qo'llab -quvvatlash kabi ba'zi qo'shimcha funktsiyalarni qo'shdim
Alexa yoqilgan lift tugmasi: 4 qadam
Alexa yoqilgan lift tugmasi: Bu yo'riqnomadagi usuldan istalgan tugma uchun foydalanish mumkin, lekin bizda Amazon Alexa yordamida qo'ng'iroq qilmoqchi bo'lgan lift bor. Menda avvalgi ko'rsatma bor, men xuddi shu narsani qilish uchun Alexa tomonidan boshqariladigan solenoiddan foydalandim, lekin