Bala Bala
Published © LGPL

LuxTrack: Smart Light Monitoring Using KiwisIoT

Real-time light intensity monitoring using an LDR sensor, a microcontroller, Wi-Fi connectivity, and the KiwisIoT platform.

BeginnerFull instructions provided1 hour18
LuxTrack: Smart Light Monitoring Using KiwisIoT

Things used in this project

Hardware components

NodeMCU ESP8266 Breakout Board
NodeMCU ESP8266 Breakout Board
×1
Jumper wires (generic)
Jumper wires (generic)
×1
USB-A to Mini-USB Cable
USB-A to Mini-USB Cable
×1
LDR Sensor Module
×1

Software apps and online services

KiwisIoT
Kiwistron KiwisIoT
Arduino IDE
Arduino IDE

Story

Read more

Schematics

LIGHT MONITORING CIRCUIT DIAGRAM

real time project implementation

Code

LIGHT MONITORING CODE

C/C++
#include <ESP8266WiFi.h>
#include <KiwisIoT.h>

const char* ssid = "XXX";
const char* pass = "YYY";

const char* topic = "dash_1234";

#define LDR_PIN A0

KiwisIoT kiwisiot(ssid, pass, topic);

void sendLightData() {

  int rawValue = analogRead(LDR_PIN);

  int lightLevel = 1023 - rawValue;

  String lightStatus;

  if (lightLevel >= 700) {
    lightStatus = "BRIGHT";
  }
  else if (lightLevel >= 300) {
    lightStatus = "MEDIUM";
  }
  else {
    lightStatus = "DARK";
  }

  Serial.println();
  Serial.println("---------- LIGHT MONITORING ----------");

  Serial.print("Raw LDR Value: ");
  Serial.println(rawValue);

  Serial.print("Light Level: ");
  Serial.println(lightLevel);

  Serial.print("Light Status: ");
  Serial.println(lightStatus);

  kiwisiot.send("0", String(lightLevel));

  kiwisiot.send("1", lightStatus);

  Serial.print("Sent to KiwisIoT Channel 0: ");
  Serial.println(lightLevel);

  Serial.print("Sent to KiwisIoT Channel 1: ");
  Serial.println(lightStatus);
}

void setup() {

  Serial.begin(115200);

  Serial.println();
  Serial.println("    LDR LIGHT MONITORING    ");

  pinMode(LDR_PIN, INPUT);

  Serial.println("LDR initialized");

  Serial.println("Connecting to KiwisIoT...");

  kiwisiot.begin();

  Serial.println("KiwisIoT initialized");
  Serial.println("Starting light monitoring...");
}

void loop() {

  kiwisiot.run();

  static unsigned long lastSend = 0;

  if (millis() - lastSend >= 2000) {

    lastSend = millis();

    sendLightData();
  }

  delay(100);
}

Credits

Bala Bala
6 projects • 0 followers

Comments