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

Seguidor solar basado en Internet de las cosas (IoT)

Componentes y suministros

Arduino Mega 2560
× 1
Ethernet Shield (Wiznet W5100) para Arduino
× 1
Micro-servo motor SG90
× 2
LDR, 5 Mohm
× 4
Sensor de temperatura DHT22
× 1
Mini panel solar
× 1
Resistencia de 330 ohmios
× 4
Resistencia de orificio pasante, 10 ohmios
× 2
Resistencia 220 ohmios
× 1
LED de 5 mm:rojo
× 1

Aplicaciones y servicios en línea

myDevices Cayenne
Arduino IDE

Acerca de este proyecto

Este proyecto presenta una solución de IoT simple y de bajo costo para monitorear y controlar un sistema de seguimiento solar inteligente de doble eje para la evaluación del desempeño.

El sistema de seguimiento solar propuesto basado en IoT se muestra en la Fig. 1. Es un seguidor solar de doble eje que puede rotar automáticamente para rastrear la posición del sol usando sensores LDR, o manualmente por el usuario a través del tablero de una aplicación de IoT. El sistema comienza con detecta la posición del sol (intensidad de la luz) mediante sensores LDR y envía los datos al controlador (placa Arduino Mega). Este último luego procesa estos datos para comandar servomotores (SM1 y SM2) que sostienen el panel fotovoltaico para girar hacia el sol. Los valores del voltaje y la corriente fotovoltaica generados, la temperatura y la humedad también se envían al Arduino a través de sensores asociados. A continuación, el escudo Ethernet, que se monta con Arduino y permite que se conecte a Internet, enviará los datos que ha estado tomando y / o procesados ​​por Arduino a la nube (servidor web). Por último, los datos del rastreador solar, incluidos los sensores LDR, la energía fotovoltaica, la temperatura y la humedad, se muestran en tiempo real en la aplicación de monitoreo de IoT a través de widgets creados previamente. La aplicación de monitoreo de IoT está diseñada utilizando Cayenne myDevicesplatform. Una vez que el usuario está conectado a Internet desde su computadora o teléfono inteligente, puede visualizar, en el tablero de la aplicación IoT, todos los datos del seguidor solar en sus widgets asociados. Por tanto, el usuario dispone de los datos necesarios vinculados al entorno y rendimiento del panel fotovoltaico. Además, en el modo manual, los servomotores tomarán direcciones en ángulo desde sus widgets asociados en el tablero. Por tanto, el usuario puede controlar su sistema para buscar las mejores condiciones ambientales y extraer la máxima energía del panel fotovoltaico. La aplicación de IoT también está programada para enviar alertas de notificación (SMS o correo electrónico) cuando un senor alcanza un valor de umbral predefinido.

Diseño de hardware

Como se muestra en la Fig.2, el sistema de seguimiento solar de IoT consta de un panel fotovoltaico, dos servomotores, cuatro sensores LDR, un circuito divisor de voltaje, un sensor de temperatura y humedad, un LED y la placa Arduino Mega.

El panel fotovoltaico utilizado tiene un tamaño de 115 mm por 85 mm con una salida de 1,6 W y puede generar un voltaje de hasta 6 V.Se utilizan dos servomotores de 180 grados para motorizar el seguidor solar y son controlados por la placa Arduino a través de los pines 5 y PWM. 6. El servomotor de izquierda a derecha (LR) (MG996R) gira el seguidor solar en el eje vertical (Este / Oeste), mientras que el servomotor de arriba-abajo (UD) (SG90) gira el seguidor solar en el eje horizontal ( Sur / Norte).

