#include <DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
DHTesp dhtSensor;
TempAndHumidity data;
const int TRIG = 27;
const int ECHO = 14;
float distance;
long duration;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
unsigned long CHANNEL_ID = 2614272;
const char* WRITE_API_KEY = "TGA3130M5K5W00U8";
int status;
const int DHT_PIN = 25;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
dhtSensor.setup(DHT_PIN,DHTesp::DHT22);
pinMode(TRIG, OUTPUT);
pinMode(ECHO,INPUT);
pinMode(19, OUTPUT);
pinMode(34, INPUT);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void getWifi(){
if(WiFi.status()!=WL_CONNECTED){
Serial.println("Atempting to connect");
while(WiFi.status()!=WL_CONNECTED)
{
WiFi.begin(ssid,pass);
Serial.println(".");
delay(5000);
}
Serial.println("connected");
};
}
void loop() {
getWifi();
data = dhtSensor.getTempAndHumidity();
Serial.println("Humidity : " + String(data.humidity));
Serial.println("Temperature : " + String(data.temperature));
// put your main code here, to run repeatedly:
digitalWrite(TRIG,LOW);
delayMicroseconds(10);
digitalWrite(TRIG, HIGH);
duration = pulseIn(ECHO,HIGH);
distance = 0.017*duration;
Serial.println("distance : " + String(distance));
Serial.println("---------------------");
int volt = analogRead(34);
int intensity = map(volt,0,4095,0,255);
analogWrite(19,intensity);
Serial.println(String(volt));
Serial.println(String(intensity));
ThingSpeak.setField(1,data.humidity);
ThingSpeak.setField(2,data.temperature);
ThingSpeak.setField(3,distance);
ThingSpeak.setField(4,volt);
ThingSpeak.setField(5,intensity);
status = ThingSpeak.writeFields(CHANNEL_ID,WRITE_API_KEY);
if(status == 200){
Serial.println("Channel updated succesfully");
}
else{
Serial.println("Problem with writing data , HTTP errror code : " + String(status));
}
delay(15000); // this speeds up the simulation
}