最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

bluepy 一款python封裝的BLE利器簡單介紹

 更新時間:2019年06月25日 10:56:56   作者:beautifulzzzz  
這篇文章主要介紹了bluepy 一款python封裝的BLE利器簡單介紹,bluepy 是github上一個很好的藍牙開源項目, 其主要功能是用python實現(xiàn)linux上BLE的接口。,需要的朋友可以參考下

1、bluepy 簡介
bluepy 是github上一個很好的藍牙開源項目,其地址在 LINK-1, 其主要功能是用python實現(xiàn)linux上BLE的接口。

This is a project to provide an API to allow access to Bluetooth Low Energy devices from Python. At present it runs on Linux only; I've mostly developed it using a Raspberry Pi, but it will also run on x86 Debian Linux.

支持python版本:The code is tested on Python 2.7 and 3.4; it should also work on 3.3.

2、安裝

直接源碼安裝,python3加持:

sudo apt-get install git build-essential libglib2.0-dev
git clone https://github.com/IanHarvey/bluepy.git
cd bluepy
python3 setup.py build
sudo python3 setup.py install

注:不要用python2,這輩子都不會用python2!

注:進行到這一步突然驚醒我的臺式機無藍牙,遂開啟我的無屏幕樹莓派,用命令找其ip,并用ssh登錄:

➜ Downloads sudo nmap -sS -p 22 192.168.31.0/24 | grep -B 5 -A 0 "Pi"
Nmap scan report for 192.168.31.51
Host is up (0.19s latency).
PORT STATE SERVICE
22/tcp open ssh
MAC Address: B8:27:EB:71:33:AE (Raspberry Pi Foundation)
➜ Downloads ssh pi@192.168.31.51
pi@192.168.31.51's password: 1234

3、看文檔,玩DEMO

bluepy 的文檔地址 LINK-2

在bluepy中新建一個examples文件夾,用來存放接下來我們的測試DEMO:

3.1 scan devices demo

這里第一個DEMO是BLE設(shè)備掃描,這里用到了Scanner對象,該對象可以用來搜索BLE設(shè)備的廣播包數(shù)據(jù)。在大多數(shù)情況下該對象將會掃描出周圍所有可連接設(shè)備。

下面是我改造為python3的代碼:

➜ examples git:(master) ✗ cat scan.py 
#!/usr/bin/env python
# coding=utf-8
from bluepy.btle import Scanner, DefaultDelegate
class ScanDelegate(DefaultDelegate):
def __init__(self):
DefaultDelegate.__init__(self)
def handleDiscovery(self, dev, isNewDev, isNewData):
if isNewDev:
print("Discovered device", dev.addr)
elif isNewData:
print("Received new data from", dev.addr)
scanner = Scanner().withDelegate(ScanDelegate())
devices = scanner.scan(10.0)
for dev in devices:
print("Device %s (%s), RSSI=%d dB" % (dev.addr, dev.addrType, dev.rssi))
for (adtype, desc, value) in dev.getScanData():
print(" %s = %s" % (desc, value))
  • 其中Scanner([index=0])用于產(chǎn)生并初始化一個新的scanner對象,index 用來指名哪一個藍牙設(shè)備就會被用(默認0表示使用/dev/hci0)。掃描知道調(diào)用start或scan函數(shù)之后才會開始;
  • 其中withDelegate(delegate)存儲對委托對象的引用,委托對象在接收來自設(shè)備的廣播時接收回調(diào)。有關(guān)詳細信息,請參閱DefaultDelegate的文檔;
  • 其中scan([timeout = 10])開始掃描并帶有超時,在此掃描期間掃描到的設(shè)備會觸發(fā)Delegate的回調(diào)函數(shù),我們可以在其回調(diào)函數(shù)中實時獲取并打印。當超時后會返回一個設(shè)備列表;

執(zhí)行效果如下:

注:注意用sudo運行,更詳細的接口見 LINK-3

3.2 get services

bluepy 的DEMO有點少,我又找了個專是DEMO的github項目:LINK-5

將其中的getServices.py改造下:

➜ examples git:(master) ✗ cat get_setvices.py 
import sys
from bluepy.btle import UUID, Peripheral
if len(sys.argv) != 2:
print("Fatal, must pass device address:", sys.argv[0], "<device address="">")
quit()
p = Peripheral(sys.argv[1],"public")
services=p.getServices()
#displays all services
for service in services:
print(service)

其中Peripheral(sys.argv[1],"public")是用mac地址創(chuàng)建一個連接,由于我們上一步用scan搜索到的mac地址為public類型,因此這里第二個參數(shù)為"public",更詳細的介紹見 LINK-6

其中g(shù)etServices會返回所連接設(shè)備的服務(wù);

執(zhí)行效果如下:

3.3 get characteristics

