ここを参考に
scrapbox.io
scan_devices.py
import asyncio from bleak import BleakScanner async def run(): devices = await BleakScanner.discover() for d in devices: print(f"address: {d.address}, name: {d.name}, uuid: {d.metadata['uuids']}") loop = asyncio.get_event_loop() loop.run_until_complete(run())
get_uuid.py
import asyncio from bleak import BleakClient address = "DC:23:4D:68:64:55" async def run(address, loop): async with BleakClient(address, loop=loop) as client: x = client.is_connected print("Connected: {0}".format(x)) for service in client.services: print(f"{service.uuid}: {service.description}: {[f'{c.properties},{c.uuid}' for c in service.characteristics]}") loop = asyncio.get_event_loop() loop.run_until_complete(run(address, loop))
send.py
動いてない
import asyncio from bleak import BleakClient address= "DC:23:4D:68:64:55" #NUS_RX = "6e400002-b5a3-f393-e0a9-e50e24dcca9e" #NUS_TX = "6e400003-b5a3-f393-e0a9-e50e24dcca9e" WRITE = "00002b11-0000-1000-8000-00805f9b34fb" def notif_hndlr(_, data): """Simple notification handler which prints the data received.""" print(data) async def main(address): async with BleakClient(address) as client: #print("Start notify") #await client.start_notify(NUS_TX, notif_hndlr) print("Sending Message...") #await client.write_gatt_char(WRITE, b"\x00\x31\x20") #await client.write_gatt_char(WRITE, b"\x01\xBC\xD4") #await client.write_gatt_char(WRITE, b"\x02\xD0\x3B") await client.write_gatt_char(WRITE, b"\x00\x21\x20") await client.write_gatt_char(WRITE, b"\x01\xD1\xAA") #print("Stopping notify after 3s") #await asyncio.sleep(3) #await client.stop_notify(NUS_TX) print("fin") if __name__ == "__main__": asyncio.run(main(address))