My project (just completed) is to add support for the RuuviTag device into the BASIC interpreter of my “Best Calculator, IOT edition” app. The latest update was just published on the Windows app store.
Hooking up the ruuvi was pretty easy except that the temperature data format was a surprise (the upper byte isn’t a regular 2’s complement number; it’s a sign-magnitude value). And my BASIC interpreter never had to deal with EddyStone formats before. Once I could support EddyStone in general, supporting the RuuviTag was simple.
Here’s a simple BASIC program that picks apart each Ruuvi broadcast:
Bluetooth.Watch (“RuuviTag”, “ruuvi”) MAXTIME = 10 FOR time = 1 TO MAXTIME Screen.ClearLine (1) now = DateTime.GetNow() PRINT now.Time PAUSE 50 NEXT time FUNCTION ruuvi (address, rssi, txpower, ↲ temperature, pressure, humidity) Screen.ClearLines (3, 9) PRINT “Temperature”, temperature PRINT “Pressure”, pressure PRINT “Humidity”, humidity PRINT AT 7,1 "Address", address PRINT "RSSI", rssi PRINT "TX", txpower END