#include <WiFi.h>
#include "ThingSpeak.h"
const char* ssid = "Wokwi-GUEST"; // Nama jaringan WiFi Anda
const char* password = ""; // Kata sandi jaringan WiFi Anda
const char* thingSpeakApiKey = "W3X3ASWMS69NFPZQ"; // Kunci API ThingSpeak Anda
const int ThingSpeakChannelID = 2341259; // ID Saluran ThingSpeak Anda
const char* server = "api.thingspeak.com";
const float GAMMA = 0.7;
const float RL10 = 50; // Nilai konstanta resistansi RL10
#define LDRanalog 34
#define LDRdigital 26
#define LED1 18
#define LED2 19
WiFiClient client;
void setup() {
Serial.begin(115200); // Inisialisasi komunikasi serial dengan baud rate 115200
pinMode(LED1, OUTPUT); // Konfigurasi pin LED1 sebagai output
pinMode(LED2, OUTPUT); // Konfigurasi pin LED2 sebagai output
connectToWiFi(); // Fungsi untuk menghubungkan ke jaringan WiFi
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop() {
int nilaiDigital = digitalRead(LDRdigital);
int nilaiADC = analogRead(LDRanalog);
//*****LDR, menghitungR V, , LUX (hanya jika menggunakan A0****
float voltage = nilaiADC * 5 / 4095.0;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
Serial.print("Nilai Digital = ");
Serial.println(nilaiDigital);
Serial.print("Nilai ADC = ");
Serial.println(nilaiADC);
Serial.print("Lux = ");
Serial.println(lux);
Serial.print("Tegangan = ");
Serial.println(voltage);
if (lux > 500) {
digitalWrite(LED1, HIGH); // Nyalakan LED1
digitalWrite(LED2, LOW); // Matikan LED2
} else if (lux < 500) {
digitalWrite(LED1, LOW); // Matikan LED1
digitalWrite(LED2, HIGH); // Nyalakan LED2
} else {
digitalWrite(LED1, LOW); // Matikan LED1
digitalWrite(LED2, LOW); // Matikan LED2
}
if (WiFi.status() == WL_CONNECTED) { // Cek status koneksi WiFi
ThingSpeak.setField(1, lux); // Set nilai field 1 di ThingSpeak
int httpCode = ThingSpeak.writeFields(ThingSpeakChannelID, thingSpeakApiKey); // Kirim data ke ThingSpeak
if (httpCode == 200) {
Serial.println("Data sent to ThingSpeak successfully."); // Pesan jika data terkirim dengan sukses
} else {
Serial.println("Error sending data to ThingSpeak. HTTP code: " + String(httpCode)); // Pesan jika terjadi kesalahan pengiriman data
}
} else {
Serial.println("WiFi not connected. Reconnecting..."); // Pesan jika WiFi tidak terhubung
connectToWiFi(); // Coba menghubungkan ulang ke WiFi
}
delay(15000); // Tunggu selama 15 detik sebelum mengirim data lagi ke ThingSpeak
}
void connectToWiFi() {
WiFi.begin(ssid, password); // Coba menghubungkan ke WiFi
while (WiFi.status() != WL_CONNECTED) { // Tunggu hingga perangkat terhubung
delay(1000);
Serial.println("Connecting to WiFi..."); // Pesan saat mencoba menghubungkan
}
Serial.println("WiFi connected."); // Pesan jika berhasil terhubung ke WiFi
}