Se utilizan cuatro LDR (Cds GL5528) para detectar la posición del sol y que se han fijado en las cuatro esquinas del panel. Los sensores LDR están conectados al Arduino a través de pines analógicos de A0 a A3. El LDR es una resistencia cuyo valor disminuye al aumentar la intensidad de la luz incidente en su superficie. El sensor LDR está diseñado como un circuito divisor de voltaje, como se puede ver en la Fig. 2. El microcontrolador del Arduino Mega convierte el voltaje de salida del divisor del valor analógico en un valor digital entre 0 y 1023. El convertidor (ADC) del microcontrolador está codificado en 10 bits. El valor de la resistencia en serie en el circuito del sensor LDR es 330 Ω.

La temperatura y la humedad se miden a través del sensor DHT22. El DHT22 tiene un termistor y un sensor de humedad capacitivo integrado para medir la temperatura y la humedad relativa. Su rango de temperatura es de -40 a 80 ° C con <± 0.5 ° C de precisión, y su rango de humedad es de 0 a 100% con ± 2% (Max ± 5%) de precisión. Este sensor utiliza un cable de señal para transmitir datos a Arduino (pin digital 2) y dos cables para la fuente de alimentación.

La tensión y la corriente fotovoltaica se miden a través de un circuito divisor de tensión que actúa también como carga y que consta de dos resistencias en serie de 10 ohmios. La salida del circuito divisor está conectada al pin analógico A4 de Arduino. Además, un LED, que está conectado al pin digital 3, refleja en el circuito del sistema el estado de modo del seguidor solar (manual o automático).

El microcontrolador Arduino Mega con ATmega2560 se utiliza como controlador integrado que interactúa con el escudo Arduino Ethernet junto con la plataforma de monitoreo. El escudo Ethernet, que está montado sobre la placa Arduino, debe conectarse con un enrutador Wi-Fi (o PC) a través de un cable RJ45 como se muestra en la Fig. 3. El escudo Ethernet se basa en el chip Ethernet Wiznet W5100 que proporciona un pila de red (IP) para protocolos TCP y UDP.

Diseño de software

a. IDE de Arduino

Arduino es una plataforma de creación de prototipos de electrónica de código abierto con hardware y software fáciles de usar. La plataforma Arduino proporciona un entorno de desarrollo integrado (IDE), que incluye soporte para lenguajes de programación C y C ++. La placa Arduino utilizada en este trabajo es programada por el IDE que sirve como editor de código y desde el cual se puede cargar el código del programa al microcontrolador a través de un cable USB, como se muestra en la Fig. 3. Se utiliza la placa Arduino Mega para implementar todos los requisitos de software del seguidor solar basado en IoT.

b. myDevices Cayenne

MyDevices es una empresa que ofrece soluciones de IoT. Ofrece una plataforma de extremo a extremo para IoT. En nuestro proyecto, nos centraremos en Cayenne, una de las soluciones de myDevices. Esta herramienta permite a los desarrolladores, diseñadores e ingenieros construir prototipos de IoT. Cayenne utiliza el protocolo Message Queue Server Telemetry Transport (MQTT) para conectar cualquier dispositivo con Cayennecloud. Una vez conectado, el usuario puede enviar y recibir datos desde el dispositivo al tablero de Cayenne a través de los Widgets creados. MQTT es un protocolo de mensajería de publicación-suscripción basado en el protocolo TCP / IP. La metodología de publicación-suscripción utiliza un agente de mensajes que es responsable de entregar mensajes al cliente. MQTT es la API para enviar información a la nube Cayenne o dispositivos controlados por Cayenne. El agente de mensajes en este sentido es la nube, gestiona los diferentes clientes (sensores y actuadores) que envían y reciben los datos.

