산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 우노와 이더넷 실드로 정확한 태양광 복사량 측정하기

부품 및 소모품

아두이노 우노 (Arduino UNO) × 1
아두이노 이더넷 실드 2 × 1
태양전지 (솔라 셀) × 1
10kΩ 저항 × 1

필수 도구

프로젝트 소개

배경

온도, 습도, 조도 센서는 흔하지만 태양 복사량(일사량)을 측정하는 저렴한 센서는 없습니다. 정식 계측기인 피라노미터(Pyranometer)는 200~800달러로 취미용으론 부담됩니다. 집 옥상에 태양광 패널 설치 전, 우리 동네 일사량을 직접 측정해 보고 싶어 직접 만들었습니다. 흔한 부품과 아두이노로 저렴하게 구현 가능합니다.

세팅

  1. 태양전지 선 2가닥(검정=그라운드, 빨강=VCC) 확인. 멀티미터로 극성 확인: 검정 프로브 연결 시 전압이 양수면 그 배선이 그라운드.
  2. 그라운드 → 아두이노 GND, VCC → 10kΩ 저항 → 아날로그 핀 A0. 저항은 셀 내부 저항보다 훨씬 커야 계산이 정확합니다.

태양전지는 입사 에너지에 비례해 전압을 생성합니다. 이 관계를 이용해 일사량(W/m²)을 추정합니다.

필요 파라미터:

계산 공식:

샘플 코드 (시리얼 출력)

#define ANALOG_PIN A0
#define RESISTANCE 10      // kΩ 단위
#define PANEL_LENGTH 60    // mm
#define PANEL_WIDTH 20     // mm

volatile float Area, Power, Radiation;

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

void loop() {
  Area = PANEL_LENGTH * PANEL_WIDTH / 10000.0;  // m²
  Power = pow(analogRead(ANALOG_PIN), 2) / RESISTANCE;
  Radiation = Power / Area;
  char msg[64];
  sprintf(msg, " The Solar Radiation is %f W/M2 ", Radiation);
  Serial.println(msg);
  delay(1000);
}

평균 일사량: 맑은 날 150~300 W/m², 적도/한여름엔 900 W/m²까지.

이더넷 실드 추가로 웹 모니터링

이더넷 실드를 아두이노 위에 꽂고 핀 매핑만 유지하면 됩니다. 웹 서버로 5초마다 갱신되는 페이지에 일사량 표시.

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

// ... (위와 같은 정의 및 변수)

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("server is at ");
  Serial.println(Ethernet.localIP());
}

void loop() {
  Area = PANEL_LENGTH * PANEL_WIDTH / 10000.0;
  Power = pow(analogRead(ANALOG_PIN), 2) / RESISTANCE;
  Radiation = Power / Area;
  char msg[64];
  sprintf(msg, " The Solar Radiation is %f W/M2 ", Radiation);

  EthernetClient client = server.available();
  if (client) {
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        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("client disconnected"); } }

회로도

태양전지, 저항, 아두이노 연결 회로도

아두이노 우노와 이더넷 실드로 정확한 태양광 복사량 측정하기

제조공정

  1. 라즈베리 파이에서 Maxim 1-Wire 센서와 DS2482 I2C 브리지로 온도 측정하기
  2. K30 CO2 센서: 실시간 실내 공기질 모니터링
  3. 1Sheeld와 아두이노로 시각/청각 장애인 간 소통 돕기
  4. 스마트 저금통 만들기: 아두이노 나노로 동전 인식기 제어하기
  5. 아두이노 블루투스로 LED 제어하기 - HC-05 & MIT App Inventor 입문 가이드
  6. DFRobot 정전식 지문 인식 센서 아두이노/ESP8266 연동 가이드
  7. 아두이노 메가와 센서를 활용한 인터랙티브 넥시온 HMI 프로젝트
  8. 아두이노 메가 기반 닌텐도 눙크 컨트롤 6자유도 로봇 암 키트
  9. 솔라 트래커 V2.0: 고급 DIY 태양광 패널 추적 시스템
  10. 아두이노 나노와 로터리 인코더로 만드는 정밀 측정 바퀴