#include <WiFi.h>
#include <ThingSpeak.h>
#include <Wire.h>
#include <DHT.h> //library DHT
// #include <Adafruit_Sensor.h>
// #include <Adafruit_BME280.h>
WiFiClient client;
#define lampu1 14 // Pin untuk LED
#define lampu2 13 // Pin untuk LED
#define lampu3 4 // Pin untuk LED
#define DHTPIN 5 // Pin untuk membaca suhu
#define DHTTYPE DHT22 //mendefinisikan type dari DHT
DHT dht(DHTPIN, DHTTYPE); //mengatur pin DHT dan type DHT
// Konfigurasi WiFi dan Thingspeak
const char *ssid = "Wokwi-GUEST"; //setting nama wifi router
const char *pass = ""; //password wifi router
unsigned long ChannelNumber = 2456417; // Nomor Channel ThingSpeak
const char * ReadAPIKey = "ZHSVS26OXODHKFLL"; // Nomor Read API key
const char * myWriteAPIKey = "F102T6M2T1PYBP6O"; //memasukan apikey
const int FieldNumber1 = 1; // Nomor field 1
const int FieldNumber2 = 2; // Nomor field 2
const int FieldNumber3 = 3; // Nomor field 3
const int FieldNumber4 = 4; // Nomor field 3
uint8_t temperature, humidity;
// Inisialisasi sensor BME280
// Adafruit_BME280 bme;
void setup() {
// LED
pinMode(lampu1, OUTPUT);
pinMode(lampu2, OUTPUT);
pinMode(lampu3, OUTPUT);
Serial.begin(115200);
Serial.println();
WiFi.begin(ssid, pass);
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
// DHT22
dht.begin(); //memulai sensor DHT.
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass); //menghubungkan dengan wifi router
while (WiFi.status() != WL_CONNECTED) //Cek koneksi Wifi.
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client); //melakukan inisialisasi ke thingspeak
}
void loop() {
int A = ThingSpeak.readLongField(ChannelNumber, FieldNumber1, ReadAPIKey);
int B = ThingSpeak.readLongField(ChannelNumber, FieldNumber2, ReadAPIKey);
int C = ThingSpeak.readLongField(ChannelNumber, FieldNumber3, ReadAPIKey);
// Menghidupkan dan mematikan lampu1
if(A == 1){
Serial.println("lampu1 Nyala");
digitalWrite(lampu1, HIGH);
} else if(A == 0) {
Serial.println("lampu1 Mati");
digitalWrite(lampu1, LOW);
}
// Menghidupkan dan mematikan lampu2
if(B == 1){
Serial.println("lampu2 Nyala");
digitalWrite(lampu2, HIGH);
} else if(B == 0){
Serial.println("lampu2 Mati");
digitalWrite(lampu2, LOW);
}
if(C == 1){
Serial.println("lampu3 Nyala");
digitalWrite(lampu3, HIGH);
} else if(C == 0){
Serial.println("lampu3 Mati");
digitalWrite(lampu3, LOW);
}
// DHT22
float temperature = dht.readTemperature(); //membaca suhu pada sensor DHT11
float humidity = dht.readHumidity(); //membaca kelembaban sensor DHT11
if (temperature<30){
digitalWrite(4, HIGH);
digitalWrite(13, LOW);
digitalWrite(14, LOW);
}
if (temperature>=30){
digitalWrite(4, LOW);
digitalWrite(13, HIGH);
digitalWrite(14, LOW);
}
if (temperature>60){
digitalWrite(4, LOW);
digitalWrite(13, LOW);
digitalWrite(14, HIGH);
}
Serial.print("Temperature Value is :");
Serial.print(temperature);
Serial.println("C");
Serial.print("Humidity Value is :");
Serial.print(humidity);
Serial.println("%");
ThingSpeak.writeField(ChannelNumber, 1, temperature, myWriteAPIKey);
ThingSpeak.writeField(ChannelNumber, 2, humidity, myWriteAPIKey);
//data akan tampilkan pada thingspeak sesuai dengan akun yang dihubungkan
delay(1000);
}