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

Arduino로 태양 복사열 측정

구성품 및 소모품

Arduino UNO
× 1
Arduino 이더넷 쉴드 2
× 1
태양 전지
× 1
저항 10k 옴
× 1

필요한 도구 및 기계

디지털 멀티미터

이 프로젝트 정보

온도, 습도, 광도 등과 같은 모든 종류의 기상 조건을 측정하는 데 사용할 수 있는 센서는 많이 있지만 일사량을 측정하는 데 쉽게 사용할 수 있는 센서는 없습니다. 매일 피부로 느끼면서도 일사량을 측정하기 어려울 수 있기 때문이다.

태양 복사 조도는 측정 기기의 파장 범위에서 전자기 복사 형태로 태양으로부터 받은 단위 면적당 전력입니다. 태양 파장의 넓은 범위는 측정을 어렵게 만드는 또 다른 요소입니다.

일사량을 측정하는 기구를 일사계(Pyranometer)라고 합니다. 일사계는 심지어 중국 공급업체로부터도 $200 - $800의 비용이 들 수 있으므로 일반 애호가가 접근할 수 없습니다. 여기에서 자세한 내용을 읽을 수 있습니다. https://en.wikipedia.org/wiki/Pyranometer

저는 최근에 집에 사용할 태양광 패널을 구입하는 방법을 알아보고 있었는데 그것이 가치가 있는지 알고 싶었고 그래서 제가 살고 있는 곳에서 사용할 수 있는 태양 에너지의 양을 추정하고 싶었습니다.

나는 일사계를 사는 데 관심이 없었기 때문에 돈을 절약하고 동시에 재미를 느낄 수 있다고 생각했습니다.

이것이 내가 훨씬 저렴하고 태양 복사량을 추정하는 데 도움이 될 수 있는 멋진 가제트를 만드는 방법입니다. 쉽게 접근할 수 있는 구성 요소와 계산을 위해 Arduino를 사용합니다. 나는 Chinavasion에서 대부분의 구성 요소를 얻었지만 일반적으로 사용할 수 있는 도구와 장비를 구할 수 있는 다른 곳이 많이 있습니다.

설정

1. 태양 전지에는 2개의 와이어가 있어야 합니다. 하나는 접지(검정색)이고 다른 하나는 라이브(빨간색)입니다. 색상 코드가 다르거나 구분할 수 없는 경우 멀티미터에 확인하십시오. 멀티 미터의 프로브를 두 와이어에 연결하십시오. 표시된 전압이 양수이면 검은 색 멀티 미터 프로브가 연결된 와이어가 접지이고 빨간색은 라이브이고 전압이 음수이면 다른 방향입니다. 주변에.

2. 태양 전지의 접지선을 Arduino 접지에 연결하고 VCC 전선을 우리가 선택한 저항을 통해 아날로그 핀에 연결합니다. 이 프로젝트에서는 아날로그 핀 A0을 사용합니다. 저항은 셀의 내부 저항보다 몇 배나 클 것으로 예상하므로 계산에 매우 중요합니다.

그것이 지금 우리에게 필요한 전부입니다. 코딩 부분으로 넘어갑니다. 태양 전지는 태양의 태양 에너지를 전기 에너지로 변환하여 에너지를 생성합니다. 태양의 에너지(복사 및 빛 에너지)는 더 높습니다. 더 높은 전압이 생성됩니다. 이 정비례 관계를 사용하여 태양 복사를 추정합니다.

다음 매개변수가 필요합니다.

