สารบัญ:

TextPlayBulb: REST เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram: 3 ขั้นตอน
TextPlayBulb: REST เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram: 3 ขั้นตอน

วีดีโอ: TextPlayBulb: REST เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram: 3 ขั้นตอน

วีดีโอ: TextPlayBulb: REST เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram: 3 ขั้นตอน
วีดีโอ: Голубая стрела (1958) фильм 2024, พฤศจิกายน
Anonim
TextPlayBulb: REST เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram
TextPlayBulb: REST เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram

คำแนะนำนี้แสดงวิธีเชื่อมต่อกับหลอดไฟ LED สี Bluetooth ของ PlayBulb โดยใช้ Python, Raspberry Pi 3 และไลบรารี Bluetooth และเพื่อขยายการควบคุมผ่าน REST API สำหรับสถานการณ์ IoT และเป็นข้อดี โครงการยังแสดงวิธีการขยาย REST API เพื่อควบคุม PlayBulb ของคุณผ่านไคลเอนต์ข้อความ IM เช่น โทรเลข เช่น การพูดคุยกับบ้านอัตโนมัติของคุณผ่านข้อความ

โครงการนี้สร้างขึ้นบน 3 โมดูล:

  1. pyBulbDriver: เชื่อมต่อกับ PlayBulb ผ่าน BLE gatttool และ python
  2. pyBulbServer: การใช้ pyBulbDriver เพื่อแสดงการควบคุม playbulb ผ่าน REST API
  3. pyBulbMessenger: การเชื่อมต่อกับบอทโทรเลขเพื่อส่งและรับคำสั่งผ่านไคลเอ็นต์โทรเลขที่ติดตั้งบนสมาร์ทโฟน และใช้ REST API เพื่อออกคำสั่งไปยัง PlayBulb

คุณสามารถโคลนโครงการผ่านที่เก็บ git:

เป้าหมายของโครงการ:

ในการสร้างเครื่องมือพื้นฐานสำหรับการโต้ตอบกับหลอดไฟของคุณผ่านรูปแบบต่างๆ เช่น การส่งข้อความในตอนนี้ สถานการณ์ในอนาคตอาจเกี่ยวข้องกับคำสั่งเสียงพูด การแสดงท่าทางไปยังหลอดไฟ … เป็นต้น

แหล่งข้อมูลอื่นที่ใช้ในการสร้างคำแนะนำนี้:

  • PlayBulb Color Bluetooth Protocol:
  • การเชื่อมต่อ Python กับ Playbulb ผ่าน Bluetooth:
  • การตั้งค่าบอทโทรเลข:

ผลงาน

pyBulbDriver ได้รับการขยายให้มีความยืดหยุ่นและกำหนดพารามิเตอร์ได้มากขึ้น เพื่อความสะดวกในการขยายในอนาคต สร้างสถานการณ์เพื่อให้คุณส่งข้อความหาหลอดไฟได้ อินเทอร์เฟซที่เรียบง่ายสำหรับการทดสอบและเล่นซอ

ข้อจำกัด

ไดรเวอร์นี้เขียนขึ้นสำหรับ PlayBulb Colour สำหรับ PlayBulb ประเภทอื่นๆ เช่น ต้นฉบับหรือเทียน รหัสบลูทู ธ ใน pyBulbDriver จำเป็นต้องเปลี่ยนตามโปรโตคอลดังกล่าว

คุณต้องลงทะเบียนบัญชีโทรเลข และรับคีย์ API ซึ่งคุณเพิ่มใน pyBulbMessenger.py ให้ทำตามการตั้งค่าบอทโทรเลขในแหล่งข้อมูล O

ขั้นตอนที่ 1: การตั้งค่าโครงการ

1. รับคีย์ API ของคุณจาก Telegram

> ปฏิบัติตามคำแนะนำปัจจุบันเพื่อรับคีย์ API ของคุณ

> เพิ่มคีย์ api ของคุณให้กับตัวแปร api ใน pyBulbMessenger.py

2. การตั้งชื่อ PlayBulb ของคุณใน pyBulbDriver

> เพื่อให้ gatttool ค้นหาอุปกรณ์เขียน ให้ตั้งชื่ออุปกรณ์ของคุณให้สแกนโดยใช้ pyBulbDriver.scanForBulb("PLAYBULB COLOUR") ตัวอย่างสามารถพบได้ใน pyBulbServer.py เพื่อตั้งค่า REST Server. ของคุณ

