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

IoT-basiertes intelligentes Straßenbeleuchtungssystem

Komponenten und Verbrauchsmaterialien

Arduino UNO Wifi Rev.2
× 1
LED (generisch)
× 1
LDR, 1 MOhm
× 1
Digilent IR-Näherungssensor
× 1
Espressif ESP8266 ESP-12E
× 1
Widerstand 1k Ohm
× 1

Notwendige Werkzeuge und Maschinen

Breadboard, 170 Pin

Apps und Onlinedienste

Arduino-IDE
ThingSpeak API

Über dieses Projekt

Problemdefinition

Wie bereits erwähnt, ist in einer Reihe von Städten die Straßenbeleuchtung eine der größten Ausgaben einer Stadt. Der Aufwand ist enorm, da alle Natriumdampflampen mehr Strom verbrauchen. Die Ausgaben für die Straßenbeleuchtung können für andere Entwicklungen der Nation verwendet werden. Derzeit wird ein manuelles System verwendet, bei dem das Licht ein- und ausgeschaltet wird, dh das Licht wird abends eingeschaltet und nachts ausgeschaltet der Morgen. Daher gibt es viel Energieverschwendung zwischen dem EIN/AUS. Dies ist einer der Hauptgründe für die Umstellung auf das automatische System, da weniger Strom verschwendet und somit viel Geld gespart wird. Abgesehen davon werden im Folgenden die anderen Nachteile des bestehenden Systems beschrieben.

Nachteile des bestehenden Systems

  • Manuelles Aus-/Einschalten der Straßenbeleuchtung
  • Mehr Energieverbrauch
  • Hohe Kosten
  • Mehr Arbeitskräfte

Wenn wir nun zu dem vorgeschlagenen System wechseln, das mit dem Einsatz von Lichtsensoren automatisiert ist, werden nicht nur Energie gespart und Sicherheit gewährleistet, sondern wir können auch einige weitere Vorteile sehen.

Vorteile des vorgeschlagenen Systems

  • Automatisches Schalten der Straßenbeleuchtung
  • Reduzierung der Wartungskosten
  • Reduzierung des CO₂-Ausstoßes
  • Reduzierung der Lichtverschmutzung
  • Drahtlose Kommunikation
  • Energie sparen
  • Personalabbau

A.LDR-Eingabe

Ein lichtabhängiger Widerstand (LDR), auch als Fotowiderstand bezeichnet ist ein Gerät, dessen Widerstandsfaktor eine Funktion der elektromagnetischen Strahlung ist. Daher handelt es sich um lichtempfindliche Geräte, die denen des menschlichen Auges ähnlich sind. Sie werden auch als Fotoleiter, leitfähige Zellen oder einfach als Fotozellen bezeichnet. Sie bestehen aus Halbleitermaterialien mit hohem Widerstand Ein LDR arbeitet nach dem Prinzip der Photoleitfähigkeit. Die Photoleitfähigkeit ist ein optisches Phänomen, bei dem die Leitfähigkeit des Materials verringert wird, wenn Licht tatsächlich vom Material absorbiert wird. Wenn jedoch Licht auf den LDR fällt, sinkt sein Widerstand und Strom fließt in die Basis des ersten Transistors und dann des zweiten Transistors. Der voreingestellte Widerstand kann nach oben oder unten gedreht werden, um den Widerstand zu erhöhen oder zu verringern, auf diese Weise kann er die Schaltung mehr oder weniger empfindlich machen. LDR sendet Antwort an Arduino.

B.IR-Sensor

Ein Infrarotsensor ist ein elektronisches Instrument, das verwendet wird, um bestimmte Eigenschaften seiner Umgebung zu erfassen, indem es entweder Infrarotstrahlung aussendet und/oder detektiert. Es ist auch in der Lage, die Wärme eines Objekts zu messen und Bewegungen zu erkennen. Infrarotwellen sind für das menschliche Auge nicht sichtbar. Im elektromagnetischen Spektrum ist Infrarotstrahlung der Bereich mit Wellenlängen, die länger sind als die Wellenlängen des sichtbaren Lichts, aber kürzer als Mikrowellen. Der Infrarotbereich ist ungefähr von 0,75 bis 1000 µm abgegrenzt. IR (Infrarot)-Sensoren erkennen Infrarotlicht. Das IR-Licht wird in einen elektrischen Strom umgewandelt, der von einem Spannungs- oder Stromdetektor erfasst wird. IR-Sensor sendet Antwort an Arduino.

C. LED

Eine Leuchtdiode (LED) ist eine Sperrschichtdiode, die bei Aktivierung Licht emittiert. Wenn wir eine Spannung an ihre Leitungen anlegen, können sich Elektronen mit Löchern in der LED rekombinieren und Energie in Form von Photonen freisetzen, die das Licht abgeben. Daher handelt es sich um eine zweiadrige Halbleiterlichtquelle.

