In this tutorial, we’ll use an end switch (also known as a limit switch) with an ESP32 to simulate a crash detection system. The end switch will act as a simple sensor that detects when it’s pressed, indicating a “crash.”

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 it Works

The end switch acts as a momentary switch. When the lever or button is pressed, the circuit closes, and the ESP32 detects a LOW signal. When released, the circuit opens, and the ESP32 detects a HIGH signal.

Wiring the End Switch

  • Connect the common terminal (COM) of the end switch to a GPIO pin on the ESP32 (e.g., GPIO14).
  • Connect the normally open (NO) terminal of the switch to GND.
  • Add a pull-up resistor (10kΩ) between the GPIO pin and 3.3V (optional but recommended for stable readings).

Step 1: Write the Code

This code detects when the end switch is pressed (indicating a crash) and prints a message to the Serial Monitor.

				
					// Define the pin for the end switch
const int crashSensorPin = 5;

void setup() {
  // Initialize the serial monitor
  Serial.begin(115200);

  // Set the crash sensor pin as an input
  pinMode(crashSensorPin, INPUT_PULLUP); // Use internal pull-up resistor

  Serial.println("Crash sensor ready. Press the switch to simulate a crash!");
}

void loop() {
  // Read the crash sensor state
  int sensorState = digitalRead(crashSensorPin);

  // Detect a crash
  if (sensorState == LOW) {
    Serial.println("Crash detected!");
  } else {
    Serial.println("No crash 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.

Step 3: Test Your Setup

  • Open the Serial Monitor (set the baud rate to 115200).
  • Press the end switch lever or button to simulate a crash.
    • You should see “Crash detected!” in the Serial Monitor.
    • Release the switch, and you should see “No crash detected.”

Troubleshooting Tips

Switch not detected:

  • Check the wiring and ensure the correct GPIO pin is used in the code.
  • Verify the switch’s terminals (COM and NO).

Unstable readings:

  • Ensure the pull-up resistor is in place or use the internal pull-up resistor in the code (INPUT_PULLUP).
Scroll to Top