<울>
  • Arduino 아날로그 기준 전압 =5V(보드에 따라 다를 수 있음)
  • <울>
  • 태양 전지의 최대 전압 출력 (이것은 사용중인 태양 전지 패널에 따라 다르며 계산에 매우 중요하므로 확인해야합니다. 평균 계산기 태양 전지의 경우 약 5V입니다) .
  • <울>
  • 태양전지의 치수. 눈금자를 사용하여 이를 측정할 수 있습니다(길이 및 면적을 찾는 데 필요한 매개변수 포함).
  • 따라서 우리는 태양 전지의 전력을 계산하고 면적으로 나누어 태양 복사를 추정할 것입니다.

    <울>
  • 전력 =pow (analogRead(A0), 2) / 저항
  • <울>
  • 면적 =길이 * 너비 ( 직사각형이 있다고 가정 )
  • <울>
  • 태양 복사 =전력 / 면적
  • 다음은 샘플 코드입니다.

    <사전><코드>/*------------------------------------------ -------------------------------------------------- ----------------------------*/#define ANALOG_PIN A0 // 아날로그 핀#define RESISTANCE 10 // 수천 옴의 저항# define PANEL_LENGTH 60 // 태양 전지의 길이(mm)#define PANEL_WIDTH 20 // 태양 전지의 너비(mm)volatile float Area;volatile float Power;volatile float Radiation;/** Main Setup function*/void setup() {// Begin 직렬 통신Serial.begin(9600);while(!Serial);delay(100);}/** 기본 설정 기능*/void loop() {Area =PANEL_LENGTH * PANEL_WIDTH / (100*100); // 10000으로 나누고 면적을 평방 미터로 얻습니다.Power =pow(analogRead( ANALOG_PIN ), 2) / RESISTANCE; // powerRadation 계산 =Power / Area;char *msg; sprintf(msg, "태양 복사는 %f W/M2입니다. ", 복사); // 출력할 메시지 생성 Serial.println(msg);delay(1000);}/*---------------------------- -------------------------------------------------- ----------------------------------------------*/

    정상적인 날의 평균 조도 값은 150에서 300W/M2 사이입니다. 그러나 이것은 위치에 따라 크게 다를 것입니다. 화창한 날이나 적도 주변 지역에서는 900까지 올라갈 수 있습니다.

    인터넷 기능을 추가하기 위해 이더넷 실드를 사용할 수 있습니다. 다른 새 연결을 만들 필요가 없습니다. Arduino에 실드를 장착하고 실드의 해당 위치에 핀을 배치하기만 하면 됩니다(즉, Arduino의 핀 1은 실드의 핀 1로 유지됨).

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 일사계 샘플 코드
  • 이더넷 기능 코드
  • PyranometerArduino용 샘플 코드
    #define ANALOG_PIN A0 // 아날로그 핀
    #define RESISTANCE 10 // 수천 옴 단위의 저항
    #define PANEL_LENGTH 60 // 태양 전지의 길이(mm)
    #define PANEL_WIDTH 20 // 태양 전지의 너비(mm)

    휘발성 부동 소수점 영역;
    휘발성 플로트 전력;
    휘발성 부유물 방사선;

    /*
    * 메인 설정 기능
    */
    무효 설정() {
    // 시리얼 통신 시작
    Serial.begin(9600);
    동안(! 직렬);

    지연(100);
    }


    /*
    * 메인 설정 기능
    */
    무효 루프() {

    면적 =PANEL_LENGTH * PANEL_WIDTH / (100*100); // 10000으로 나누고 면적을 평방 미터로 얻습니다.

    전력 =pow(analogRead( ANALOG_PIN ), 2) / 저항; // 계산력

    방사선 =전력 / 면적;

    문자 *msg;

    sprintf(msg, "태양 복사는 %f W/M2입니다. ", 복사); // 출력할 메시지 생성

    Serial.println(msg);

    지연(1000);
    }
    미리보기 없음(다운로드만 가능).
    이더넷 기능 코드Arduino
    #include
    #include <이더넷.h>

    #define ANALOG_PIN A0 // 아날로그 핀
    #define RESISTANCE 10 // 수천 옴 단위의 저항
    #define PANEL_LENGTH 60 // 태양 전지의 길이(mm)
    #define PANEL_WIDTH 20 // 태양 전지의 너비(mm)

    휘발성 부동 소수점 영역;
    휘발성 플로트 전력;
    휘발성 부유물 방사선;


    // 아래에 컨트롤러의 MAC 주소와 IP 주소를 입력합니다.
    // IP 주소는 로컬 네트워크에 따라 달라집니다.
    바이트 맥[] ={
    0xDE, 0x0D, 0x8E, 0xEF, 0xFE, 0xED
    };
    IP주소 ip(192, 168, 1, 177);

    // 이더넷 서버 라이브러리 초기화
    // 사용하려는 IP 주소와 포트
    // (포트 80은 HTTP의 기본값임):
    이더넷서버 서버(80);

    무효 설정() {
    // 직렬 통신을 열고 포트가 열릴 때까지 기다립니다.
    Serial.begin(9600);
    동안 (! 직렬) {
    ; // 직렬 포트가 연결될 때까지 기다립니다. 기본 USB 포트에만 필요
    }


    // 이더넷 연결 및 서버 시작:
    Ethernet.begin(맥, 아이피);
    server.begin();
    Serial.print("서버는 ");
    Serial.println(Ethernet.localIP());
    }


    무효 루프() {

    면적 =PANEL_LENGTH * PANEL_WIDTH / (100*100); // 10000으로 나누고 면적을 평방 미터로 얻습니다.
    전력 =pow(analogRead( ANALOG_PIN ), 2) / 저항; // 계산력
    방사선 =전력 / 면적;
    문자 *msg;
    sprintf(msg, "태양 복사는 %f W/M2입니다. ", 복사); // 출력할 메시지 생성


    // 들어오는 클라이언트를 수신 대기
    EthernetClient 클라이언트 =server.available();
    if (클라이언트) {
    Serial.println("새 클라이언트");
    // http 요청은 빈 줄로 끝납니다.
    부울 currentLineIsBlank =true;
    동안 (client.connected()) {
    if (client.available()) {
    char c =client.read();
    Serial.write(c);
    // 줄 끝에 도달한 경우(줄 바꿈을 수신함)
    // 문자) 행이 비어 있고 http 요청이 종료되었습니다.
    // 답장을 보낼 수 있도록
    if (c =='\n' &¤tLineIsBlank) {
    // 표준 http 응답 헤더를 보냅니다.
    client.println("HTTP/1.1 200 OK");
    client.println("콘텐츠 유형:텍스트/html");
    client.println("연결:닫기"); // 응답 완료 후 연결이 닫힙니다.
    client.println("새로고침:5"); // 5초마다 자동으로 페이지 새로고침
    클라이언트.println();
    client.println("");
    client.println("");

    /*
    * 클라이언트에게 메시지 보내기
    */
    client.print(msg);
    client.println("
    ");

    client.println("");
    부서지다;
    }
    if (c =='\n') {
    // 새 줄을 시작하고 있습니다.
    currentLineIsBlank =참;
    } else if (c !='\r') {
    // 현재 줄의 문자를 얻었습니다.
    currentLineIsBlank =거짓;
    }
    }
    }
    // 웹 브라우저에 데이터를 수신할 시간을 줍니다.
    지연(1);
    // 연결을 닫습니다:
    client.stop();
    Serial.println("클라이언트 연결 끊김");
    }
    }
    미리보기 없음(다운로드만 가능).

    회로도

    태양 전지판, 저항기 및 연결의 개략도

    제조공정

    1. RASPBERRY PI로 온도 측정
    2. K30 센서로 CO2 모니터링
    3. 1Sheeld/Arduino를 사용한 청각 장애인용 통신
    4. Arduino로 코인 억셉터 제어
    5. Bluetooth가 탑재된 Arduino로 LED 제어!
    6. Arduino 또는 ESP8266이 있는 정전 용량 지문 센서
    7. Nextion 디스플레이로 재생
    8. Nunchuk 제어 로봇 팔(Arduino 포함)
    9. 솔라 트래커 V2.0
    10. 로터리 인코더가 있는 DIY 간단한 측정 휠