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

Medición de la radiación solar con Arduino

Componentes y suministros

Arduino UNO
× 1
Arduino Ethernet Shield 2
× 1
célula solar
× 1
Resistencia de 10k ohmios
× 1

Herramientas y máquinas necesarias

Multímetro digital

Acerca de este proyecto

Acerca de

Hay muchos sensores disponibles para medir todo tipo de condiciones climáticas como temperatura, humedad, intensidad de la luz, etc., pero no hay sensores fácilmente disponibles para medir cantidades de radiación solar. Esto se debe a que la radiación solar puede ser difícil de medir, aunque la sentimos todos los días en nuestra piel.

La irradiancia solar es la potencia por unidad de área recibida del Sol en forma de radiación electromagnética en el rango de longitud de onda del instrumento de medición. La amplia gama de longitudes de onda del Sol es otro factor que dificulta su medición.

El instrumento para medir la radiación solar se llama piranómetro. Los piranómetros pueden costar entre $ 200 y $ 800, incluso de proveedores chinos, lo que los hace inaccesibles para el aficionado promedio. Puede leer más sobre ellos aquí:https://en.wikipedia.org/wiki/Pyranometer

Hace poco estuve considerando comprar un panel solar para mi casa y quería saber si valdría la pena, por lo que quería estimar la cantidad de energía solar disponible donde vivo.

No estaba interesado en comprar un piranómetro, así que pensé que podría ahorrar algo de dinero y divertirme al mismo tiempo haciendo el mío.

Así es como llegué a hacer mi propio dispositivo genial que es mucho más barato y puede ayudar a estimar la cantidad de radiación solar. Utiliza algunos componentes de fácil acceso y el Arduino para los cálculos. Obtuve la mayor parte de mi componente de Chinavasion, pero hay muchos otros lugares donde puede obtener las herramientas y el equipo, ya que todos están comúnmente disponibles.

Configuración

1. Su celda solar debe tener 2 cables, uno a tierra (negro) y el otro vivo (rojo). Si tiene códigos de colores diferentes o no puede diferenciarlos, consulte con su multímetro. Conecte las sondas de su multímetro a ambos cables, si el voltaje que se muestra es positivo, entonces el cable al que está conectada su sonda negra del multímetro es el de tierra, mientras que el rojo está vivo, si el voltaje es negativo, es al revés alrededor.

2. Conecte el cable de tierra de su celda solar a la tierra de Arduino y el cable VCC a cualquier pin analógico a través de la resistencia que hemos elegido. Para este proyecto usaremos el pin analógico A0. La resistencia es muy importante para nuestros cálculos, ya que esperamos que sea muchas veces mayor que la resistencia interna de la celda.

Eso es todo lo que necesitamos por ahora. Pasando a la parte de codificación. Las células solares generan energía al convertir la energía solar del Sol en energía eléctrica, cuanto mayor es la energía (radiación y energía luminosa) del Sol. Cuanto mayor sea el voltaje producido. Usaremos esta relación directamente proporcional para estimar la radiación solar.

Se necesitarán los siguientes parámetros:

  • Voltaje de referencia analógico Arduino =5V (tal vez diferente en su placa)
  • Salida de voltaje máximo de su celda solar (esto variará según el panel solar que esté utilizando, debe verificarlo para confirmarlo, ya que es muy esencial para nuestro cálculo, para la celda solar de calculadora promedio es de alrededor de 5V) .
  • Dimensión de la celda solar. Puede medir esto usando una regla (longitud y con o cualquier parámetro que necesite para encontrar el área).

Por lo tanto, estimaremos nuestra radiación solar calculando la potencia de la célula solar y dividiéndola por su área.

  • Potencia =potencia (lectura analógica (A0), 2) / Resistencia
  • Área =largo * ancho (asumiendo que tenemos un rectángulo)
  • radiación solar =potencia / área

Aquí está el código de muestra a continuación:

  / * ------------------------------------------ -------------------------------------------------- ---------------------------- * / # define ANALOG_PIN A0 // Pin analógico # define RESISTANCE 10 // Resistencia en miles de ohms # define PANEL_LENGTH 60 // Longitud de la celda solar en mm # define PANEL_WIDTH 20 // Ancho de la celda solar en mm Volátil flotador Área; flotador volátil Potencia; flotador volátil Radiación; / ** Función de configuración principal * / void setup () {// Comenzar comunicación serialSerial.begin (9600); while (! Serial); delay (100);} / ** Main Setup function * / void loop () {Area =PANEL_LENGTH * PANEL_WIDTH / (100 * 100); // estamos dividiendo por 10000 obtenemos el área en metros cuadradosPower =pow (analogRead (ANALOG_PIN), 2) / RESISTANCE; // Calculando powerRadiation =Power / Area; char * msg; sprintf (msg, "La radiación solar es% f W / M2", Radiación); // Generando mensaje a imprimir Serial.println (msg); delay (1000);} / * ---------------------------- -------------------------------------------------- ---------------------------------------------- * /  

Los valores de irradiancia promedio para un día normal pueden oscilar entre 150 y 300 W / M2. Pero esto variará ampliamente según su ubicación. Puede llegar hasta 900 en un día soleado o en áreas alrededor del ecuador.

Para agregar funcionalidad de Internet, podemos usar el escudo de Ethernet. No tenemos que hacer ninguna otra conexión nueva, simplemente monte el escudo en el Arduino y coloque los pines en sus posiciones correspondientes en el escudo (es decir, el pin 1 en el Arduino permanece el pin 1 en el escudo)

