#include <ThingSpeak.h> // Sertakan library ThingSpeak
#include <WiFi.h> // Sertakan library WiFi
#include <OneWire.h> // Sertakan library OneWire untuk sensor DS18B20
#include <DallasTemperature.h> // Sertakan library DallasTemperature
const char *SSID = "Wokwi-GUEST"; // Nama WiFi
const char *PASS = ""; // Kata sandi WiFi
WiFiClient client;
int lampu1 = 25; // Hubungkan LED1 ke D25
int lampu2 = 26; // Hubungkan LED2 ke D26
int lampu3 = 27; // Hubungkan LED3 ke D27
const int sensorPin = 4; // Hubungkan pin data DS18B20 ke D4
OneWire oneWire(sensorPin);
DallasTemperature sensors(&oneWire);
unsigned long ChannelNumber = 2438533; // Nomor Channel ThingSpeak
const char *ReadAPIKey = "Z75AOQ1YSHONGU5Y"; // Kunci API Baca ThingSpeak
const int FieldNumber1 = 1; // Nomor Field ThingSpeak untuk LED1
const int FieldNumber2 = 2; // Nomor Field ThingSpeak untuk LED2
const int FieldNumber3 = 3; // Nomor Field ThingSpeak untuk LED3
const int FieldNumber4 = 4; // Nomor Field ThingSpeak untuk suhu
void setup()
{
pinMode(lampu1, OUTPUT);
pinMode(lampu2, OUTPUT);
pinMode(lampu3, OUTPUT);
Serial.begin(115200);
Serial.println();
WiFi.begin(SSID, PASS);
Serial.print("Menghubungkan");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Terhubung, alamat IP: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
sensors.begin(); // Inisialisasi sensor DS18B20
}
void loop()
{
int A = ThingSpeak.readLongField(ChannelNumber, FieldNumber1, ReadAPIKey);
int B = ThingSpeak.readLongField(ChannelNumber, FieldNumber2, ReadAPIKey);
int C = ThingSpeak.readLongField(ChannelNumber, FieldNumber3, ReadAPIKey);
// Menghidupkan/mematikan LED1
if (A == 1)
{
Serial.println("LED1 Nyala");
digitalWrite(lampu1, HIGH);
}
else if (A == 0)
{
Serial.println("LED1 Mati");
digitalWrite(lampu1, LOW);
}
// Menghidupkan/mematikan LED2
if (B == 1)
{
Serial.println("LED2 Nyala");
digitalWrite(lampu2, HIGH);
}
else if (B == 0)
{
Serial.println("LED2 Mati");
digitalWrite(lampu2, LOW);
}
// Menghidupkan/mematikan LED3
if (C == 1)
{
Serial.println("LED3 Nyala");
digitalWrite(lampu3, HIGH);
}
else if (C == 0)
{
Serial.println("LED3 Mati");
digitalWrite(lampu3, LOW);
}
// Membaca suhu dari sensor DS18B20
sensors.requestTemperatures();
float suhu = sensors.getTempCByIndex(0);
// Memperbarui ThingSpeak dengan data suhu
ThingSpeak.writeField(ChannelNumber, FieldNumber4, suhu, ReadAPIKey);
Serial.print("Suhu: ");
Serial.println(suhu);
delay(10000); // Jeda selama 10 detik sebelum iterasi berikutnya
}