#include <Adafruit_Sensor.h>
#include <DHT.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;
#define DHT1_PIN 12
#define DHT2_PIN 13
#define DHT3_PIN 15
#define DHTTYPE DHT22 // DHT 22
DHT dht1(DHT1_PIN, DHTTYPE);
DHT dht2(DHT2_PIN, DHTTYPE);
DHT dht3(DHT3_PIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht1.begin();
dht2.begin();
dht3.begin();
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.");
}
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();
float h2 = dht2.readHumidity();
float t2 = dht2.readTemperature();
float h3 = dht3.readHumidity();
float t3 = dht3.readTemperature();
if (isnan(h1) || isnan(t1) || isnan(h2) || isnan(t2) || isnan(h3) || isnan(t3)) {
Serial.println("Failed to read from DHT sensors!");
return;
}
Serial.print("Temperature1: ");
Serial.print(t1);
Serial.print("°C Humidity1: ");
Serial.print(h1);
Serial.println("%");
Serial.print("Temperature2: ");
Serial.print(t2);
Serial.print("°C Humidity2: ");
Serial.print(h2);
Serial.println("%");
Serial.print("Temperature3: ");
Serial.print(t3);
Serial.print("°C Humidity3: ");
Serial.print(h3);
Serial.println("%");
ThingSpeak.setField(1, data.temperature);
ThingSpeak.setField(2, data.humidity);
ThingSpeak.setField(3, data.temperature);
ThingSpeak.setField(4, data.humidity);
ThingSpeak.setField(5, data.temperature);
ThingSpeak.setField(6, data.humidity);
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(x == 200)
{
Serial.println("Channel update successful.");
}
else
{
Serial.println("Problrm updating channel. HTTP error code" + String(x));
}
delay(15000);
}