3. เพื่อเริ่มโครงการ

> คุณต้องเริ่ม pyBulbServer.py ก่อน แล้วตามด้วย pyBulbMessenger.py สำหรับการส่งข้อความ คุณสามารถทดสอบคำสั่ง pyBulbServer โดยใช้ CURL

4. วัสดุที่จำเป็น:

> Raspberry Pi 3 และ PlayBulb Color หรือ PlayBulb Candle

> การติดตั้งโทรเลขสำหรับ Android หรือ iOS

5. การติดตั้ง Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

ขั้นตอนที่ 2: เดินผ่านรหัส

pyBulbDriver.py

pyBulbDriver มีคลาสไดรเวอร์สำหรับเชื่อมต่อกับ PlayBulb ผ่าน BLE

pyBulbDriver สามารถใช้กับโปรเจ็กต์ทั่วไปอื่นๆ ได้เช่นกัน เนื่องจากมีโค้ดสำหรับสแกนและตั้งค่าการเชื่อมต่อ playBulb เท่านั้น

API หลักสำหรับส่วนต่อประสานแอปพลิเคชันผู้ใช้:

  • scanForBulb(devicename: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(โหมด ผิดปรกติ onbeat)
  • ตรวจสอบRGBInBounds(s, r, g, b)

pyBulbServer.py

pyBulbServer เปิดเผยอินเทอร์เฟซของแอปพลิเคชันผู้ใช้ในไฮเปอร์ลิงก์ RESTful โดยใช้ PUT และ JSON เพื่อส่งและรับข้อมูลไปยัง pyBulbDriver นอกจากนี้ การสแกนและการเริ่มต้นของการเชื่อมต่อ BLE จะทำเมื่อเปิดใช้งานเซิร์ฟเวอร์

pyBulbResource(Resource) แชนเนลการเรียกไปยังเซิร์ฟเวอร์ REST โดยใช้สีและเอฟเฟกต์เพื่อกำหนดคำสั่ง bulb

ตัวอย่างการสั่งงานเอฟเฟกต์:

127.0.0.1/bulb/effect

JSON POST > {ข้อมูล':'{"s":0, "r":255, "g":255, "b":255, "m":1, "on":15, "off":15 }'}

pyBulbMessenger.py

ในที่สุด pyBulbMessenger มีหน้าที่เชื่อมต่อบอทโทรเลขที่เชื่อมต่อกับไคลเอ็นต์โทรศัพท์สมาร์ทโทรเลขของคุณ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการกำหนดค่าและเชื่อมต่อกับโทรเลขบอทตรวจสอบ

cmdHandler(bot, update) คือที่ที่คำสั่งข้อความถูกกำหนดและเชื่อมต่อกับ PlayBulb ผ่าน RESTful API

ขณะนี้โครงการมีเพียงข้อความเท่านั้น อีกเป้าหมายหนึ่งคือการส่งข้อความเสียงที่บันทึกไว้ซึ่งจะถูกส่งไปยังเครื่องจดจำเสียงเพื่อเปิดใช้งานคำสั่งอื่น ๆ (ยังไม่ได้ดำเนินการ)

ขั้นตอนที่ 3: บทสรุป

การออกแบบสถาปัตยกรรมในปัจจุบันมีความเรียบง่ายมากกว่าการปรับขนาด ยังขาดการเชื่อมต่อกลุ่ม แอปพลิเคชันเพิ่มเติมเกี่ยวกับการส่งข้อความถึงหลอดไฟสำหรับคำสั่งโดยตรงหรือการโต้ตอบที่สนุกสนานยังอยู่ระหว่างการวิจัย

โดยการสมัคร git repo หรือติดตาม รายละเอียดเพิ่มเติมจะมาในการอัปเดตเหล่านี้ เหตุผลสำหรับโครงการดังกล่าวคือเพื่อเชื่อมต่อ playBulb และสร้างอินเทอร์เฟซ RESTful เพื่อความสะดวกในการพัฒนาใน IoT (สถานการณ์อินเทอร์เน็ตของสิ่งต่าง ๆ) แต่ยังเปิดโอกาสในการใช้รูปแบบต่างๆ ผ่านทางโทรเลข IM Client เช่น รูปภาพ เสียง และ ข้อความเพื่อโต้ตอบกับอุปกรณ์จากมุมมองการวิจัย

แนะนำ: