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

Système d'éclairage public intelligent basé sur l'IoT

Composants et fournitures

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

Outils et machines nécessaires

Planche à pain, 170 broches

Applications et services en ligne

Arduino IDE
API ThingSpeak

À propos de ce projet

Définition du problème

Comme il a été dit précédemment, on constate dans un certain nombre de villes que l'éclairage public est l'une des dépenses énormes d'une ville. Le coût dépensé est énorme car toutes les lampes à vapeur de sodium consomment plus d'énergie. Les dépenses consacrées à l'éclairage public peuvent être utilisées pour d'autres développements de la nation. Actuellement, un système manuel est utilisé où la lumière sera allumée/éteinte, c'est-à-dire que la lumière sera allumée le soir et éteinte en le matin. Il y a donc beaucoup de gaspillage d'énergie entre les ON/OFF. C'est l'une des principales causes du passage au système automatique, car il y a moins de gaspillage d'énergie et donc d'économiser beaucoup de dépenses monétaires. En dehors de cela, les autres inconvénients du système existant sont décrits ci-dessous.

Inconvénients du système existant

  • Allumage/extinction manuel des lampadaires
  • Plus de consommation d'énergie
  • Coût élevé
  • Plus de main-d'œuvre

Passons maintenant au système proposé automatisé avec l'utilisation de capteurs de lumière, non seulement pour économiser de l'énergie et assurer la sécurité, nous pouvons également voir quelques autres avantages suivants.

Avantages du système proposé

  • Commutation automatique des lampadaires
  • Réduction des coûts de maintenance
  • Réduction des émissions de CO₂
  • Réduction de la pollution lumineuse
  • Communication sans fil
  • Économie d'énergie
  • Réduction des effectifs

Entrée A.LDR

Une résistance dépendante de la lumière (LDR) également appelée photorésistance est un appareil dont le facteur de résistivité est fonction du rayonnement électromagnétique. Ce sont donc des appareils sensibles à la lumière qui sont similaires à ceux des yeux humains. Ils sont également appelés photoconducteurs, cellules conductrices ou simplement photocellules. Ils sont constitués de matériaux semi-conducteurs à haute résistance. Un LDR fonctionne sur le principe de la photoconductivité. La photoconductivité est un phénomène optique dans lequel la conductivité des matériaux est réduite lorsque la lumière est effectivement absorbée par le matériau. Cependant, lorsque la lumière éclaire le LDR, sa résistance chute et le courant circule dans la base du premier transistor, puis dans le deuxième transistor. La résistance préréglée peut être augmentée ou diminuée pour augmenter ou diminuer la résistance, de cette manière, elle peut rendre le circuit plus ou moins sensible. LDR envoie une réponse à Arduino.

Capteur B.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 un rayonnement infrarouge. Il est également capable de mesurer la chaleur d'un objet et de détecter un mouvement. Les ondes infrarouges ne sont pas visibles à l'œil humain. Dans le spectre électromagnétique, le rayonnement infrarouge est la région ayant des longueurs d'onde plus longues que les longueurs d'onde de 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 (infrarouges) détectent la lumière infrarouge. La lumière IR est transformée en un courant électrique, ce qui est détecté par un détecteur de tension ou d'ampérage. Le capteur infrarouge envoie une réponse à l'arduino.

C. LED

Une diode électroluminescente (DEL) est une diode de jonction qui émet de la lumière lorsqu'elle est activée. Lorsque nous appliquons une tension sur ses fils, les électrons sont capables de se recombiner avec des trous dans la LED, libérant de l'énergie sous forme de photons qui donne la lumière. Par conséquent, il s'agit d'une source lumineuse à semi-conducteurs à deux fils.

Les diodes électroluminescentes représentent notre système d'éclairage et la quantité de lumière émise par celui-ci est directement liée à la quantité de lumière dans l'environnement, c'est-à-dire lorsque la lumière extérieure est inférieure à celle que la lumière fournie par les LED est à sa pleine intensité et vice-versa.

D. ESP8266

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

ESP8266 est livré avec des capacités de

  • Wi-Fi 2,4 GHz (802.11 b/g/n, compatible WPA/WPA2)
  • Entrée/sortie à usage général (16 GPIO)
  • Protocole de communication série à circuits intégrés (I²C)
  • Conversion analogique-numérique (ADC 10 bits)
  • Protocole de communication série de l'interface périphérique série (SPI)
  • Interfaces I²S (son inter-IC) avec DMA (accès direct à la mémoire) (partage des broches avec GPIO)
  • UART (sur des broches dédiées, plus un UART en transmission seule peut être activé sur GPIO2)
  • Modulation de largeur d'impulsion (PWM)

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

Le module ESP8266 est un émetteur-récepteur sans fil autonome à faible coût qui peut être utilisé pour les développements IoT de point final.

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 en utilisant UART ayant un débit en bauds spécifié.

Il existe de nombreux fabricants tiers qui produisent différents modules basés sur cette puce. Ainsi, le module est livré avec différentes options de disponibilité des broches telles que :

  • ESP-01 est livré avec 8 broches (2 broches GPIO) - antenne de trace PCB. (illustré dans la figure ci-dessus)
  • L'ESP-02 est fourni avec 8 broches, (3 broches GPIO) - connecteur d'antenne U-FL.
  • L'ESP-03 est fourni avec 14 broches (7 broches GPIO) – antenne en céramique.
  • ESP-04 est fourni avec 14 broches, (7 broches GPIO) – Pas de fourmi.

