Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

IoT-Smart-Straßenbeleuchtung: Intelligentes, energieeffizientes LED-System

Komponenten und Materialien

Komponente Anzahl
Arduino UNO WiFi Rev.2 1
LED (Standard, z. B. 1 W Power-LED) 1
LDR (Lichtabhängiger Widerstand), 1 MΩ 1
IR-Näherungssensor (z. B. Digilent IR Proximity) 1
ESP8266 ESP-12E WiFi-Modul 1
Widerstand 1 kΩ 1

Benötigte Werkzeuge und Maschinen

Apps und Online-Dienste

Projektbeschreibung

Problembeschreibung

Straßenbeleuchtung ist in vielen Städten ein riesiger Kostenfaktor. Natriumdampflampen verbrauchen viel Energie. Die Kosten könnten für andere Entwicklungsmaßnahmen genutzt werden. Derzeit wird manuell geschaltet: abends an, morgens aus. Zwischen Ein- und Ausschalten wird viel Energie verschwendet. Ein automatisches System reduziert diesen Verlust und spart Geld.

Nachteile des bestehenden Systems

Vorteile des vorgeschlagenen Systems

A. LDR-Eingang (Lichtsensor)

Ein lichtabhängiger Widerstand (LDR), auch Photowiderstand genannt, ändert seinen Widerstand in Abhängigkeit der elektromagnetischen Strahlung. Er verhält sich ähnlich wie das menschliche Auge. Weitere Bezeichnungen: Photoleiter, Photozelle. Material: Halbleiter mit hohem Dunkelwiderstand.

Funktionsprinzip: Photoleitfähigkeit – die Leitfähigkeit steigt bei Lichteinfall. Fällt Licht auf den LDR, sinkt der Widerstand, Strom fließt in die Basis des ersten und dann des zweiten Transistors. Ein einstellbarer Vorwiderstand (Trimmpotentiometer) justiert die Empfindlichkeit. Der LDR sendet sein Signal an den Arduino.

IoT-Smart-Straßenbeleuchtung: Intelligentes, energieeffizientes LED-System
IoT-Smart-Straßenbeleuchtung: Intelligentes, energieeffizientes LED-System
IoT-Smart-Straßenbeleuchtung: Intelligentes, energieeffizientes LED-System

B. IR-Sensor (Bewegungserkennung)

Ein Infrarotsensor detektiert Umgebungsmerkmale durch Aussenden und/oder Empfangen von Infrarotstrahlung. Er kann Wärme messen und Bewegung erkennen. IR-Wellen sind für das Auge unsichtbar. Im elektromagnetischen Spektrum liegt IR zwischen sichtbarem Licht (längere Wellenlänge) und Mikrowellen (kürzer), ca. 0,75–1000 µm.

IR-Sensoren wandeln IR-Licht in Strom um, der über Spannungs-/Stromdetektoren ausgelesen wird. Der IR-Sensor sendet sein Signal an den Arduino.

C. LED (Lichtquelle)

Eine Leuchtdiode (LED) ist eine Sperrschichtdiode, die bei Durchlassspannung Licht emittiert. Elektronen rekombinieren mit Löchern, Energie wird als Photonen (Licht) freigesetzt. Zweipoliger Halbleiter-Lichtquelle.

Die LED stellt unser Beleuchtungssystem dar. Die abgegebene Lichtmenge korreliert mit der Umgebungshelligkeit: Bei Dunkelheit volle Intensität, bei Helligkeit gedimmt/aus.

D. ESP8266 (WiFi-Kommunikation)

Der ESP8266 ist ein WiFi-fähiges System-on-Chip (SoC) von Espressif, weit verbreitet für IoT-Embedded-Anwendungen.

Fähigkeiten:

32-Bit RISC CPU (Tensilica Xtensa L106), 80 MHz (übertaktbar auf 160 MHz). 64 KB Boot ROM, 64 KB Instruction RAM, 96 KB Data RAM. Externer Flash via SPI.

Kostengünstiges Standalone-Wireless-Modul für Endpunkt-IoT.

Kommunikation per AT-Befehle über UART (festes Baudrate). Viele Drittanbieter-Module mit unterschiedlicher Pin-Belegung:

IoT-Smart-Straßenbeleuchtung: Intelligentes, energieeffizientes LED-System

ESP8266-01 Pin-Belegung

Code

IOT smart light (Arduino – Hauptsteuerung)

int smooth; int LDR; int threshold = 40; // Sonnenintensitätsschwelle
int brightness = 0; int ledState = 0;
int sensor1 = 11; int sensor2 = 8; int sensor3 = 9;
int led1 = 5; int led = 6; int led2 = 2;
int carPresent = 0; int carPresent1 = 0;
float beta = 0.65; // Glättungsfaktor

