

Bluetooth LE Add-on-ボードを使用してできることを知りたいです。

センサAdd-
onボードに対応したセンサではなく、市販のセンサから計測したセンサデータを、BLE通信を用いてRaspberryPiで受信することは可能でしょうか？


CC BY-SA 4.0
2019-04-10T09:16:12.477
54066
2021-04-23T01:41:08.147
2019-04-11T10:49:19.303
32703
32703
question
spresense
Sony SpresenseのBlutooth LE Add-on-ボードについて


Bluetooth LE Add-on-ボードの送受信に関するArduinoサンプルソースおよびライブラリが  
下記のRohm社GitHubサイトに上がっております。  
<https://github.com/RohmSemiconductor/Arduino/tree/master/MK71251-02>

こちらを参考に、お使いの市販センサのデータ読み出しを行う処理を追加していただき、  
そちらのデータをBLEでホスト(RaspberryPiなど）に送信するプログラムを作成されることが  
可能かと思います。


CC BY-SA 4.0
2019-04-17T14:11:27.427
54266
2019-04-17T14:11:27.427
32961
54066
answer


SPRESENSE の BLEアドオンボードの UUID が分からない件、下記の方法で取得できましたので備忘録を兼ねて共有します。環境は Windows10
です。

【STEP1】Anaconda 等でBLEライブラリ "Bleak" をインストール

[code]

    pip install bleak
    
[/code]

【STEP2】MACアドレスを取得するための Pythonコードを記述

[code]

    import asyncio
    from bleak import discover
    
    async def run():
      devices = await discover()
      for d in devices:
        print(d)
    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run())
    
[/code]

【STEP3】 SPRESENSE+BLEをリセットし、Pythonコードを実行（MACアドレスが表示されます）

[code]

    (SPRESENSEをリセット)
    > python scan.py  
    XX:XX:XX:XX:XX:XX: LapisDev <-- MACアドレス
    
[/code]

【STEP4】Deviceのサービスを取得するための Python コードを記述し保存（ここでは "getservice.py" とします）

[code]

    import asyncio
    from bleak import BleakClient
    
    address = "XX:XX:XX:XX:XX:XX"   # MAC Address
    
    async def run(address, loop):
      async with BleakClient(address, loop=loop) as client:
        x = await client.is_connected()
        print("Connected: {0}".format(x))
        svcs = await client.get_services()
        print("Services:")
        for service in svcs:
          print(service)
    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run(address, loop))
    
[/code]

【STEP5】SPRESENSE＋BLEをリセットし、Python コードを実行

[code]

    (SPRESENSEをリセット)
    > python getservice.py  
    Connected: True
    Services:
    00001800-0000-1000-8000-00805f9b34fb (Handle: 1): Generic Access Profile
    00001801-0000-1000-8000-00805f9b34fb (Handle: 257): Generic Attribute Profile
    0000180a-0000-1000-8000-00805f9b34fb (Handle: 513): Device Information
    0000180f-0000-1000-8000-00805f9b34fb (Handle: 769): Battery Service
    0179bbd0-5351-48b5-bf6d-2167639bc867 (Handle: 1025): Unknown
    
[/code]

終了時に時折タイムアウトエラーが出ますが、UUIDは取得できるのでご容赦ください。


CC BY-SA 4.0
2021-04-23T01:41:08.147
75461
2021-04-23T01:41:08.147
27334
54066
answer