Leuchtdioden stellen unser Beleuchtungssystem dar und die von ihnen emittierte Lichtmenge steht in direktem Zusammenhang mit der Lichtmenge in der Umgebung, d. h. wenn das Außenlicht geringer ist als das von LEDs abgegebene Licht mit voller Intensität und umgekehrt.

D. ESP8266

ESP8266 ist ein Wi-Fi-fähiges System-on-Chip-Modul (SoC), das vom Espressif-System entwickelt wurde. Es wird hauptsächlich für die Entwicklung von eingebetteten IoT-Anwendungen (Internet of Things) verwendet.

ESP8266 verfügt über Funktionen von

  • 2,4-GHz-WLAN (802,11 b/g/n, unterstützt WPA/WPA2)
  • Eingabe/Ausgabe für allgemeine Zwecke (16 GPIO)
  • Inter-itegrated Circuit (I²C) serielles Kommunikationsprotokoll
  • Analog-zu-Digital-Wandlung (10-Bit-ADC)
  • Serial Peripheral Interface (SPI) Serielles Kommunikationsprotokoll
  • I²S (Inter-IC Sound)-Schnittstellen mit DMA (Direct Memory Access) (Pins gemeinsam mit GPIO)
  • UART (an dedizierten Pins, plus ein Nur-Senden-UART kann auf GPIO2 aktiviert werden)
  • Pulsweitenmodulation (PWM)

Es verwendet eine 32-Bit-RISC-CPU auf Basis des Tensilica Xtensa L106 mit 80 MHz (oder auf 160 MHz übertaktet). Es hat ein 64 KB Boot-ROM, 64 KB Instruktions-RAM und 96 KB Daten-RAM. Auf den externen Flash-Speicher kann über SPI zugegriffen werden.

Das ESP8266-Modul ist ein kostengünstiger eigenständiger drahtloser Transceiver, der für Endpunkt-IoT-Entwicklungen verwendet werden kann.

Um mit dem ESP8266-Modul zu kommunizieren, muss der Mikrocontroller einen Satz von AT-Befehlen verwenden. Der Mikrocontroller kommuniziert mit dem ESP8266-01-Modul unter Verwendung von UART mit einer angegebenen Baudrate.

Es gibt viele Dritthersteller, die auf Basis dieses Chips unterschiedliche Module herstellen. Das Modul wird also mit verschiedenen Pin-Verfügbarkeitsoptionen geliefert, wie zum Beispiel:

  • ESP-01 wird mit 8 Pins (2 GPIO-Pins) geliefert – PCB-Spurantenne. (in obiger Abbildung gezeigt)
  • ESP-02 wird mit 8 Pins (3 GPIO-Pins) geliefert – U-FL-Antennenanschluss.
  • ESP-03 wird mit 14 Pins (7 GPIO-Pins) geliefert – Keramikantenne.
  • ESP-04 kommt mit 14 Pins (7 GPIO-Pins) – Keine Ameise.

usw.

Die folgende Abbildung zeigt beispielsweise die Pins des ESP-01-Moduls.

ESP8266-01 Modul Pin Beschreibung

3V3 :- 3,3 V Stromanschluss.

GND :- Erdungsstift.

RST :- Aktiver Low-Reset-Pin.

DE :- Aktiver High-Enable-Pin.

TX :- Serieller Übertragungsstift von UART.

RX :- Serieller Empfangspin von UART.

Code

  • intelligentes IOT-Licht
  • Code Teil 2