Para usar MQTT con Cayenne, necesitamos usar las bibliotecas de Cayenne. Para Arduino, la biblioteca CayenneMQTT se puede instalar desde el Administrador de bibliotecas del IDE. Para programar nuestra aplicación IoT basada en la plataforma Cayenne IoT, aprovecharemos las funciones predefinidas. Por ejemplo, para establecer la conexión entre la nube Cayenne y Arduino Mega equipado con el módulo Ethernet, llamamos a la biblioteca CayenneMQTTEthernet donde declaramos nuestra información de autenticación (el nombre de usuario, contraseña y el ID de cliente) que debe obtenerse del Cayenne Dashboard. Luego, en la parte de configuración del programa, llamamos Cayenne.begin () función para establecer la conexión con el salpicadero Cayenne. Para cada actuador, creamos una función con un parámetro entero entre 0 y 31 llamado imperativamente CAYENNE IN (VIRTUAL CHANNEL) . Para cada sensor, creamos una función con un parámetro entero entre 0 y 31 llamado imperiosamente CAYENNE_OUT (VIRTUAL_CHANNEL) . En la parte del ciclo del programa, llamamos a la función predefinida Cayenne.loop () , esta función en sí misma llama a las funciones CAYENNE_OUT y CAYENNE_IN. El canal virtual como su nombre indica es un canal que no existe físicamente, caracteriza a los widgets de visualización o comando. Permite vincularlos con el sensor o actuador correspondiente.

c. El incrustado diseño de software

El software integrado es la pieza que se integrará en Arduino Mega para interactuar entre el módulo Ethernet y la nube Cayenne (ver Apéndice). Está diseñado de la siguiente manera:

(i) El seguidor solar basado en IoT tiene dos modos de función:manual y automático. Un botón creado en el tablero de Cayenne tiene la función de cambiar entre los dos modos. Cuando está inactivo, se selecciona el modo manual, de lo contrario el modo automático. Además, se establece una función en el código Arduino que permite recuperar el estado del botón. El LED en el circuito del sistema refleja el estado de este interruptor.

Por lo tanto, para que el controlador sepa el modo de funcionamiento seleccionado, solo necesitamos probar el estado del pin en el que está conectado el LED. Por ejemplo, si el estado del LED es bajo, el controlador llamará a la función de modo manual para ejecutar; de lo contrario, llamará a la función automática.

(ii) Si se selecciona el modo manual, el usuario puede controlar directamente las posiciones de los servomotores para orientar el panel fotovoltaico de este a oeste mediante el servomotor L-R o de sur a norte mediante el servomotor U-D. El control se realiza desde los widgets asociados de servomotores en el tablero de la aplicación IoT.

En este modo, el controlador llama a Cayenne.loop () función que llama a todas las funciones CAYENNE_IN , incluidos los relacionados con servomotores, para ejecutar. El Cayenne.loop () La función también llamará a todas las funciones CAYENNE_OUT, vinculadas a los sensores, para ejecutar. Donde los datos relacionados con los sensores LDR, corriente fotovoltaica, voltaje y potencia, temperatura y humedad se enviarían al servidor para que puedan visualizarse en sus widgets asociados en la aplicación IoT.

(iii) Si se selecciona el modo automático, se ejecutará el algoritmo mostrado en la Fig. 4. El algoritmo comienza leyendo los valores analógicos devueltos por los sensores LDR. Luego, procesa estos datos para comandar servomotores que mueven el panel fotovoltaico hacia la posición del sol. Teniendo en cuenta el movimiento del seguidor solar basado en el eje vertical, se comparan los valores promedio de los dos LDR de la izquierda y los dos LDR de la derecha y si las izquierdas reciben más luz, el panel fotovoltaico se moverá en esa dirección (en el sentido de las agujas del reloj) a través del servomotor LR. Este último se detendrá cuando el resultado de la diferencia esté entre -10 y 10. Este rango se utiliza para estabilizar el controlador y reducir el consumo de energía de los servomotores. De lo contrario, si el conjunto correcto de LDR recibe más luz, el panel fotovoltaico se moverá en esa dirección (en sentido antihorario) a través del servomotor L-R y continuará girando hasta que el resultado de la diferencia esté en el rango [−10, 10]. El mismo enfoque se utiliza para el movimiento del seguidor solar basado en el eje horizontal donde se comparan los valores promedio de los dos LDR en la parte superior y los dos LDR en la parte inferior.

