Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

IoT Slimme Straatverlichting: Intelligent, Energiezuinig LED-systeem

Onderdelen en benodigdheden

Onderdeel Aantal
Arduino UNO WiFi Rev.2 1
LED (standaard) 1
LDR, 1 MΩ (lichtgevoelige weerstand) 1
Digilent IR Proximity Sensor 1
Espressif ESP8266 ESP-12E 1
Weerstand 1kΩ 1

Benodigde tools en machines

  • Breadboard, 170 pinnen

Apps en online diensten

  • Arduino IDE
  • ThingSpeak API

Over dit project

Probleemdefinitie

Zoals eerder vermeld, is straatverlichting in veel steden een van de grootste kostenposten. Natriumdampflampen verbruiken veel stroom. De kosten voor straatverlichting kunnen voor andere nationale ontwikkelingen gebruikt worden. Momenteel wordt een handmatig systeem gebruikt: lampen aan 's avonds, uit 's ochtends. Hierdoor is er veel energieverspilling tussen aan/uit. Dit is een van de hoofdredenen om over te stappen op een automatisch systeem, met minder energieverspilling en grote geldbesparing. Andere nadelen van het bestaande systeem:

Nadelen van het bestaande systeem

  • Handmatig aan/uit schakelen van straatlantaarns
  • Hoger energieverbruik
  • Hogere kosten
  • Meer bemanning nodig

Nu naar het voorgestelde geautomatiseerde systeem met lichtsensoren: naast energiebesparing en veiligheid, zijn er nog meer voordelen.

Voordelen van het voorgestelde systeem

  • Automatisch inschakelen van straatlantaarns
  • Lagere onderhoudskosten
  • Vermindering van CO₂-uitstoot
  • Vermindering van lichtvervuiling
  • Draadloze communicatie
  • Energiebesparing
  • Minder bemanning nodig

A. LDR-invoer

lichtgevoelige weerstand (LDR), ook wel fotoweerstand genoemd, is een component wiens weerstandsfactor een functie is van elektromagnetische straling. Ze zijn lichtsensitieve apparaten, vergelijkbaar met het menselijk oog. Ze heten ook fotoleiders, geleidende cellen of fotocellen. Ze zijn gemaakt van halfgeleidermateriaal met hoge weerstand. Een LDR werkt op het principe van fotoleiding: een optisch fenomeen waarbij de geleiding van het materiaal afneemt wanneer licht door het materiaal geabsorbeerd wordt. Wanneer licht op de LDR valt, daalt de weerstand en stroomt er stroom naar de basis van de eerste transistor en dan de tweede. De vooringestelde weerstand kan omhoog of omlaag gedraaid worden om de gevoeligheid aan te passen. De LDR stuurt een reactie naar de Arduino.

IoT Slimme Straatverlichting: Intelligent, Energiezuinig LED-systeem
IoT Slimme Straatverlichting: Intelligent, Energiezuinig LED-systeem
IoT Slimme Straatverlichting: Intelligent, Energiezuinig LED-systeem

B. IR-sensor

Een infraroodsensor is een elektronisch instrument dat eigenschappen van de omgeving detecteert door infraroodstraling uit te zenden en/of te detecteren. Het kan ook warmte van een object meten en beweging detecteren. Infraroodgolven zijn onzichtbaar voor het menselijk oog. In het elektromagnetisch spectrum ligt infraroodstraling tussen zichtbaar licht (langere golflengte) en microwaves (kortere golflengte). Het infraroodgebied loopt ongeveer van 0,75 tot 1000 µm. IR-sensoren detecteren infraroodlicht, converteren dit naar een elektrische stroom, die gedetecteerd wordt door een spannings- of stroomdetector. De IR-sensor stuurt een reactie naar de Arduino.

C. LED

Een light-emitting diode (LED) is een jonctiediode die licht uitzendt wanneer geactiveerd. Bij aanleg van spanning recombineren elektronen met gaten in de LED, waarbij energie vrijkomt als fotonen (licht). Het is een tweepoot-semiconductorlichtbron.

LEDs vertegenwoordigen ons verlichtingssysteem. De hoeveelheid uitgezonden licht is direct gerelateerd aan de omgevingslicht: wanneer omgevingslicht minder is dan de LED-lichtsterkte, brandt de LED op volle intensiteit, en vice versa.

D. ESP8266

De ESP8266 is een WiFi-ingeschakelde System-on-Chip (SoC) module van Espressif Systems. Voornamelijk gebruikt voor IoT-ontwikkeling (Internet of Things).

Mogelijkheden van de ESP8266:

  • 2.4 GHz Wi-Fi (802.11 b/g/n, WPA/WPA2)
  • Algemene I/O (16 GPIO)
  • I²C seriële communicatie
  • Analog-naar-digitale conversie (10-bit ADC)
  • SPI seriële communicatie
  • I²S interfaces met DMA (gedeelde pinnen met GPIO)
  • UART (op toegewezen pinnen, plus transmit-only UART op GPIO2)
  • Pulsbreedtemodulatie (PWM)

Het gebruikt een 32-bit RISC CPU (Tensilica Xtensa L106) op 80 MHz (overklokbaar tot 160 MHz). 64 KB boot ROM, 64 KB instructie-RAM, 96 KB data-RAM. Externe flash via SPI toegankelijk.