void setup() {
  Serial.begin(115200);
  pinMode(sensor1, INPUT);
  pinMode(sensor2, INPUT);
  pinMode(sensor3, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop() {
  // LDR-Glättung (Tiefpass)
  smooth = smooth - (beta * (smooth - analogRead(A0)));
  delay(1);
  LDR = round(((float)smooth / 1023) * 100); // 0-100%

  // Helligkeit aus LDR ableiten
  if (LDR <= 40) brightness = 0;
  else brightness = map(LDR, 40, 100, 0, 255);

  checkSensors(); // IR-Sensoren prüfen

  if (carPresent == 1) { // Auto erkannt
    ledState = 1;
    digitalWrite(led, HIGH); digitalWrite(led1, HIGH);
    analogWrite(led, brightness); analogWrite(led1, brightness);
  } else if (carPresent == 0) { // Kein Auto
    ledState = 0;
    digitalWrite(led, HIGH);
    analogWrite(led, ledState);
    if (carPresent1 == 1) { // Nachfolgendes Auto?
      ledState = 1;
      if (ledState == 1) {
        analogWrite(led1, brightness); analogWrite(led2, brightness);
      }
    } else if (carPresent1 == 0) {
      ledState = 0;
      digitalWrite(led1, HIGH); digitalWrite(led2, HIGH);
      analogWrite(led1, ledState); analogWrite(led2, ledState);
    }
  }

  // Daten für ESP8266/ThingSpeak vorbereiten
  String data = (String)ledState + "," + (String)brightness + ";";
  Serial.print(data);
  delay(100);
}

void checkSensors() {
  // 3 IR-Sensoren entlang der Straße: sensor1, sensor2, sensor3
  if (digitalRead(sensor1) == 0) { // Auto bei Sensor 1
    if (digitalRead(sensor2) == 1) carPresent = 1; // Noch nicht bei Sensor 2
  } else if (digitalRead(sensor2) == 0) { // Auto bei Sensor 2
    if (digitalRead(sensor1) == 1) { carPresent = 0; carPresent1 = 1; } // Kein Auto mehr bei 1
    else { // Zwei Autos hintereinander
      analogWrite(led, brightness); analogWrite(led1, brightness); analogWrite(led2, brightness);
      digitalWrite(led, HIGH); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH);
    }
  } else if (digitalRead(sensor3) == 0) { // Auto bei Sensor 3
    if (digitalRead(sensor2) == 1) { carPresent = 0; carPresent1 = 0; }
    else { carPresent = 0; carPresent1 = 1; }
  }
}

Code part 2 (ESP8266 → ThingSpeak)

#include 

const char* ssid = "ardent";
const char* password = "12345678";
String ledState = "";
String brightness = "";
char thingSpeakAddress[] = "api.thingspeak.com";
String writeAPIKey = "NUEBLW9OA58DLL4N"; // IHR Write API Key!
WiFiClient client;

void setup() {
  Serial.begin(115200);
  connectWifi();
}

void loop() {
  filterData();
  HTTPPost();
  delay(15000); // ThingSpeak Limit: 15 s
}

int connectWifi() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(2500);
  }
}

void HTTPPost() {
  if (client.connect(thingSpeakAddress, 80)) {
    String PostData = "api_key=" + writeAPIKey;
    PostData += "&field1=" + ledState;
    PostData += "&field2=" + brightness;
    client.println("POST /update HTTP/1.1");
    client.println("Host: api.thingspeak.com");
    client.println("Connection: close");
    client.println("Content-Type: application/x-www-form-urlencoded");
    client.println("Content-Length: " + String(PostData.length()));
    client.println();
    client.println(PostData);
    client.stop();
  }
}

void filterData() {
  if (Serial.available()) {
    String buffer = "";
    buffer = Serial.readStringUntil(';');
    int i1 = buffer.indexOf(',');
    ledState = buffer.substring(0, i1);
    buffer.remove(0, i1 + 1);
    brightness = buffer;
  }
}

Schaltpläne

IoT-Smart-Straßenbeleuchtung: Intelligentes, energieeffizientes LED-System

Herstellungsprozess

  1. Intelligente Ampel: Adaptive Straßenbeleuchtung per IoT
  2. Multi-Position Temperatursensor-System für Smart-Home-Integration
  3. MotionSense: Smarte Einbruchserkennung mit Arduino & ESP8266
  4. 3D-Drucker Brandschutz: Intelligentes Sensorsicherheitssystem
  5. Smart-Home Pflanzenbewässerungssystem mit Arduino Nano
  6. Arduino-basierte abstoßende Magnetschwebung: Einfache Schaltung & DIY-Anleitung
  7. Fortgeschrittener ferngesteuerter Greifer-Roboter für präzises Handling
  8. Fortgeschrittenes Mikrocontroller-Labor: ESP32, Arduino, PIC und Sensormodule
  9. DIY Persistence-of-Vision (POV) Globe – LED-Kugel mit Arduino Mega
  10. CoroFence Thermaldetektor: PIR-Sensor & IoT-Integration mit Panasonic GridEye