Código

  • código de muestra para piranómetro
  • Código de función de Ethernet
código de muestra para Pyranometer Arduino
#define ANALOG_PIN A0 // Pin analógico
#define RESISTANCE 10 // Resistencia en miles de ohmios
#define PANEL_LENGTH 60 // Longitud de la celda solar en mm
#define PANEL_WIDTH 20 // Ancho de la celda solar en mm

Área de flotación volátil;
flotador volátil Energía;
flotador volátil Radiación;

/ *
* Función de configuración principal
* /
configuración vacía () {
// Comenzar la comunicación en serie
Serial.begin (9600);
mientras (! Serial);

retraso (100);
}


/ *
* Función de configuración principal
* /
bucle vacío () {

Área =PANEL_LENGTH * PANEL_WIDTH / (100 * 100); // estamos dividiendo por 10000 obtenemos el área en metros cuadrados

Potencia =pow (analogRead (ANALOG_PIN), 2) / RESISTANCE; // Calcular la potencia

Radiación =Potencia / Área;

char * msg;

sprintf (msg, "La radiación solar es% f W / M2", Radiación); // Generando mensaje para imprimir

Serial.println (msg);

retraso (1000);
}
 Sin vista previa (solo descarga). 
Código de función Ethernet Arduino
#include
#include

#define ANALOG_PIN A0 // Pin analógico
#define RESISTANCE 10 // Resistencia en miles de ohmios
#define PANEL_LENGTH 60 // Longitud de la celda solar en mm
#define PANEL_WIDTH 20 // Ancho de la celda solar en mm

Área de flotación volátil;
flotador volátil Energía;
flotador volátil Radiación;


// Ingrese una dirección MAC y una dirección IP para su controlador a continuación.
// La dirección IP dependerá de su red local:
byte mac [] ={
0xDE, 0x0D, 0x8E, 0xEF, 0xFE, 0xED
};
Dirección IP ip (192, 168, 1, 177);

// Inicializar la biblioteca del servidor Ethernet
// con la dirección IP y el puerto que desea utilizar
// (el puerto 80 es el predeterminado para HTTP):
Servidor EthernetServer (80);

configuración vacía () {
// Abra las comunicaciones en serie y espere a que se abra el puerto:
Serial.begin (9600);
while (! Serial) {
; // espera a que se conecte el puerto serie. Necesario solo para puerto USB nativo
}


// inicia la conexión Ethernet y el servidor:
Ethernet.begin (mac, ip);
server.begin ();
Serial.print ("el servidor está en");
Serial.println (Ethernet.localIP ());
}


bucle vacío () {

Área =PANEL_LENGTH * PANEL_WIDTH / (100 * 100); // estamos dividiendo por 10000 obtenemos el área en metros cuadrados
Potencia =pow (analogRead (ANALOG_PIN), 2) / RESISTANCE; // Calcular la potencia
Radiación =Potencia / Área;
char * msg;
sprintf (msg, "La radiación solar es% f W / M2", Radiación); // Generando mensaje para imprimir


// escucha a los clientes entrantes
Cliente EthernetClient =servidor disponible ();
if (cliente) {
Serial.println ("nuevo cliente");
// una solicitud http termina con una línea en blanco
booleano currentLineIsBlank =verdadero;
while (cliente.conectado ()) {
if (client.available ()) {
char c =cliente.read ();
Serial.write (c);
// si ha llegado al final de la línea (recibió una nueva línea
// carácter) y la línea está en blanco, la solicitud http ha finalizado,
// para que puedas enviar una respuesta
if (c =='\ n' &¤tLineIsBlank) {
// enviar un encabezado de respuesta http estándar
client.println ("HTTP / 1.1 200 OK");
client.println ("Tipo de contenido:texto / html");
client.println ("Conexión:cerrar"); // la conexión se cerrará después de completar la respuesta
client.println ("Actualizar:5"); // actualiza la página automáticamente cada 5 segundos
cliente.println ();
client.println ("");
cliente.println ("");

/ *
* Enviar mensaje al cliente
* /
client.print (msg);
cliente.println ("
");

client.println ("");
descanso;
}
si (c =='\ n') {
// estás comenzando una nueva línea
currentLineIsBlank =true;
} más si (c! ='\ r') {
// has conseguido un personaje en la línea actual
currentLineIsBlank =falso;
}
}
}
// darle tiempo al navegador web para recibir los datos
retraso (1);
// cierra la conexión:
client.stop ();
Serial.println ("cliente desconectado");
}
}
 Sin vista previa (solo descarga). 

Esquemas

Esquema de panel solar, resistencia y conexiones.

Proceso de manufactura

  1. Medición de temperatura con RASPBERRY PI
  2. Monitoreo de CO2 con sensor K30
  3. Comunicación para personas sordociegas con 1Sheeld / Arduino
  4. Controlar el aceptador de monedas con Arduino
  5. ¡Arduino con Bluetooth para controlar un LED!
  6. Sensor capacitivo de huellas dactilares con Arduino o ESP8266
  7. Jugando con Nextion Display
  8. Brazo robótico controlado por Nunchuk (con Arduino)
  9. Seguidor solar V2.0
  10. Rueda de medición simple de bricolaje con codificador giratorio
  11. Mini radar con Arduino