#include <WiFi.h>
#include <ThingSpeak.h>
int trigger = 14;
int echo = 12;
int pir = 27;
int buz = 16;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
long myChannelNumber =2627272 ;
const char * myWriteAPIKey = "1G59647VKWZL6XMN";
int statusCode;
WiFiClient client;
void setup() {
ThingSpeak.begin(client);
Serial.begin(115200);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(buz, OUTPUT);
pinMode(pir, INPUT);
WiFi.mode(WIFI_STA);
}
void loop() {
if (WiFi.status() != WL_CONNECTED)
{
Serial.print("Attempting to connect");
while (WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
if (WiFi.status() == WL_CONNECTED)
{
int actualdistance = ultrasonic();
Serial.println(actualdistance);
delay(1000);
const int IP = digitalRead(pir);
Serial.println(IP);
delay(100);
if (IP == 1 && actualdistance <= 200)
{
tone(buz, 1000);
delay(1000);
}
else
{
noTone(buz);
delay(1000);
}
ThingSpeak.setField(1, actualdistance);
ThingSpeak.setField(2, pir);
statusCode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (statusCode == 200)
{ //successful writing code
Serial.println("Channel update successful.");
}
else
{
Serial.println("Problem Writing data. HTTP error code :" +
String(statusCode));
}
delay(10);
}
}
int ultrasonic ()
{
digitalWrite(trigger, LOW);
delay(10);
digitalWrite(trigger, HIGH);
delay(100);
digitalWrite(trigger, LOW);
int distance = pulseIn(echo, HIGH);
// return(distance);
return (distance * 0.034 / 2) + 1;
}