bluepy python 봉 인 된 BLE 이기 소개
bluepy 는 github 의 좋 은 블 루 투 스 오픈 소스 프로젝트 로 주 소 는LINK-1이 며,주요 기능 은 python 으로 Liux 의 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 버 전 지원:코드 는 Python 2.7 및 3.4 에서 테스트 됩 니 다.it should also work on 3.3.
2.설치
직접 원본 설치,python 3 추가:
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
주:python 2 를 쓰 지 마 세 요.평생 python 2 를 쓰 지 않 을 거 예요!주:이 단계 까지 진행 되 었 습 니 다.갑자기 제 데스크 톱 에 블 루 투 스 가 없어 서 제 무 스크린 크 랜 베 리 파 이 를 열 었 습 니 다.명령 으로 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 [email protected]
[email protected]'s password: 1234
3,문서 보기,데모 게임bluepy 문서 주소LINK-2
다음 테스트 데모 를 저장 하기 위해 bluepy 에 examples 폴 더 를 새로 만 듭 니 다.
3.1 scan devices demo
여기 서 첫 번 째 DEMO 는 BLE 장치 스 캔 입 니 다.Scanner 대상 을 사 용 했 습 니 다.이 대상 은 BLE 장치 의 라디오 패 킷 데 이 터 를 검색 할 수 있 습 니 다.대부분의 경우 이 대상 은 주변 에 연결 가능 한 모든 장 치 를 검색 할 것 이다.
다음은 제 가 python 3 으로 개조 한 코드 입 니 다.
➜ 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))
주: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 주소 로 연결 을 만 드 는 것 입 니 다.지난 단계 에 scan 으로 검색 한 mac 주 소 는 Public 형식 이 었 기 때문에 두 번 째 매개 변 수 는"Public"입 니 다.더 자세 한 설명 은LINK-6입 니 다.그 중에서 getServices 는 연 결 된 장치 의 서 비 스 를 되 돌려 줍 니 다.
실행 효 과 는 다음 과 같 습 니 다:
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())
실행 효 과 는 다음 과 같 습 니 다: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()
실행 효 과 는 다음 과 같 습 니 다:작은 매듭
bluepy 는 아주 좋 은 블 루 투 스 BLE 도구 입 니 다.그것 을 파악 하면 많은 시간 을 절약 할 수 있 습 니 다~
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
파이썬을 사용하여 10진수를 bin, 8진수 및 16진수 형식으로 변환하는 방법은 무엇입니까?텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.