#include "thingProperties.h"
// Define LDR Pin
const int LDRanalog = 15; // Analog pin
const int LDRdigital = 16; // Digital pin
// Constants for Lux calculation
const float GAMMA = 0.7;
const float RL10 = 50;
void setup() {
Serial.begin(9600);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
pinMode(14, OUTPUT); // Set built-in LED pin as output
}
void loop() {
ArduinoCloud.update();
// Read LDR values
int nilaiDigital = digitalRead(LDRdigital);
int nilaiADC = analogRead(LDRanalog);
// Calculate Lux
float voltage = nilaiADC * 5.0 / 4095.0;
float resistance = 2000.0 * voltage / (1.0 - voltage / 5.0);
float lux = pow(RL10 * 1000.0 * pow(10.0, GAMMA) / resistance, 1.0 / GAMMA);
// Print sensor values
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);
// Control LED based on ADC value
digitalWrite(14, nilaiADC >= 2000 ? HIGH : LOW);
}
// Functions to handle changes in IoT Cloud variables
void onLedChange() {
// Add your code here to act upon LED change
}
void onOnofChange() {
// Add your code here to act upon Onof change
}
void onLdrChange() {
// Add your code here to act upon LDR change
}