delay(60);

// Add 1kΩ resistor from Echo to ESP32 pin, and 2kΩ from pin to GND. // Then code same as Arduino but use pulseIn() or interrupts. 10.3 Raspberry Pi (Python) import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) TRIG = 23 ECHO = 24 GPIO.setup(TRIG, GPIO.OUT) GPIO.setup(ECHO, GPIO.IN) aj sr04m datasheet

long duration = pulseIn(ECHO, HIGH, 30000); // timeout 30ms (≈5m) if (duration == 0) Serial.println("Out of range"); else float distance = duration / 58.3; Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm"); delay(60); // Add 1kΩ resistor from Echo to

Some versions have a 5th pin (EN – Enable), but standard 4-pin is most common. If present, tie EN to VCC to enable. Wiring Example (Arduino): AJ-SR04M → Arduino Uno VCC → 5V Trig → Digital Pin 9 Echo → Digital Pin 10 GND → GND 3. Theory of Operation & Timing Diagram The AJ-SR04M uses the same timing protocol as HC-SR04, but with improved signal conditioning for longer cable runs. If present, tie EN to VCC to enable