Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Iluminación Pública Inteligente IoT: Sistema LED Eficiente y Autónomo

Componentes y materiales

Componente Cantidad
Arduino UNO WiFi Rev.2 1
LED genérico 1
LDR 1MΩ (fotorresistencia) 1
Sensor IR proximidad (Digilent) 1
ESP8266 ESP-12E 1
Resistencia 1kΩ 1

Herramientas necesarias

Aplicaciones y servicios online

Sobre el proyecto

Definición del problema

El alumbrado público es un gasto enorme en las ciudades. Las lámparas de vapor de sodio consumen mucha energía. Ese gasto podría destinarse a otros desarrollos. Actualmente se usa sistema manual: encendido al atardecer, apagado al amanecer. Hay gran desperdicio de energía en las transiciones. Por eso el cambio a sistema automático: menos desperdicio, ahorro económico.

Desventajas del sistema actual

Ventajas del sistema propuesto

Componentes del sistema

A. Entrada LDR

Una resistencia dependiente de la luz (LDR) o fotorresistencia varía su resistividad según radiación electromagnética. Son dispositivos fotosensibles, análogos al ojo humano. También llamados fotoconductores, celdas conductoras o fotoceldas. Están hechas de semiconductores de alta resistencia. Funcionan por fotoconductividad: la conductividad del material disminuye al absorber luz. Cuando la luz incide en el LDR, su resistencia cae y fluye corriente a la base del primer transistor y luego al segundo. La resistencia preajustada (preset) sube/baja la sensibilidad. El LDR envía respuesta al Arduino.

B. Sensor IR

Un sensor infrarrojo detecta características del entorno emitiendo/detectando radiación IR. Mide calor y detecta movimiento. Ondas IR no son visibles. En el espectro electromagnético, IR tiene longitudes de onda mayores que luz visible pero menores que microondas (0.75-1000µm). La luz IR se transforma en corriente eléctrica, detectada por detector de voltaje/amperaje. El sensor IR envía respuesta al Arduino.

C. LED

Un diodo emisor de luz (LED) emite luz al activarse. Al aplicar voltaje, electrones recombinen con huecos liberando energía como fotones. Es una fuente de luz semiconductor de dos terminales. Los LEDs representan nuestro sistema de iluminación: intensidad emitida relacionada con luz ambiental (menos luz exterior = LED a máxima intensidad, y viceversa).

D. ESP8266

El ESP8266 es un módulo SoC (System on Chip) con WiFi, desarrollado por Espressif. Usado para aplicaciones IoT embebidas.

Capacidades:

Módulo transceiver wireless de bajo coste para desarrollos IoT endpoint. Para comunicarse, el microcontrolador usa comandos AT vía UART con baud rate especificado.

Hay muchos fabricantes terceros con distintas opciones de pines: ESP-01 (8 pines, 2 GPIO, antena PCB), ESP-02 (8 pines, 3 GPIO, conector U-FL), ESP-03 (14 pines, 7 GPIO, antena cerámica), ESP-04 (14 pines, 7 GPIO, sin antena), etc.

Descripción de pines ESP8266-01

Código

Parte 1: Lógica principal (IOT smart light)

int smooth; int LDR; int threshold = 40; // umbral intensidad solar
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() {
  // Suavizado lectura LDR
  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) { // Coche en sensor 1
    if (digitalRead(sensor2) == 1) carPresent = 1; // Aún no llega a sensor 2
  } else if (digitalRead(sensor2) == 0) { // Coche en sensor 2
    if (digitalRead(sensor1) == 1) { carPresent = 0; carPresent1 = 1; } // No hay coches detrás
    else { analogWrite(led,brightness); analogWrite(led1,brightness); analogWrite(led2,brightness); digitalWrite(led,HIGH); digitalWrite(led1,HIGH); digitalWrite(led2,HIGH); }
  } else if(digitalRead(sensor3) == 0) { // Coche en sensor 3
    if (digitalRead(sensor2) == 1) { carPresent = 0; carPresent1 = 0; }
    else { carPresent = 0; carPresent1 = 1; }
  }
}

Parte 2: Comunicación WiFi / ThingSpeak

#include <ESP8266WiFi.h>
const char* ssid = "ardent"; const char* password = "12345678";
String ledState = ""; String brightness = "";
char thingSpeakAddress[] = "api.thingspeak.com";
String writeAPIKey = "NUEBLW9OA58DLL4N"; // Cambia por tu Write API Key
WiFiClient client;

void setup() {
  Serial.begin(115200); connectWifi();
}
void loop() {
  filterData(); HTTPPost(); delay(15000); // No publicar muy seguido en 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 = Serial.readStringUntil(';');
    int i1 = buffer.indexOf(',');
    ledState = buffer.substring(0, i1);
    buffer.remove(0, i1 + 1);
    brightness = buffer;
  }
}

Esquemáticos

Diagrama de conexiones incluido.

Proceso de manufactura

  1. Semáforo Inteligente: Iluminación Vial Adaptativa con IoT
  2. Sistema de Sensor de Temperatura Multiposición para Integración en Hogar Inteligente
  3. MotionSense: Detección inteligente de intrusos con Arduino y ESP8266
  4. Prevención de Incendios en Impresoras 3D: Sistema de Seguridad con Sensor Inteligente
  5. Sistema inteligente de riego para plantas con Arduino Nano
  6. Levitación magnética repulsiva con Arduino: Circuito simple y guía DIY
  7. Robot pinza controlado remotamente para manipulación de precisión
  8. Laboratorio avanzado de microcontroladores: ESP32, Arduino, PIC y módulos de sensores
  9. Globo POV DIY: Arte LED con Persistencia de Visión y Arduino Mega
  10. Purificador de aire inteligente con Arduino Yun y Sharp Plasmacluster (IoT AWS)
  11. CoroFence: Detector Térmico Avanzado con Sensor PIR e Integración IoT