Además del modo automático, el controlador también llamará al Cayenne.loop () función para enviar los datos del seguidor solar a la aplicación IoT.

d. Desarrollo de la aplicación de monitoreo de IoT

(i) Interfaz de hardware con la plataforma Cayenne IoT

Para conectar el hardware, incluidos los sensores y actuadores, con la plataforma de IoT, debemos seguir los siguientes pasos:

+ Inicie sesión en el sitio web de Cayenne myDevice después de crear una cuenta (Fig. 5 (a)).

+ Luego, haga clic en "Traiga sus propias cosas" de Cayenne API (Fig. 5 (b)).

+ Copie las credenciales de MQTT (nombre de usuario, contraseña e ID de cliente) de la aplicación Crete (Fig. 6) y péguelas en el código fuente de Arduino como se describió anteriormente. Después de compilar y cargar con éxito todo el código en Arduino Mega, abra Serial Monitor en Arduino IDE para obtener las impresiones del registro de Cayenne (Fig.7). Tan pronto como nuestro dispositivo entre en línea y se conecte a Cayenne, la página anterior (Fig. 6) se actualiza automáticamente y veremos nuestro dispositivo en el tablero en línea como se puede ver en la Fig. 8.

+ Luego, para conectar sensores y actuadores, es decir, crear sus widgets, haga clic en "Agregar nuevo ...", seleccione "Dispositivo / Widget" y haga clic en "Widgets personalizados" (Fig. 9). Luego, seleccione un widget y complete todas sus configuraciones asociadas (el número de canal debe ser el mismo que en el código), y finalmente, haga clic en "Agregar Widget" para agregarlo al tablero de su dispositivo. Para nosotros, elegimos el widget de "valor" para todos los sensores, widget de "Botón" para el cambio de modo y el widget "Slider" para el servomotor.

Finalmente, la Fig. 10 ilustra la aplicación IoT diseñada para monitorear los datos del seguidor solar. Una vez que se establece la conexión con el sistema de seguimiento solar, los datos del sensor se pueden visualizar en sus widgets asociados, el modo de seguimiento (automático o manual) se puede seleccionar desde el botón del interruptor, así como controlar los ángulos de los servomotores a través de sus widgets. Los datos del sensor también se pueden obtener en forma gráfica modificando el tipo de representación en su configuración, o simplemente haciendo clic en el icono de gráfico encima del widget.

(ii) Creación de alertas

Uno de los criterios más importantes en un sistema de monitoreo es su capacidad para enviar alertas de notificación para informar a los usuarios cuando ocurre un evento relacionado con sus dispositivos monitoreados. Para ello, aprovechamos una de las características de Cayenne para agregar alertas a nuestra aplicación IoT, donde podemos preprogramar nuestra aplicación para enviar una alerta de notificación (SMS, correo electrónico o ambos) o para realizar una acción específica. Por ejemplo, se crea una alerta de temperatura para enviar una notificación por correo electrónico al usuario (o destinatarios) cuando la temperatura monitoreada alcanza un valor umbral, como se muestra en la Fig. 11. Para crear una alerta, haga clic en "Agregar nuevo". .. "y seleccione" Trigger ", luego configure el evento y su acción y finalmente haga clic en" guardar "para agregarlo al tablero.

Prototipo

La figura 12 presenta el prototipo de seguidor solar en su estado desmontado y ensamblado. Consiste en el panel fotovoltaico, los servomotores-R y U-D y los sensores LDR. El panel está unido al servomotor U-D en un lado y con un cojinete en el otro lado para garantizar una mejor flexibilidad cuando el seguidor solar gira alrededor del eje horizontal. El conjunto se adjunta al servomotor L-R. Los sensores LDR se fijan en las cuatro esquinas del panel dentro de cilindros huecos. Si el panel no es perpendicular al sol, al menos un LDR estará cubierto por la sombra causada por el cilindro circundante. Por tanto, habrá una diferencia en la intensidad de la luz. La mejor orientación es cuando las intensidades de luz son iguales en todos los sensores LDR. La Fig. 13 muestra el prototipo completo del sistema de seguimiento solar basado en IoT, y está claro que todos los componentes informados en la parte de hardware se han utilizado para construirlo.

