#include <ESP8266WiFi.h>
#include "secrets.h"
#include "ThingSpeak.h" // always include thingspeak header file after other header files and custom macros
int ldr = A0;
#define LED1 D4
#define LED2 D5
#define LED3 D6
#include <LCD_I2C.h>
LCD_I2C lcd(0x27, 16, 2);
char ssid[] = SECRET_SSID; // your network SSID (name)
char pass[] = SECRET_PASS; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)
WiFiClient client;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;
void setup() {
Serial.begin(9600);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client); // Initialize ThingSpeak
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
lcd.begin();
lcd.backlight();
}
void loop() {
// Connect or reconnect to WiFi
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); // Connect to WPA/WPA2 network. Change this line if using open or WEP network
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
int nilai_ldr = analogRead(ldr);
ThingSpeak.setField(1, nilai_ldr);
int x = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
if (x == 200){
Serial.println("Channel update succesful.");
Serial.print("Nilai ADC: ");
Serial.println(nilai_ldr);
//delay(500);
lcd.setCursor(0, 0);
lcd.print("Nilai LDR: ");
lcd.print(nilai_ldr);
lcd.print(" ");
if (nilai_ldr > 600){
digitalWrite(LED1, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED3, LOW);
lcd.setCursor(0, 1);
lcd.print("Kondisi LED: ON");
lcd.print(" ");
}
else {
digitalWrite(LED1, LOW);
lcd.setCursor(0, 1);
lcd.print("Kondisi LED: OFF");
lcd.print(" ");
}
}
else {Serial.println("Problem updating channel. HTTP error code " + String(x));
}
delay(15000);
}