openmv/scripts/examples/50-Arduino-Boards/Nano-33-BLE-Sense/10-Bluetooth/ble_blinky.py
iabdalkader 98a29e0870 scripts/examples: Update examples.
- Add examples index.
- Remove RP2040's Bluetooth examples.
- Resort examples.
2023-10-29 21:21:55 +01:00

42 lines
1.2 KiB
Python

# This work is licensed under the MIT license.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Use nRF Connect from App store, connect to the Nano and write 1/0 to control the LED.
import time
from board import LED
from ubluepy import Service, Characteristic, UUID, Peripheral, constants
def event_handler(id, handle, data):
global periph
global service
if id == constants.EVT_GAP_CONNECTED:
pass
elif id == constants.EVT_GAP_DISCONNECTED:
# restart advertisement
periph.advertise(device_name="Nano Blinky", services=[service])
elif id == constants.EVT_GATTS_WRITE:
LED(1).on() if int(data[0]) else LED(1).off()
# start off with LED(1) off
LED(1).off()
notif_enabled = False
uuid_service = UUID("0x1523")
uuid_led = UUID("0x1525")
service = Service(uuid_service)
char_led = Characteristic(uuid_led, props=Characteristic.PROP_WRITE)
service.addCharacteristic(char_led)
periph = Peripheral()
periph.addService(service)
periph.setConnectionHandler(event_handler)
periph.advertise(device_name="Nano Blinky", services=[service])
while True:
time.sleep_ms(500)