Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Éclairage public intelligent IoT : Système LED écoénergétique et intelligent

Composants et fournitures

Arduino UNO WiFi Rev.2 × 1
LED (générique) × 1
LDR, 1 MΩ (photorésistance) × 1
Capteur de proximité IR Digilent × 1
Espressif ESP8266 ESP-12E × 1
Résistance 1 kΩ × 1

Outils et machines nécessaires

Plaque d'essai 170 broches (breadboard)

Applications et services en ligne

À propos de ce projet

Définition du problème

Comme indiqué précédemment, on constate dans de nombreuses villes que l'éclairage public représente l'une des dépenses les plus importantes. Le coût est énorme car toutes les lampes à vapeur de sodium consomment plus d'énergie. La dépense consacrée à l'éclairage public pourrait être utilisée pour d'autres développements de la nation. Actuellement, un système manuel est utilisé où la lumière est allumée/éteinte manuellement : allumée le soir, éteinte le matin. Il y a donc beaucoup de gaspillage d'énergie entre l'allumage et l'extinction. C'est l'une des causes majeures du passage au système automatique, car il y a moins de gaspillage d'énergie et donc une économie monétaire importante. Outre cela, les autres inconvénients du système existant sont décrits ci-dessous.

Inconvénients du système existant

Avantages du système proposé

A. Entrée LDR

Une résistance dépendante de la lumière (LDR), aussi appelée photorésistance, est un dispositif dont la résistivité est fonction du rayonnement électromagnétique. Ce sont donc des dispositifs sensibles à la lumière, similaires à l'œil humain. On les appelle aussi photoconducteurs, cellules conductrices ou simplement photocellules. Elles sont faites de matériaux semi-conducteurs à haute résistance. Une LDR fonctionne sur le principe de la photoconductivité. La photoconductivité est un phénomène optique dans lequel la conductivité du matériau diminue lorsque la lumière est absorbée par le matériau. Cependant, quand la lumière brille sur la LDR, sa résistance chute et le courant circule vers la base du premier transistor puis du second. La résistance de réglage peut être tournée vers le haut ou le bas pour augmenter ou diminuer la résistance, rendant le circuit plus ou moins sensible. La LDR envoie la réponse à l'Arduino.

B. Capteur IR

Un capteur infrarouge est un instrument électronique utilisé pour détecter certaines caractéristiques de son environnement en émettant et/ou en détectant le rayonnement infrarouge. Il est aussi capable de mesurer la chaleur d'un objet et de détecter le mouvement. Les ondes infrarouges ne sont pas visibles à l'œil nu. Dans le spectre électromagnétique, le rayonnement infrarouge est la région ayant des longueurs d'onde plus longues que la lumière visible, mais plus courtes que les micro-ondes. La région infrarouge est approximativement délimitée de 0,75 à 1000 µm. Les capteurs IR détectent la lumière infrarouge. La lumière IR est transformée en courant électrique, détecté par un détecteur de tension ou d'intensité. Le capteur IR envoie la réponse à l'Arduino.

C. LED

Une diode électroluminescente (LED) est une diode de jonction qui émet de la lumière lorsqu'elle est activée. Quand on applique une tension à ses bornes, les électrons peuvent se recombiner avec les trous dans la LED, libérant de l'énergie sous forme de photons qui donnent la lumière. C'est donc une source de lumière semi-conductrice à deux broches. Les diodes électroluminescentes représentent notre système d'éclairage et la quantité de lumière émise est directement liée à la quantité de lumière dans l'environnement : quand la lumière extérieure est moindre, la lumière donnée par les LED est à son intensité maximale et vice-versa.

D. ESP8266

L'ESP8266 est un module système sur puce (SoC) avec Wi-Fi développé par Espressif Systems. Il est principalement utilisé pour le développement d'applications embarquées IoT (Internet des Objets).

L'ESP8266 possède les capacités suivantes :

Il utilise un CPU RISC 32 bits basé sur Tensilica Xtensa L106 à 80 MHz (ou overclocké à 160 MHz). Il a 64 Ko de ROM de démarrage, 64 Ko de RAM d'instruction et 96 Ko de RAM de données. La mémoire flash externe est accessible via SPI.

Le module ESP8266 est un transceiver sans fil autonome à faible coût utilisable pour les développements IoT d'extrémité.

Pour communiquer avec le module ESP8266, le microcontrôleur doit utiliser un ensemble de commandes AT. Le microcontrôleur communique avec le module ESP8266-01 via UART avec un débit spécifié.

Description des broches du module ESP8266-01

Code

IOT smart light (Arduino - Code principal)

int smooth; int LDR; int threshold = 40; // intensité soleil
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) { // Voiture détectée capteur 1
    if (digitalRead(sensor2) == 1) // Voiture n'a pas atteint capteur 2
      carPresent = 1;
  } else if (digitalRead(sensor2) == 0) { // Voiture atteinte capteur 2
    if (digitalRead(sensor1) == 1) { // Pas de voiture derrière la première
      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) { // Voiture atteinte capteur 3
    if (digitalRead(sensor2) == 1) {
      carPresent = 0; carPresent1 = 0;
    } else if (digitalRead(sensor2) == 0) {
      carPresent = 0; carPresent1 = 1;
    }
  }
}

Code partie 2 (Arduino - Communication WiFi/ThingSpeak)

#include 
// Informations réseau
const char* ssid = "ardent";
const char* password = "12345678";
String ledState = "";
String brightness = "";
char thingSpeakAddress[] = "api.thingspeak.com";
String writeAPIKey = "NUEBLW9OA58DLL4N"; // Changez pour votre clé API d'écriture
WiFiClient client;

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

void loop() {
  filterData();
  HTTPPost();
  delay(15000); // Délai pour ne pas poster trop souvent sur 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.substring(0, 1); // premier caractère
    buffer.remove(0, i1 + 1);
    brightness = buffer;
  }
}

Schémas

Schéma de câblage du système d'éclairage public intelligent IoT

Processus de fabrication

  1. Feu de circulation intelligent : Éclairage public adaptatif alimenté par l'IoT
  2. Système de Capteur de Température Multi-Position pour Intégration Domotique
  3. MotionSense : Détection d'intrusion intelligente avec Arduino et ESP8266
  4. Prévention incendie imprimante 3D : Système de sécurité à capteur intelligent
  5. Système d'arrosage intelligent pour plantes d'intérieur avec Arduino Nano
  6. Lévitation magnétique répulsive avec Arduino : circuit simple et guide DIY
  7. Robot préhenseur télécommandé avancé pour manipulation de précision
  8. Laboratoire avancé de microcontrôleurs : ESP32, Arduino, PIC et modules capteurs
  9. CoroFence : Détecteur Thermique Avancé PIR + Capteur Grid-EYE & IoT