สารบัญ:
วีดีโอ: TextPlayBulb: REST เปิดใช้งาน PlayBulb โดยใช้ Raspberry Pi 3, BLE และ Telegram: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
คำแนะนำนี้แสดงวิธีเชื่อมต่อกับหลอดไฟ LED สี Bluetooth ของ PlayBulb โดยใช้ Python, Raspberry Pi 3 และไลบรารี Bluetooth และเพื่อขยายการควบคุมผ่าน REST API สำหรับสถานการณ์ IoT และเป็นข้อดี โครงการยังแสดงวิธีการขยาย REST API เพื่อควบคุม PlayBulb ของคุณผ่านไคลเอนต์ข้อความ IM เช่น โทรเลข เช่น การพูดคุยกับบ้านอัตโนมัติของคุณผ่านข้อความ
โครงการนี้สร้างขึ้นบน 3 โมดูล:
- pyBulbDriver: เชื่อมต่อกับ PlayBulb ผ่าน BLE gatttool และ python
- pyBulbServer: การใช้ pyBulbDriver เพื่อแสดงการควบคุม playbulb ผ่าน REST API
- 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 เช่น รูปภาพ เสียง และ ข้อความเพื่อโต้ตอบกับอุปกรณ์จากมุมมองการวิจัย
แนะนำ:
OpenLogger: ความละเอียดสูง, เปิดใช้งาน Wi-Fi, โอเพ่นซอร์ส, เครื่องบันทึกข้อมูลแบบพกพา: 7 ขั้นตอน
OpenLogger:เครื่องบันทึกข้อมูลแบบพกพาที่มีความละเอียดสูง, เปิดใช้งาน Wi-Fi, โอเพ่นซอร์ส, เครื่องบันทึกข้อมูลแบบพกพา: OpenLogger เป็นเครื่องบันทึกข้อมูลแบบพกพาแบบโอเพนซอร์ส ราคาประหยัด และมีความละเอียดสูง ออกแบบมาเพื่อให้การวัดคุณภาพสูงโดยไม่ต้องใช้ซอฟต์แวร์ราคาแพงหรือซอฟต์แวร์การเขียน ตั้งแต่เริ่มต้น หากคุณเป็นวิศวกร นักวิทยาศาสตร์ หรือผู้สนใจ
Punch เปิดใช้งาน Mario Question Block Lamp: 8 ขั้นตอน (พร้อมรูปภาพ)
Punch เปิดใช้งาน Mario Question Block Lamp: เกม Super Mario เป็นวัยเด็กของฉัน ฉันอยากได้อุปกรณ์ประกอบฉากในเกมมาโดยตลอด และตอนนี้ฉันมีเครื่องมือที่จะทำแล้ว ฉันตัดสินใจเริ่มสร้างมัน สิ่งแรกในรายการของฉันคือบล็อกคำถาม ฉันจัดการเพื่อให้
Twitter เปิดใช้งาน Zelda Heart Container: 4 ขั้นตอน
Twitter เปิดใช้งาน Zelda Heart Container: คุณชอบ Zelda หรือไม่? คุณต้องการภาชนะหัวใจของคุณเองที่คนแปลกหน้าสามารถควบคุมผ่าน Twitter ได้หรือไม่? ติดตามเพื่อดูว่าฉันทำได้อย่างไร สำหรับเหตุผล คุณจะต้องดูตอนจบของวิดีโอ ฉันยังอธิบายเสื้อตลกๆ ที่ฉันใส่อยู่
การอ่านค่าจากอุปกรณ์ BLE โดยใช้ CSR1010 และ Dragonboard 410c: 6 ขั้นตอน
การอ่านค่าจากอุปกรณ์ BLE โดยใช้ CSR1010 และ Dragonboard 410c: บทช่วยสอนนี้แสดงวิธีอ่านค่าจากอุปกรณ์ BLE CSR1010 โดยใช้ Dragonboard 410c กับ Linaro ในตัวอย่างนี้ CSR1010 กำลังเลียนแบบเซ็นเซอร์วัดอัตราการเต้นของหัวใจ
Motion Sensor เปิดใช้งาน LED Strip พร้อมตัวจับเวลา: 6 ขั้นตอน (พร้อมรูปภาพ)
Motion Sensor เปิดใช้งานแถบ LED พร้อมตัวจับเวลา: สวัสดีทุกคน! ฉันมีความสุขมากที่ได้เขียนคำแนะนำอื่นในตอนนี้ โปรเจ็กต์นี้เกิดขึ้นเมื่อฉันได้รับการติดต่อจากเพื่อนผู้สอน (?!) (David @dducic) เมื่อหลายเดือนก่อนเพื่อขอความช่วยเหลือด้านการออกแบบ ดังนั้นนี่คือข้อมูลจำเพาะดั้งเดิม: &q