IOT Smart LightArduino
int smooth;int LDR;int Schwelle =40; // Sonnenintensitätint Helligkeit =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 () {// setzen Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen:Serial.begin (115200); PinMode (Sensor1, EINGANG); pinMode (sensor2, EINGANG); pinMode (sensor3, EINGANG); PinMode (led, AUSGANG); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);}void loop () { smooth =smooth - (beta * (smooth - analogRead (A0))); Verzögerung (1); LDR =rund (((schwimmen) glatt / 1023) * 100); wenn (LDR <=40) Helligkeit=0; sonst {Helligkeit =Karte (LDR, 40, 100, 0, 255); } checkSensoren(); if (carPresent ==1) {ledState =1; digitalWrite (geführt, HOCH); digitalWrite (led1, HIGH); analogWrite (LED, Helligkeit); analogWrite (led1, Helligkeit); aufrechtzuerhalten. Sonst if (carPresent ==0) {ledState =0; digitalWrite (geführt, HOCH); // digitalWrite (led1, HIGH); analogWrite (led,ledState); //analogWrite(led1,ledState); if (carPresent1 ==1) {ledState =1; if (ledState ==1) { analogWrite (led1, Helligkeit); analogWrite (led2, Helligkeit); aufrechtzuerhalten. aufrechtzuerhalten. Sonst if (carPresent1 ==0) {ledState =0; digitalWrite (led1, HIGH); digitalWrite (led2, HOCH); analogWrite (led1,ledState); analogWrite (led2, ledState); } } String data =(String)ledState+","+(String)brightness+";";Serial.print(data); // Serial.print (digitalRead (sensor1)); // Serial.print ("\t"); // Serial.print (digitalRead (sensor2)); // Serial.print ("\t"); // Serial.print (ledState); // Serial.print ( "\t"); // Serial.println (Helligkeit); Verzögerung (100);}void checkSensors () { if (digitalRead (sensor1) ==0)/ /Auto im 1. Sensor erfasst { if (digitalRead (sensor2) ==1) // Auto hat den 2. Sensor immer noch nicht erreicht carPresent =1; aufrechtzuerhalten. Sonst if (digitalRead (sensor2) ==0) // Auto hat den 2. Sensor erreicht {//Keine Autos hinter dem ersten Auto erkannt if (digitalRead (sensor1) ==1) { carPresent =0; carPresent1 =1; aufrechtzuerhalten. Sonst if (digitalRead (sensor1) ==0) { analogWrite (led, helligkeit); analogWrite (led1, Helligkeit); analogWrite (led2, Helligkeit); digitalWrite (geführt, HOCH); digitalWrite (led1, HIGH); digitalWrite (led2, HOCH); aufrechtzuerhalten. aufrechtzuerhalten. Sonst if (digitalRead (sensor3) ==0) // Auto hat den 3. Sensor erreicht {//Keine Autos hinter dem ersten Auto erkannt if (digitalRead (sensor2) ==1) { carPresent =0; carPresent1 =0; aufrechtzuerhalten. Sonst if (digitalRead (sensor2) ==0) { carPresent =0; carPresent1 =1; } } }
Code Teil 2Arduino
#include // Netzwerkinformationenconst char* ssid ="hardent";const char* password ="12345678";String ledState ="";String Helligkeit ="";char thingSpeakAddress[] ="api .thingspeak.com";String writeAPIKey ="NUEBLW9OA58DLL4N"; // Stellen Sie sicher, dass Sie dies in Ihren Kanal ändern. Write API keyWiFiClient-Client;void setup () { Serial.begin ( 115200 ); // Je nach Hardware müssen Sie möglicherweise die Geschwindigkeit anpassen. connectWifi();}void loop(){ filterData(); HTTPPost( ); Verzögerung (15000); // Wenn Sie den Schlaf entfernen, stellen Sie sicher, dass Sie mehr Verzögerung hinzufügen, damit Sie nicht zu oft an ThingSpeak posten.}int connectWifi(){ WiFi.begin( ssid , password ); while (WiFi.status() !=WL_CONNECTED) {//Serial.println( "Verbindung mit WiFi"); Verzögerung( 2500 ); } //Serial.println( "Verbunden"); // Den seriellen Monitor informieren}void HTTPPost() { // Diese Funktion erstellt den Datenstring zum Posten an ThingSpeak und liefert das richtige Format für den WLAN-Client, um mit ThingSpeak zu kommunizieren. // Es wird Dateneinträge im Wert von "numFields" posten und die Daten aus dem übergebenen fieldData-Parameter nehmen. // Achten Sie darauf, numFields auf die Anzahl der benötigten Felder zu erhöhen, und aktivieren Sie die Felder in Ihrer Kanalansicht. if (client.connect( thingSpeakAddress , 80 )) { // Erstellen Sie den Posting-Datenstring. Wenn Sie über mehrere Felder verfügen, stellen Sie sicher, dass der Zeichensatz 1440 Zeichen nicht überschreitet. String PostData ="api_key=" + writeAPIKey; PostData +="&field1=" + ledState; PostData +="&field2=" + Helligkeit; // POST-Daten über HTTP client.println( "POST /update HTTP/1.1" ); client.println( "Host:api.thingspeak.com"); client.println( "Verbindung:schließen"); 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 Puffer =""; Puffer =Serial.readStringUntil(';'); int i1 =buffer.indexOf(','); ledState =Puffer[0]; Puffer.Entfernen (0, i1 + 1); Helligkeit =Puffer; }}

Schaltpläne


Herstellungsprozess

  1. Intelligente Ampel
  2. Multi-Temperatursensor
  3. MotionSense
  4. 3D-Drucker Brandschutz
  5. Bewässerungssystem für Heimpflanzen
  6. Arduino Repulsive Electromagnetic Levitation
  7. Greifer-Bot mit Fernbedienung
  8. Mikrocontroller-Labor
  9. Persistenz der Vision (POV) Globe
  10. CoroFence - Wärmedetektor🖖