Hi All,
I'm using arduino uno with ESP01 wifi module to send current and ultrasonic sensors to cloud.
Wifi configured and working fine and data sent successfully to cloud, BUT when i add the part if ultrasonic using newPing library and once upload code to arduino , i got time out when i ping the IP! and if i comment this part of code , everything eorks fine.
double measureLevel(double dim1 , double dim2 , String shape,double totalvolume){
unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
double distance = (uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range)
double levelvol = distance *dim1*dim2;
return levelvol;
}
hence ,
when i comment the line of sonar.ping() and replace it with constant figure Wifi works fine .
Yes, if i discarded the Wifi and print the value out of ping() it works .
also i tried again without using newPing library , i used the following example but also once it loaded to arduino , ping to IP return with time out response while the example itself works fine.
const int trigPin = 12;
const int echoPin = 11;
void setup() {
// initialize serial communication:
Serial.begin(9600);
}
void loop()
{
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, inches, cm;
// The sensor is triggered by a HIGH pulse of 10 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100);
}
long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
i found out the cause of the problem , the reason of wifi disconnect is that the EN pin should be HIGH 3.3v always but in my case once Arduino communicate with Ultrasonic sensor the Power of EN goes 0v .
so i removed the resistor between 3.3v and EN pin and it works fine