เรียกใช้ Pi เป็นอุปกรณ์โฮสต์บลูทู ธ แทนที่จะเป็นไคลเอนต์ใน python

Aug 20 2020

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

ฉันไม่สามารถค้นหาคีย์เวิร์ดที่ถูกต้องเพื่อค้นหาใน Google ได้ แต่จากการมองไปรอบ ๆ ไซต์นี้ดูเหมือนจะเป็นไปได้ (ฉันเห็นว่ามีคนใช้เป็นเครื่องพิมพ์บลูทู ธ .. )

มีเพียงทิศทางที่จำเป็นจริงๆ - อาจเป็นห้องสมุดหรือแม้แต่สิ่งที่ต้องค้นหา

คำตอบ

2 ukBaz Aug 20 2020 at 15:59

สมมติฐานของฉันคือคุณกำลังมองหาการเป็นหนึ่งในโปรไฟล์ / บริการการขี่จักรยานมาตรฐานตามที่กำหนดโดย Bluetooth SIG

นี่คือ Bluetooth Low Energy (BLE) และใช้ข้อกำหนด GATT

บน Linux สแต็กบลูทู ธ คือ BlueZ ซึ่งใช้ D-Bus เพื่อแสดง API ตัวอย่างเช่น GATT API ได้รับการบันทึกไว้ที่:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt

อุปกรณ์ของคุณจะรับบทบาทอุปกรณ์ต่อพ่วงซึ่งหมายถึงการสร้างเซิร์ฟเวอร์ GATT มีตัวอย่างนี้ในซอร์สโค้ด BlueZ:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-server

อุปกรณ์ต่อพ่วงจะต้องโฆษณาบริการ GATT: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-advertisement

โดยค่าเริ่มต้น RPi จะเป็นทั้ง BR / EDR (คลาสสิก) และ LE Bluetooth เมื่อทำหน้าที่เป็นอุปกรณ์ต่อพ่วง BLE ควรกำหนดค่าคอนโทรลเลอร์เป็น Bluetooth Low Energy เท่านั้นมีการค้นพบว่าการเชื่อมต่อที่เชื่อถือได้กับโทรศัพท์ Android สิ่งนี้จำเป็น การเปลี่ยนแปลงการกำหนดค่านี้ทำใน/etc/bluetooth/main.confไฟล์ ตรวจสอบให้แน่ใจว่ามีสิ่งต่อไปนี้:

ControllerMode = le