This tutorial will show you how to use a tilt sensor with an ESP32 to detect if you car is upside down.
Then send a message and/or play a sound.

Buy the Parts

Disclosure: These are affiliate links. I earn a little comission if you use my links to buy the parts.
Please use them to help me continue building cool projects.

How a Tilt Sensor Works

  • A tilt sensor acts like a switch. When tilted, a small metal ball inside the sensor moves, either closing or breaking the circuit. The ESP32 can read this as a digital signal:

    • LOW (0) when the circuit is closed.
    • HIGH (1) when the circuit is open.

Wiring the Tilt Sensor

  • Connect one pin of the tilt sensor to a GPIO pin on the ESP32 (e.g., GPIO14).
  • Connect the other pin of the tilt sensor to GND.
  • Add a pull-up resistor (10kΩ) between the GPIO pin and 3.3V to stabilize the signal (optional but recommended).

Step 1: Write the Code

This code reads the tilt sensor’s state and outputs the result to the Serial Monitor.

  // Define the pin for the tilt sensor const int tiltSensorPin = 4; void setup() { // Initialize the serial monitor Serial.begin(115200); // Set the tilt sensor pin as an input pinMode(tiltSensorPin, INPUT); Serial.println("Tilt sensor ready. Tilt to see changes!"); } void loop() { // Read the tilt sensor's state int tiltState = digitalRead(tiltSensorPin); // Print the state to the serial monitor if (tiltState == LOW) { Serial.println("Tilt detected!"); } else { Serial.println("No tilt detected."); } delay(500); // Wait 500 ms for better readability }

Step 2: Upload the Code

  • Connect your ESP32 to your computer via USB.
  • Open the Arduino IDE.
  • Select the correct board and port under Tools.
  • Upload the code to the ESP32.

Step 3: Test Your Setup

  1. Open the Serial Monitor (set the baud rate to 115200).
  2. Tilt the sensor and observe the changes in the Serial Monitor.

Troubleshooting

1. No response in Serial Monitor:

  • Check the wiring and ensure the tilt sensor is properly connected.
  • Verify that the correct GPIO pin is specified in the code.

2.Unstable readings:

  • Add a pull-up resistor between the GPIO pin and 3.3V.
Scroll to Top