diff --git a/ble_main.py b/ble_main.py new file mode 100644 index 0000000..6608db2 --- /dev/null +++ b/ble_main.py @@ -0,0 +1,68 @@ +import sys + +sys.path.append("") + +from micropython import const + +import uasyncio as asyncio +import aioble +import bluetooth + +import random +import struct + +# org.bluetooth.service.environmental_sensing +_ENV_SENSE_UUID = bluetooth.UUID(0x181A) +# org.bluetooth.characteristic.temperature +_ENV_SENSE_TEMP_UUID = bluetooth.UUID(0x2A6E) +# org.bluetooth.characteristic.gap.appearance.xml +_ADV_APPEARANCE_GENERIC_THERMOMETER = const(768) + +# How frequently to send advertising beacons. +_ADV_INTERVAL_MS = 250_000 + + +# Register GATT server. +temp_service = aioble.Service(_ENV_SENSE_UUID) +temp_characteristic = aioble.Characteristic( + temp_service, _ENV_SENSE_TEMP_UUID, read=True, notify=True +) +aioble.register_services(temp_service) + + +# Helper to encode the temperature characteristic encoding (sint16, hundredths of a degree). +def _encode_temperature(temp_deg_c): + return struct.pack("