#include <DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
#define SECRET_SSID "Wokwi-GUEST"
#define SECRET_PASS ""
#define SECRET_CH_ID 1417788
#define SECRET_WRITE_APIKEY "3KV532F00HG2SENB"
char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;
int keyIndex = 0;
WiFiClient client;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;
const int DHT_PIN = 12; // Jalan Persisiran Pantai Kuala Perlis
const int DHT_PIN2 = 13; // Jalan Kangar - Alor Setar
const int DHT_PIN3 = 15; // Jalan UniMAP Ulu Pauh
DHTesp dhtSensor;
DHTesp dhtSensor2;
DHTesp dhtSensor3;
void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
dhtSensor2.setup(DHT_PIN2, DHTesp::DHT22);
dhtSensor3.setup(DHT_PIN3, DHTesp::DHT22);
while (!Serial){
;
}
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop() {
if(WiFi.status() != WL_CONNECTED)
{
Serial.print("Attempting to connect to SSID");
Serial.println(SECRET_SSID);
while(WiFi.status() !=WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp Jalan Persisiran Pantai Kuala Perlis: " + String(data.temperature, 2)+"°C");
Serial.println("Humidity Jalan Persisiran Pantai Kuala Perlis : " + String(data.humidity, 1) + "%");
TempAndHumidity data2 = dhtSensor2.getTempAndHumidity();
Serial.println("Temp Jalan Kangar - Alor Setar : " + String(data2.temperature, 2)+"°C");
Serial.println("Humidity Jalan Kangar - Alor Setar : " + String(data2.humidity, 1) + "%");
TempAndHumidity data3 = dhtSensor3.getTempAndHumidity();
Serial.println("Temp Jalan UniMAP Ulu Pauh: " + String(data3.temperature, 2)+"°C");
Serial.println("Humidity Jalan UniMAP Ulu Pauh: " + String(data3.humidity,1) + "%");
Serial.println("---");
ThingSpeak.setField(1, data.temperature);
ThingSpeak.setField(2, data.humidity);
ThingSpeak.setField(3, data2.temperature);
ThingSpeak.setField(4, data2.humidity);
ThingSpeak.setField(5, data3.temperature);
ThingSpeak.setField(6, data3.humidity);
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(x == 200)
{
Serial.println("Channel update successful.");
}
else
{
Serial.println("Problem updating channel. HTTP error code" + String(x));
}
delay(15000);
}