#include "DHT.h"
#include <WiFi.h>
#include "ThingSpeak.h"
const char* WIFI_NAME = "Wokwi-GUEST";
const char* WIFI_PASSWORD = "";
const int myChannelNumber =2474831;
const char* myApiKey = "PJZLW3O2OAUMIU93";
const char* server = "api.thingspeak.com";
WiFiClient client;
int led = 17;
int buzzer = 5;
#define DHTPIN 2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
int kondisi;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
dht.begin();
WiFi.begin(WIFI_NAME, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED){
delay(1000);
Serial.println("Wifi not connected");
}
Serial.println("Wifi connected !");
Serial.println("Local IP: " + String(WiFi.localIP()));
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
Serial.println("Hello, ESP32!");
}
void loop() {
// alarm(1000,100);
dht22 ();
}
void alarm(int f, int d){
digitalWrite(led, HIGH);
tone(buzzer, f);
delay(d); // this speeds up the simulation
digitalWrite(led, LOW);
noTone(buzzer);
delay(d); // this speeds up the simulation
}
void dht22 (){
delay(500);
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.println(F("°C "));
if(t > 40){
alarm(10000,50);
kondisi = 40;
}
else if (t >= 30 && t <=40){
alarm(5000,500);
kondisi = 30;
}
else {
alarm(1000,1000);
kondisi = 0;
}
ThingSpeak.setField(1,t);
ThingSpeak.setField(2,h);
ThingSpeak.setField(3,kondisi);
int x = ThingSpeak.writeFields(myChannelNumber,myApiKey);
if(x == 200){
Serial.println("Data pushed successfull");
}else{
Serial.println("Push error" + String(x));
}
}