Using an ESP32/OLED module and CC1101 receiver for receiving & displaying TPMS data and sending via BLE to a smartphone
Please note: Refer to sourcecode for changes in actual module interface details beyond what is stated in this readme.
The following is Avi Carmeli's Readme from https://github.com/avicarmeli/TPMS-SDR/
Some TPMS (Tire Pressure Monitor System) sensors transmit RF data. Older car models (such as my Nissan Micra 2014) Have only warning light to indicate that the pressure of one of the tires is too low. It is possible to use RTL-SDR with RTL_433 to read the RF data. Such implementation for Arduino boards and small display was assembled as a stand alone system (Toyota TPMS project).
This Project will use ESP32 as the main Board together with CC1101 board to read TPMS data and to send that data over BLE so that data would be received by either cellphone or Android car multimedia app that would display the data and generate needed alerts.
Specifically this project is aimed at forwarding the TPMS data to TPMS Advancved android app.
- Porting the code to ESP32.
- Sending sensors data over BLE to imitate Sysgration BLE sensors so it can be displayed in cellphone app.
- ESP32 Dev kit such as that. - 4$
- CC1101 module such as that. - 2.7$
- Small project box such as that. - 1.5$
- Total under 8$
See wiring diagram in DOCS.
- Arduino IDE.
- ESP32 Board (I use DEV Kit).
- CC1101 Board (I use 8 pins TZT CC1101).
- Install in Arduio IDE the following libraries:
- TickTwo
- BLEDevice
- BLEUtils.h
- BLEServer.h
- locate the directory where Arduino IDE stores the projects (for windows usually in Arduino folder under DOCS).
- Download Zip file of the repo using the Green Code pull down on the upper right corner of this page.
- Unzip the foldeer into the Arduino projects folder you located.
- Opened Arduino IDE.
- Open the TPMS-SDR project.
- Navigate to the configs.h tab and at line 93 insert you RF TPMS ID for each tire.
- Make sure to select in the config.h file the type of car sensors you have.
- Under Tools menu select your board type.
- Connect your board to the USB port.
- Under the Tools menu select your COM port.
- Hit the upload button on the upper left corner (right arrow icon).
- If there are any errors follow the messages (most likely it is missing library).
- Depend on the board you use you might need to manually put your board into upload mode (usually holding both push buttons then releasing the reset butteon and only after a second or so the other button).
- When upload is done you might need to reset the board again.
- Successful run will yield the next output:
STARTING...
Software version 11.9
Configured for processor type ESP32
No LCD display configured - Serial output only
Resetting CC1101 .....
CC1101 reset successful
CC1101 configured for UK (433MHz)and Renault TPMS sensor
CC1101 Part no: 0
CC1101 Version: 4
Config verification OK
Preset IDs: 0x3145D, 0x31464, 0x31426, 0x3144C, 0x1FFFFFF
entering LOOP
- דובב..
- Install TPMS Advanced from Play store.
- Open The app.
- On the upper left choose bind sensors then select SCAN QR Code Sysgration sensors.
- Scan This QR code.
- You are done.
- Data will show up in the TPMS advanced app only when sensors are transmitting (some cars sensors transmit only after certain speed was reached).