TLDR: MacBook と Python で Bluetooth デバイスに接続する方法

Python for Bluetooth LE に関する人気記事のクイックスタート バージョンです。

Unsplashのvadim kaipovによる写真

この記事は、Bluetooth LE の基本と、Mac での Python コードの記述について理解していることを前提としています。そうでない場合は、こちらの詳細な記事をご覧ください。

要件

  • Mac OS コンピューター (12.x 以降)
  • パイソン3
  • Bleak (Python Bluetooth LE ライブラリ)
  • スマートウォッチ、スマート電球、または同様の Bluetooth LE デバイス

Bleak はPython 用の Bluetooth LE ライブラリです。

でインストールしますpip install bleak。

ステップ 1: 近くの Bluetooth デバイスをスキャンする

デバイスの MAC アドレスまたは UUID がすでにわかっている場合、この手順はオプションです。

以下のコードを というファイルに入れてscanner.py実行します。

# scanner.py

import asyncio
from bleak import BleakScanner

async def main():
    devices = await BleakScanner.discover()
    for device in devices:
        print(device)

asyncio.run(main())

scanner.py によって検出された Bluetooth デバイスのリスト

デバイスの UUID をコピーします。リストされている最初のXsens DOTに接続したい場合は、 address を使用する必要があります338312FA-C3D1–183F-325A-0726AFDBEB78。

AsyncIO は、コードが Bluetooth デバイスからの受信を待機できるようにする Python ライブラリです。そうすれば、Bluetooth デバイスがコンピュータにメッセージを送信するのに時間がかかっても、コードが一時停止したり、時間がかかりすぎてエラーが発生したりすることはありません。

ステップ 2: デバイスに接続する

デバイスのアドレスがわかったので、 で接続できますBleakClient()。

新しいファイルに、connect.py次のように記述します。

# connect.py

import asyncio
from bleak import BleakClient

async def main():
    address = "ABCDEFG1-XXXX-XXXX-XXXX-XXXXXXXXXX"

    async with BleakClient(address) as client:
        print(client.is_connected) # prints True or False

asyncio.run(main())

たとえば、Xsens DOT の場合、その行は次のようになります。

address = "338312FA-C3D1–183F-325A-0726AFDBEB78"

これは、Bluetooth デバイスに接続するための完全なスクリプトです。

# connect.py

import asyncio
from bleak import BleakClient

async def main():
    address = "ABCDEFG1-XXXX-XXXX-XXXX-XXXXXXXXXX"

    async with BleakClient(address) as client:
        print(client.is_connected) # prints True or False

asyncio.run(main())

Python と Bleak を使用して Bluetooth LE デバイスに接続するために必要なのはこれだけです。

質問とフィードバック

ご質問やご意見がございましたら、 [email protected]までメールをお送りいただくか、 Instagram (@protobioengineering)でメッセージをお送りください。

この記事が気に入ったら、コーヒーを寄付して私たちを支援することを検討してください。

関連記事

  • Python での非同期 IO: 完全なチュートリアル
  • Python ブリーク ライブラリのドキュメント
  • MacBook と Python で Bluetooth LE デバイスに接続する方法(拡張バージョン)

提案された投稿

Langchain を使用して ChatGPT プラグインを無料で実行する方法

Langchain を使用して ChatGPT プラグインを無料で実行する方法

ブラウザ、コード インタープリターなどの新しい強力な ChatGPT プラグインについては聞いたことがあるはずです。しかし、問題があります。プラグインへのアクセスは待機リストに制限されているため、多くの人がアクセスできません。

私が最もよく使用するコーディング リソース

私が最もよく使用するコーディング リソース

今週、毎日のメールリストのメンバーからメールを受け取りました。彼らは次のことを知りたかったのです。毎日、毎週、毎月どのリソースにアクセスしていますか? 素晴らしい質問です!私のワークフローと使用している主なリソースについての洞察を共有したいと思います。

関連記事

24 年度に炭素除去に資金を提供

経路全体にわたる Carbon180 の割り当てリクエストの内訳

24 年度に炭素除去に資金を提供

アリソン・リー著、マネージング政府問題顧問 連邦政府の年次歳出プロセスは、二酸化炭素除去 (CDR) に資金を提供する取り組みの中心です。毎年、Carbon180 は、来年の資金がどこに流れるかの指針となるよう、さまざまな議会事務所に要望書を提出しています。

待ちの季節にできること(テクノロジー業界での最初の仕事に就くのを待っているとき)

待ちの季節にできること(テクノロジー業界での最初の仕事に就くのを待っているとき)

新しいキャリアへの転職は、一人でやろうとすると非常に困難になる可能性があります。あなたと同じ学習レベルにあり、同様の目標、粘り強さ、意欲を共有する責任パートナーを見つけることが重要です。

ドメイン名に関する情報の検索

Brian P. Hogan 著『Small, Sharp Software Tools』からの抜粋

ドメイン名に関する情報の検索

facebook.com にリクエストを送信すると、コンピュータはドメイン名を検索してそのドメイン名を IP アドレスに変換し、コンピュータが接続できるようにします。

ジャーナル・アウトバート

ジャーナル・アウトバート

日記を開く: 1 日 1 枚の写真。私はいつも物語に魅了されてきました。