etc.

Par exemple, la figure ci-dessous montre les broches du module ESP-01.

Description de la broche du module ESP8266-01

3V3 :- Pin d'alimentation 3,3 V.

GND :- Broche de terre.

RST :- Broche de réinitialisation basse active.

FR  : - Broche d'activation élevée active.

TX  : - Broche de transmission série de l'UART.

RX  : - Broche de réception série de l'UART.

Code

  • Lumière intelligente IOT
  • Partie 2 du code
Lumière intelligente IOTArduino
int smooth;int LDR;int seuil =40;//intensité du soleilint luminosité =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() { // mettez votre code de configuration ici, à exécuter une fois :Serial.begin(115200); pinMode(capteur1, INPUT); pinMode(capteur2, INPUT); pinMode(sensor3, INPUT); pinMode (led, SORTIE); pinMode(led1,OUTPUT); pinMode(led2,OUTPUT);}void loop() { smooth =smooth - (beta * (smooth - analogRead(A0))); retard(1) ; LDR =rond(((flotte)lisse / 1023) * 100); si (LDR <=40) luminosité=0 ; else { luminosité =map(LDR, 40, 100, 0, 255); } checkSensors(); if (carPresent ==1) { ledState =1; digitalWrite (conduit, HAUT); digitalWrite(led1,HIGH); analogWrite (led, luminosité); analogWrite (led1, luminosité); } else if (carPresent ==0) { ledState =0; digitalWrite (conduit, HAUT); //digitalWrite(led1,HIGH); analogWrite(led,ledState); //analogWrite(led1,ledState); if(carPresent1 ==1) { ledState =1; if(ledState ==1) { analogWrite(led1,luminosité); analogWrite (led2, luminosité); } } else if (carPresent1 ==0) { ledState =0; digitalWrite(led1,HIGH); digitalWrite (led2, HAUT); 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(luminosité);delay(100);}void checkSensors(){ if (digitalRead(sensor1) ==0)/ /Voiture capturée dans le 1er capteur { if (digitalRead(sensor2) ==1)//La voiture n'a toujours pas atteint le 2e capteur carPresent =1 ; } else if (digitalRead(sensor2) ==0)//La voiture a atteint le 2ème capteur { //Aucune voiture détectée derrière la première voiture if (digitalRead(sensor1) ==1) { carPresent =0; carPrésent1 =1 ; } else if (digitalRead(sensor1) ==0 ) { analogWrite(led,brightness); analogWrite (led1, luminosité); analogWrite (led2, luminosité); digitalWrite (conduit, HAUT); digitalWrite(led1,HIGH); digitalWrite (led2, HAUT); } } else if(digitalRead(sensor3) ==0)//car a atteint le 3ème capteur { //Aucune voiture détectée derrière la première voiture if (digitalRead(sensor2) ==1) { carPresent =0; carPrésent1 =0 ; } else if (digitalRead(sensor2) ==0 ) { carPresent =0; carPrésent1 =1 ; } } }
Partie de code 2Arduino
#include // Network Informationconst char* ssid ="ardent";const char* password ="12345678";String ledState ="";String brillance ="";char thingSpeakAddress[] ="api .thingspeak.com";String writeAPIKey ="NUEBLW9OA58DLL4N"; // Assurez-vous de changer cela pour votre canal Write API keyWiFiClient client;void setup(){ Serial.begin( 115200 ); // Vous devrez peut-être ajuster la vitesse en fonction de votre matériel. connectWifi();}void loop(){ filterData(); HTTPPost( ); retard (15000); // Si vous supprimez le sommeil, assurez-vous d'ajouter plus de délai afin de ne pas publier trop souvent sur ThingSpeak.}int connectWifi(){ WiFi.begin( ssid , mot de passe ); while (WiFi.status() !=WL_CONNECTED) { //Serial.println( "Connexion au WiFi" ); retard ( 2500 ); } //Série.println( "Connecté" ); // Informer le moniteur série}void HTTPPost() { // Cette fonction crée la chaîne de données pour la publication sur ThingSpeak et fournit le format correct pour que le client wifi communique avec ThingSpeak. // Il publiera la valeur "numFields" des entrées de données et prendra les données du paramètre fieldData qui lui est transmis. // Assurez-vous d'augmenter numFields jusqu'au nombre de champs dont vous avez besoin et activez les champs dans la vue de votre chaîne. if (client.connect( thingSpeakAddress , 80 )) { // Construire la chaîne de données de publication. Si vous avez plusieurs champs, assurez-vous que le sting ne dépasse pas 1440 caractères. String PostData ="api_key=" + writeAPIKey; PostData +="&field1=" + ledState; PostData +="&field2=" + luminosité ; // Données POST via HTTP client.println( "POST /update HTTP/1.1" ); client.println( "Hôte :api.thingspeak.com" ); client.println( "Connexion :fermer" ); client.println( "Type de contenu :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); luminosité =tampon ; }}

Schémas


Processus de fabrication

  1. Feu de circulation intelligent
  2. Capteur de température multiple
  3. MotionSense
  4. Sécurité incendie des imprimantes 3D
  5. Système d'arrosage des plantes domestiques
  6. Lévitation électromagnétique répulsive Arduino
  7. bot de préhension de la télécommande
  8. Laboratoire de microcontrôleurs
  9. CoroFence - Détecteur thermique🖖