Micropython support for BLE iBBQ thermometers such as those made by Inkbird.
This driver depends on uasyncio
and aioble.
Note that aioble requires a build of MicroPython created after Feb 18 2021 which are the unstable 1.14 releases or 1.15.
- Read temperature levels from all probes
- Read battery level
- Set the display to either celcius or farenheit (temperature readings are in celcius)
- Asynchronous api
Connect and read the temperature
def handle_data(d):
print("Result:", d)
async def run():
ibbq = iBBQ(handle_data)
await ibbq.connect()
await ibbq.disconnect()
asyncio.run(run())
Read the battery level
async def run():
ibbq = iBBQ(handle_data)
await ibbq.connect()
print("Battery:", await ibbq.battery_level())
await ibbq.disconnect()
asyncio.run(run())
Set the units on the display
async def run():
ibbq = iBBQ(handle_data)
await ibbq.connect()
await ibbq.set_display_to_celcius()
await ibbq.set_display_to_farenheit()
await ibbq.disconnect()
asyncio.run(run())
Adafruit circuitpython iBBQ and Go iBBQ were very useful for decoding the iBBQ protocol. The Adafruit library in particular has an empirically worked formula for calculating the battery voltage.