De ESP8266 is een lage-kost, standalone draadloze transceiver voor IoT-eindpuntontwikkeling.

Om te communiceren met de ESP8266, gebruikt de microcontroller AT-commando's via UART met gespecificeerde baudrate.

Er zijn veel derde-partijfabrikanten die verschillende modules produceren op basis van deze chip, met verschillende pin-uitvoeringen:

  • ESP-01: 8 pinnen (2 GPIO) – PCB-trace antenne
  • ESP-02: 8 pinnen (3 GPIO) – U-FL antenneconnector
  • ESP-03: 14 pinnen (7 GPIO) – Keramische antenne
  • ESP-04: 14 pinnen (7 GPIO) – Geen antenne

Hieronder de pindescriptie van de ESP-01 module:

IoT Slimme Straatverlichting: Intelligent, Energiezuinig LED-systeem

ESP8266-01 Module Pinbeschrijving

  • 3V3: 3.3V voedingspin
  • GND: Ground-pin
  • RST: Actief-laag resetpin
  • EN: Actief-hoog enable-pin
  • TX: Seriële transmit-pin (UART)
  • RX: Seriële receive-pin (UART)

Code

IoT slimme lantaarn (Arduino)

int smooth;
int LDR;
int threshold = 40; // zonintensiteit
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;

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() {
  smooth = smooth - (beta * (smooth - analogRead(A0)));
  delay(1);
  LDR = round(((float)smooth / 1023) * 100);
  if (LDR <= 40) brightness = 0;
  else {
    brightness = map(LDR, 40, 100, 0, 255);
  }
  checkSensors();
  if (carPresent == 1) {
    ledState = 1;
    digitalWrite(led, HIGH);
    digitalWrite(led1, HIGH);
    analogWrite(led, brightness);
    analogWrite(led1, brightness);
  } else if (carPresent == 0) {
    ledState = 0;
    digitalWrite(led, HIGH);
    analogWrite(led, ledState);
    if (carPresent1 == 1) {
      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);
    }
  }
  String data = (String)ledState + "," + (String)brightness + ";";
  Serial.print(data);
  delay(100);
}

void checkSensors() {
  if (digitalRead(sensor1) == 0) { // Auto gedetecteerd bij sensor 1
    if (digitalRead(sensor2) == 1) // Auto nog niet bij sensor 2
      carPresent = 1;
  } else if (digitalRead(sensor2) == 0) { // Auto bereikt sensor 2
    if (digitalRead(sensor1) == 1) { // Geen auto's achter de eerste
      carPresent = 0;
      carPresent1 = 1;
    } else if (digitalRead(sensor1) == 0) {
      analogWrite(led, brightness);
      analogWrite(led1, brightness);
      analogWrite(led2, brightness);
      digitalWrite(led, HIGH);
      digitalWrite(led1, HIGH);
      digitalWrite(led2, HIGH);
    }
  } else if (digitalRead(sensor3) == 0) { // Auto bereikt sensor 3
    if (digitalRead(sensor2) == 1) { // Geen auto's achter de eerste
      carPresent = 0;
      carPresent1 = 0;
    } else if (digitalRead(sensor2) == 0) {
      carPresent = 0;
      carPresent1 = 1;
    }
  }
}

Code deel 2 (Arduino)

#include <ESP8266WiFi.h>

// Netwerkinformatie
const char* ssid = "ardent";
const char* password = "12345678";
String ledState = "";
String brightness = "";
char thingSpeakAddress[] = "api.thingspeak.com";
String writeAPIKey = "NUEBLW9OA58DLL4N"; // Verander dit naar jouw kanaal Write API key
WiFiClient client;

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

void loop() {
  filterData();
  HTTPPost();
  delay(15000); // Verwijder slaap niet zonder extra vertraging, anders post je te vaak naar ThingSpeak
}

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[0];
    buffer.remove(0, i1 + 1);
    brightness = buffer;
  }
}

Schema's

IoT Slimme Straatverlichting: Intelligent, Energiezuinig LED-systeem

Productieproces

  1. Slimme Verkeerslicht: Adaptieve Straatverlichting Aangedreven door IoT
  2. Meerpositie-temperatuursensorsysteem voor slimme thuisintegratie
  3. MotionSense: Slimme inbraakdetectie met Arduino en ESP8266
  4. 3D-Printer Brandpreventie: Slimme Sensor Veiligheidssysteem
  5. Slimme Plantenwateringssysteem met Arduino Nano
  6. Arduino-gebaseerde Afstotende Magnetische Levitatie: Eenvoudige Schakeling & DIY Handleiding
  7. Geavanceerde Remote-gecontrolleerde Gripper Robot voor Precisiehantering
  8. Geavanceerde Microcontroller Lab: ESP32, Arduino, PIC en Sensormodules
  9. DIY Persistence of Vision (POV) Globe: LED-kunst met Arduino Mega
  10. Slimme luchtzuiverer met Arduino Yun, Sharp Plasmacluster en AWS IoT
  11. CoroFence Thermische Detector: Geavanceerde PIR-sensor & IoT-integratie