Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Medição Precisa de Radiação Solar com Arduino UNO e Ethernet Shield

Componentes e Materiais

Componente Quantidade
Arduino UNO 1
Arduino Ethernet Shield 2 1
Célula Solar 1
Resistor 10k ohm 1

Ferramentas Necessárias

Sobre o Projeto

Sobre

Existem muitos sensores para medir temperatura, umidade, intensidade de luz, mas não há sensores acessíveis para medir radiação solar. A radiação solar é difícil de medir devido à ampla faixa de comprimentos de onda do Sol.

O instrumento profissional é o Piranômetro, que custa US$ 200-800, inacessível para hobbyistas. Queria estimar a energia solar disponível na minha região para avaliar viabilidade de painel solar residencial, então decidi construir meu próprio piranômetro barato e divertido.

Usei componentes facilmente encontrados e Arduino para cálculos. Comprei a maioria na Chinavasion, mas há muitos fornecedores.

Configuração

  1. Sua célula solar deve ter 2 fios: terra (preto) e vivo (vermelho). Se não souber, use multímetro: se tensão for positiva, fio do probe preto é terra; se negativa, invertido.
  2. Conecte terra da célula ao GND do Arduino e VCC a um pino analógico através do resistor escolhido (essencial para cálculos, deve ser muito maior que resistência interna da célula). Usaremos pino A0.

Células solares convertem energia solar em elétrica: maior radiação → maior tensão. Usamos essa relação direta para estimar radiação solar.

Parâmetros Necessários

Cálculo da Radiação Solar

Estimamos radiação calculando potência da célula e dividindo por sua área.

Código de Exemplo

/*------------------------------------------------------------------------------------------------------------------------*/
#define ANALOG_PIN A0
#define RESISTANCE 10 // Resistência em milhares de ohms
#define PANEL_LENGTH 60 // Comprimento da célula em mm
#define PANEL_WIDTH 20  // Largura da célula em mm

volatile float Area;
volatile float Power;
volatile float Radiation;

void setup() {
  Serial.begin(9600);
  while(!Serial);
  delay(100);
}

void loop() {
  Area = PANEL_LENGTH * PANEL_WIDTH / (100*100); // área em m²
  Power = pow(analogRead(ANALOG_PIN), 2) / RESISTANCE;
  Radiation = Power / Area;
  char *msg;
  sprintf(msg, "A Radiação Solar é %f W/M2", Radiation);
  Serial.println(msg);
  delay(1000);
}
/*----------------------------------------------------------------------------------------------------------------------------*/

Valores médios de irradiação em dia normal: 150-300 W/m². Varia muito com localização. Pode chegar a 900 W/m² em dia ensolarado ou perto do equador.

Adicionando Funcionalidade Ethernet

Para conectar à internet, use o Ethernet Shield. Não precisa de novas conexões: apenas encaixe o shield no Arduino e os pinos correspondem (pino 1 do Arduino = pino 1 do shield).

Código

Código para Piranômetro

#define ANALOG_PIN A0
#define RESISTANCE 10
#define PANEL_LENGTH 60
#define PANEL_WIDTH 20

volatile float Area;
volatile float Power;
volatile float Radiation;

void setup() {
  Serial.begin(9600);
  while(!Serial);
  delay(100);
}

void loop() {
  Area = PANEL_LENGTH * PANEL_WIDTH / (100*100);
  Power = pow(analogRead(ANALOG_PIN), 2) / RESISTANCE;
  Radiation = Power / Area;
  char *msg;
  sprintf(msg, " A Radiação Solar é %f W/M2 ", Radiation);
  Serial.println(msg);
  delay(1000);
}

Código com Função Ethernet

#include <SPI.h>
#include <Ethernet.h>

#define ANALOG_PIN A0
#define RESISTANCE 10
#define PANEL_LENGTH 60
#define PANEL_WIDTH 20

volatile float Area;
volatile float Power;
volatile float Radiation;

byte mac[] = {0xDE, 0x0D, 0x8E, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 177);
EthernetServer server(80);

void setup() {
  Serial.begin(9600);
  while (!Serial);
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("servidor em ");
  Serial.println(Ethernet.localIP());
}

void loop() {
  Area = PANEL_LENGTH * PANEL_WIDTH / (100*100);
  Power = pow(analogRead(ANALOG_PIN), 2) / RESISTANCE;
  Radiation = Power / Area;
  char *msg;
  sprintf(msg, " A Radiação Solar é %f W/M2 ", Radiation);

  EthernetClient client = server.available();
  if (client) {
    Serial.println("novo cliente");
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        if (c == '\n' && currentLineIsBlank) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println("Refresh: 5");
          client.println();
          client.println("");
          client.println("");
          client.print(msg);
          client.println("
"); client.println(""); break; } if (c == '\n') currentLineIsBlank = true; else if (c != '\r') currentLineIsBlank = false; } } delay(1); client.stop(); Serial.println("cliente desconectado"); } }

Esquemático

Esquemático da célula solar, resistor e conexões.

Medição Precisa de Radiação Solar com Arduino UNO e Ethernet Shield

Processo de manufatura

  1. Medição de Temperatura no Raspberry Pi com Sensores Maxim 1‑Wire e Bridge I2C DS2482
  2. Sensor K30 CO₂: Monitoramento de Qualidade do Ar Interno em Tempo Real
  3. Facilitando Comunicação Surdo-Cego com 1Sheeld e Arduino
  4. Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
  5. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  6. Integrando Sensor de Impressão Digital Capacitivo DFRobot com Arduino ou ESP8266
  7. Projeto HMI Interativo com Nextion, Arduino Mega e Sensores
  8. Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
  9. Rastreador Solar V2.0 – Sistema Avançado de Rastreamento Solar DIY
  10. Roda de Medição Precisa DIY com Arduino Nano e Encoder Rotativo