[/img][/img]I am building a car - from scratch. The framework is done, base covering in fiberglass is done - waiting on winter to end to finish. The driver’s display will be 3 Raspberry Pi 3, each with a 7” touch display.I found a lebluetooth Tire Pressure Monitoring System (TPMS) for $37 (US) on eBay. These units display the temperature and pressure of each tire on an iOS or Android device. I am trying to integrate them into my Raspberry Pi 3 - so far without any luck.
Using my iPad and an app called BLE Scan Raw, I can see the data being sent from each of the TPMS. It looks like this:
6BD5: | RSSI -61 dBm | CON No | NAME TPMS3_3001D0 | UUID FB B0 | MFR 00 01 82 EA CA 30 01 D0 37 07 00 00 09 92 00 00 64 00
The part with the data is the MFR. The first two bytes 00 01 are present for all 4 sensors. The next 6 bytes is the MAC address: 82 EA CA 30 01 D0. The next two bytes is the pressure, with the low byte first, expressed in KPa: 37 07 in the correct order would be 0x0737 which in decimal is 1847 which would be read 18.47 KPa - the same pressure displayed on my iPhone app. The next two bytes are: 00 00, and the same values at all times. The next two bytes: 92 09 is the temperature in Centigrade. 0x0992 converted to decimal is 2450 which is read as 24.50 degrees Centigrade. The last four bytes never change: 00 00 64 00
With the tools I have found so far with the Raspberry Pi, I can get the MAC address of each TPMS, but have not found a way to capture the manufacture data when the TPMS sends it out.
Any suggestions of how to do this in C would be greatly appreciated.
Kind regards,
David