Skip to content

Micropython support for BLE iBBQ thermometers such as those made by Inkbird.

License

Notifications You must be signed in to change notification settings

cookejames/uibbq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Micropython iBBQ

Micropython support for BLE iBBQ thermometers such as those made by Inkbird.

Dependencies

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.

Features

  • Read temperature levels from all probes
  • Read battery level
  • Set the display to either celcius or farenheit (temperature readings are in celcius)
  • Asynchronous api

Usage

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())

Credits

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.

About

Micropython support for BLE iBBQ thermometers such as those made by Inkbird.

Topics

Resources

License

Stars

Watchers

Forks

Languages