The HC-SR04 ultrasonic sensor uses sonar to determine distance to an object like bats or dolphins do. Ultrasonic ranging module HC-SR04 provides 2cm – 400cm measurement, the ranging accuracy can reach to 3mm. The modules includes ultrasonic transmitters, receiver and control circuit.
How it works:
(1) IO trigger for at least 10us high level signal
(2) The Module automatically sends eight 40 kHz and detects whether there is a pulse signal back.
(3) If there is a signal back, through high level , time of high output IO duration is the time from sending ultrasonic pulse to return.
Test distance = (high level time × velocity of sound (340M/S) / 2)
Here is a picture of one of these modules
Parts List
Here are the parts I used
Name | Links | |
Wemos Mini | ||
HC-SR04 | ||
Connecting cables |
Wiring
The HC-SR04 Ultrasonic Module has 4 pins these are Ground, VCC, Trig and Echo. The Ground and the VCC pins of the module needs to be connected to the Ground and the 5 volts pins on the Wemos Mini respectively and the trig and echo pins to any Digital I/O pin on the Wemos Mini, in our example we use D6 for Trig and D7 for Echo
Here is a breadboard layout showing how to connect a wemos mini and HC-SR04
Code
#define echoPin D7 // Echo Pin #define trigPin D6 // Trigger Pin long duration, distance; // Duration used to calculate distance void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { /* The following trigPin/echoPin cycle is used to determine the distance of the nearest object by bouncing soundwaves off of it. */ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); //Calculate the distance (in cm) based on the speed of sound. distance = duration/58.2; Serial.println(distance); //Delay 50ms before next reading. delay(50); }
Output
As you can see in the output below no object was detected inside about 73 centimetres on average
Doesn’t 5V coming out of the sensor too much for the mini board?
I am using the mini pro and I know it can only tolerate 3.3V.
No, not working at all. Tried 2 different HC-SR04 ultrasonic sensors. 0 cm problem
Hi
5 v supply to the HS04 and 1 k ohm from Ecco to Ecco pin on esp8266
then its working fine
KR Henrik Schack
@Henrik. It is not working for me as well. However you say 1k ohm from echo to echo pin. Could you clarify this? Thanks in advance.
@Nick, I had similar problem as yours but on WeMos D1 R2. Later I found that the problem was due to pin number mapping. I was using pin 12 for echo and 13 for trigger and connected sensor to these pins, i.e, D12 and D13 on the WeMos board. But pins referred to in sketch do not directly corresponds to the the pins on the board as WeMos D1 R2 pin numbers do not match with those of Arduino board. Refer to https://github.com/esp8266/Arduino/blob/master/variants/d1/pins_arduino.h for more info. These pins 12 and 13 correspond to D6 and D7 on the WeMos board. Once I connected the sensor to these pins D6 and D7 but referred to them in the sketch as 12 and 13, the distance started working correctly! Good luck.
VIDYASAGAR, Your comment was useful, I made water proof ultrasonic sensor work with Witty cloud, it gives correct distance however the output is not stable , it fluctuates to different values in between, do you have any idea why ?
Thanks for your comment. Was very helpful