同3.2獲取characteristic的代碼如下:

➜ examples git:(master) ✗ cat get_characteristics.py 
import sys
from bluepy.btle import UUID, Peripheral
if len(sys.argv) != 2:
print("Fatal, must pass device address:", sys.argv[0], "<device address="">")
quit()
p = Peripheral(sys.argv[1],"public")
chList = p.getCharacteristics()
print("Handle UUID Properties")
print("-------------------------------------------------------") 
for ch in chList:
print(" 0x"+ format(ch.getHandle(),'02X') +" "+str(ch.uuid) +" " + ch.propertiesToString())

執(zhí)行效果如下:

3.4 get device name

直接上代碼:

➜ examples git:(master) ✗ cat get_device_name.py 
import sys
from bluepy.btle import UUID, Peripheral
dev_name_uuid = UUID(0x2A00)
if len(sys.argv) != 2:
print("Fatal, must pass device address:", sys.argv[0], "<device address="">")
quit()
p = Peripheral(sys.argv[1],"public")
try:
ch = p.getCharacteristics(uuid=dev_name_uuid)[0]
if (ch.supportsRead()):
print(ch.read())
finally:
p.disconnect()

運行效果如下:

小結(jié)

bluepy 是非常棒的一款藍牙BLE工具,掌握它會為你節(jié)省比較多的時間~

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python進行文件對比的方法

    python進行文件對比的方法

    在本篇內(nèi)容里小編給分享了關(guān)于python進行文件對比的方法和步驟,需要的朋友們可以學習下。
    2018-12-12
  • python列表與列表算法詳解(2)

    python列表與列表算法詳解(2)

    這篇文章主要介紹了Python的列表和列表算法,小編感覺這篇文章具有一定參考價值,需要的朋友可以了解下,希望能給你帶來幫助
    2021-08-08
  • 利用Python實現(xiàn)在同一網(wǎng)絡(luò)中的本地文件共享方法

    利用Python實現(xiàn)在同一網(wǎng)絡(luò)中的本地文件共享方法

    今天小編就為大家分享一篇利用Python實現(xiàn)在同一網(wǎng)絡(luò)中的本地文件共享方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 基于Python創(chuàng)建可定制的HTTP服務(wù)器

    基于Python創(chuàng)建可定制的HTTP服務(wù)器

    這篇文章主要為大家演示一下如何使用?http.server?模塊來實現(xiàn)一個能夠發(fā)布網(wǎng)頁的應用服務(wù)器,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-05-05
  • Python調(diào)用OpenCV實現(xiàn)圖像平滑代碼實例

    Python調(diào)用OpenCV實現(xiàn)圖像平滑代碼實例

    這篇文章主要介紹了Python調(diào)用OpenCV實現(xiàn)圖像平滑代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 淺談python常用程序算法

    淺談python常用程序算法

    這篇文章主要介紹了python常用程序算法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 教你利用Python+Turtle繪制簡易版愛心表白

    教你利用Python+Turtle繪制簡易版愛心表白

    這篇文章主要介紹了教你利用Python+Turtle繪制簡易版愛心表白,文中有非常詳細的代碼示例,對想要和男朋友或者女朋友表白的小伙伴們有很大幫助喲,需要的朋友可以參考下
    2021-04-04
  • python 數(shù)據(jù)清洗之數(shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

    python 數(shù)據(jù)清洗之數(shù)據(jù)合并、轉(zhuǎn)換、過濾、排序

    這篇文章主要介紹了python 數(shù)據(jù)清洗之數(shù)據(jù)合并、轉(zhuǎn)換、過濾、排序的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Python 正則表達式的高級用法

    Python 正則表達式的高級用法

    作為一個概念而言,正則表達式對于Python來說并不是獨有的。但是,Python中的正則表達式在實際使用過程中還是有一些細小的差別。本文是一系列關(guān)于Python正則表達式文章的其中一部分。
    2016-12-12
  • python中dir函數(shù)用法分析

    python中dir函數(shù)用法分析

    這篇文章主要介紹了python中dir函數(shù)用法,實例分析了dir函數(shù)的功能及相應的使用技巧,需要的朋友可以參考下
    2015-04-04

最新評論

九台市| 沅陵县| 枣庄市| 吴堡县| 塘沽区| 天台县| 镇康县| 台山市| 宁南县| 米林县| 始兴县| 兴国县| 昆山市| 杂多县| 石首市| 呼玛县| 丰台区| 天峨县| 汤原县| 曲松县| 开远市| 盘锦市| 沙坪坝区| 广昌县| 石台县| 崇礼县| 廊坊市| 桦川县| 都匀市| 罗山县| 印江| 伊川县| 迭部县| 安阳市| 福贡县| 南平市| 梁平县| 布尔津县| 桑植县| 汉阴县| 衡南县|