Para obtener más detalles sobre los resultados obtenidos, consulte el artículo en este enlace:https://link.springer.com/chapter/10.1007%2F978-3-030-64565-6_4

Código

  • El código integrado del sistema de seguimiento solar basado en IoT
El código integrado del sistema de seguimiento solar basado en IoT Arduino
 / ******************************************** ***************** PROYECTO:Sistema de seguimiento solar basado en IoT / el software integrado Aboubakr El Hammoumi / [email protected]********* *********************************************** **** / # define CAYENNE_PRINT Serial # include  // Biblioteca CayenneMQTT #include  // Biblioteca de servomotor #include  // Biblioteca DHT #define DHTTYPE DHT22 # ​​define DHTPIN 2DHT dht (DHTPIN, DHTTYPE); // credenciales MQTT char username [] ="498d2d00-afe2-11ea-883c-638d8ce4c23d"; char contraseña [] ="ab4a8f92d94033c01f6e18ce1d8a84d8c304c9IDa4"; 93bf-d33a96695544 "; Servo servo_x; // servomotor arriba-abajo int servoh =0; int servohLimitHigh =170; int servohLimitLow =10; Servo servo_z; // servomotor izquierda-derecha int servov =0; int servovLimitHigh =170; int servovLimitLow =10; int topl, topr, botl, botr; int umbral_valor =10; float Vout; void setup () {Serial.begin (9600); Cayenne.begin (nombre de usuario, contraseña, clientID); servo_x.attach (5); servo_z.attach (6); dht.begin (); pinMode (3, SALIDA); digitalWrite (3, BAJO); } bucle vacío () {topr =analogRead (A2); topl =analogRead (A3); botl =analogRead (A4); botr =analogRead (A5); Vout =(analogRead (A1) * 5.0) / 1023; Serial.println ("modo manual"); Cayenne.loop (); if (digitalRead (3) ==HIGH) {Serial.println ("Modo automático"); servoh =servo_x.read (); servov =servo_z.read (); int avgtop =(topr + topl) / 2; int avgbot =(botr + botl) / 2; int avgright =(topr + botr) / 2; int avgleft =(topl + botl) / 2; int diffhori =avgtop - avgbot; int diffverti =avgleft - avgright; / * seguimiento de acuerdo con el eje horizontal * / if (abs (diffhori) <=valor_de_ umbral) {servo_x.write (servoh); // detiene el servo arriba-abajo} else {if (diffhori> umbral_valor) {Serial.println ("x - 2"); servo_x.write (servoh -2); // Rotación en sentido horario CW if (servoh> servohLimitHigh) {servoh =servohLimitHigh; } retraso (10); } else {servo_x.write (servoh +2); // CCW if (servoh  umbral_valor) {servo_z.write (servov -2); // CW if (servov> servovLimitHigh) {servov =servovLimitHigh; } retraso (10); } else {servo_z.write (servov +2); // CCW if (servov   

Esquemas


Proceso de manufactura

  1. Fascinante Internet de las cosas:¿Qué impulsa a los profesionales de IoT?
  2. El Internet de 10 millones de cosas
  3. Llevando blockchain al Internet de las cosas
  4. El desafío de seguridad que plantea el Internet de las cosas:Parte 2
  5. Seguridad cibernética e Internet de las cosas:seguridad de IoT preparada para el futuro
  6. Invertir en el potencial del Internet de las cosas
  7. ¿El verdadero Internet de las cosas?
  8. Internet de las cosas:gestión de la afluencia de datos
  9. 5 desafíos que aún enfrenta el Internet de las cosas
  10. Liberando el poder del Internet industrial de las cosas
  11. Seguidor solar V2.0