#include<WiFi.h>
#include<ThingSpeak.h>
char ssid[]="Wokwi-GUEST";// default user name for wifi
char pass[]="";
WiFiClient client;
unsigned long myChannelNumber = 2231178;
const char * myWriteAPIKey = "44G9HY60Q65XRSWC";
int statuscode;
const int pingPin = 5; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 17; // Echo Pin of Ultrasonic Sensor
void setup() {
Serial.begin(9600); // Starting Serial Terminal
WiFi.mode(WIFI_STA); //connect to wifi simulator
ThingSpeak.begin(client); // connect to thingspeak
}
void loop() {
long duration, inches, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("inches, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(400);
if(WiFi.status() != WL_CONNECTED)
{
Serial.println("Attempting to Connect");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid,pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected");
}
ThingSpeak.setField(1, inches);
ThingSpeak.setField(2, cm);
statuscode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(statuscode == 200) //200 indicates success update
{
Serial.println("Channel Update Successful");
}
else
{
Serial.println("Problem in writing Data:" + String(statuscode));
}
delay(15000);
}
long microsecondsToInches(long microseconds) { //user defined function
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds) { // user defined function
return microseconds / 29 / 2;
}