Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Pengukuran Radiasi Matahari Akurat dengan Arduino UNO dan Ethernet Shield

Bahan dan Komponen

Alat dan Mesin yang Diperlukan

Tentang Proyek

Tentang

Tersedia banyak sensor untuk mengukur berbagai kondisi cuaca seperti suhu, kelembaban, intensitas cahaya, dll., tetapi tidak ada sensor yang mudah tersedia untuk mengukur jumlah radiasi matahari. Ini karena radiasi matahari dapat sulit diukur, meskipun kita merasakannya setiap hari di kulit kita.

Iradiansi surya adalah daya per satuan luas yang diterima dari Matahari dalam bentuk radiasi elektromagnetik dalam rentang panjang gelombang instrumen pengukur. Rentang panjang gelombang Matahari yang luas adalah faktor lain yang membuatnya sulit diukur.

Instrumen untuk mengukur radiasi matahari disebut Piranometer. Piranometer dapat berkisar dari $200 -$800, bahkan dari pemasok China, membuatnya tidak terjangkau bagi hobiwan rata-rata. Anda dapat membaca lebih lanjut tentangnya di sini: https://en.wikipedia.org/wiki/Pyranometer

Saya baru-baru ini sedang mencari pembelian panel surya untuk rumah saya dan ingin tahu apakah itu akan berharga dan jadi ingin memperkirakan jumlah energi surya yang tersedia di tempat saya tinggal.

Saya tidak tertarik untuk membeli Piranometer jadi saya pikir saya dapat menghemat beberapa uang dan bersenang-senang saat bersamaan dengan membuat sendiri.

Inilah cara saya datang untuk membuat gadget keren saya yang jauh lebih murah dan dapat membantu memperkirakan jumlah Radiasi Surya. Ini menggunakan beberapa komponen yang mudah diakses dan Arduino untuk perhitungan. Saya mendapat sebagian besar komponen saya dari Chinavasion tetapi ada banyak tempat lain tempat Anda dapat mencari alat dan peralatan karena semuanya umum tersedia.

Pengaturan

1. Sel surya Anda harus memiliki 2 kabel, satu ground (hitam) dan yang lainnya live (merah). Jika Anda memiliki kode warna yang berbeda atau tidak dapat membedakannya, periksa dengan multimeter Anda. Sambungkan probe multimeter Anda ke kedua kabel, jika tegangan yang ditampilkan positif, maka kabel yang probe hitam multimeter Anda terhubung adalah ground, sementara yang merah adalah live, jika tegangan negatif, itu sebaliknya.

2. Sambungkan kabel ground sel surya Anda ke ground Arduino dan kabel VCC ke pin analog manapun melalui resistor yang kami pilih. Untuk proyek ini kita akan menggunakan pin analog A0. Resistor sangat penting untuk perhitungan kami karena kami harap ia jauh lebih besar dari resistensi internal sel.

Itu saja yang kita butuhkan untuk saat ini. Pindah ke bagian kode. Sel surya menghasilkan energi dengan mengonversi energi surya dari Matahari menjadi energi listrik, semakin tinggi energi (radiasi dan energi cahaya) dari Matahari. Semakin tinggi tegangan yang dihasilkan akan menjadi. Kita akan menggunakan hubungan sebanding langsung ini untuk memperkirakan Radiasi Surya.

Parameter berikut akan dibutuhkan:

Jadi kita akan memperkirakan radiasi surya kita dengan menghitung daya dari sel surya dan membaginya dengan luasnya.

Berikut adalah kode contoh di bawah ini:

/*------------------------------------------------------------------------------------------------------------------------*/ #define ANALOG_PIN A0 // Pin analog #define RESISTANCE 10 // Resistansi dalam ribuan ohm #define PANEL_LENGTH 60 // Panjang sel surya dalam mm #define PANEL_WIDTH 20 // Lebar sel surya dalam mm volatile float Area; volatile float Power; volatile float Radiation; /* * Fungsi Setup utama */ void setup() { // Mulai komunikasi serial Serial.begin(9600); while(!Serial); delay(100); } /* * Fungsi Setup utama */ void loop() { Area = PANEL_LENGTH * PANEL_WIDTH / (100*100); // kita membagi dengan 10000 untuk mendapatkan luas dalam meter persegi Power = pow(analogRead( ANALOG_PIN ), 2) / RESISTANCE ; // Menghitung daya Radiation = Power / Area; char *msg; sprintf(msg, " The Solar Radiation is %f W/M2 ", Radiation); // Membuat pesan yang akan dicetak Serial.println(msg); delay(1000); } /*----------------------------------------------------------------------------------------------------------------------------*/ 

Nilai Iradiansi Rata-rata untuk hari normal dapat berkisar dari 150 hingga 300 W/M2. Namun ini akan bervariasi sangat tergantung pada lokasi Anda. Ini dapat mencapai 900 pada hari yang cerah atau di daerah sekitar khatulistiwa.

Untuk menambahkan fungsionalitas internet, kita dapat menggunakan Ethernet shield. Kita tidak perlu membuat koneksi baru apa pun, cukup pasang shield pada Arduino dan letakkan pin pada posisi yang sesuai pada shield (misalnya pin 1 pada Arduino tetap pin 1 pada shield)

Kode

kode contoh untuk PiranometerArduino
#define ANALOG_PIN A0 // Pin analog
#define RESISTANCE 10 // Resistansi dalam ribuan ohm
#define PANEL_LENGTH 60 // Panjang sel surya dalam mm
#define PANEL_WIDTH 20 // Lebar sel surya dalam mm

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

/*
* Fungsi Setup utama
*/
void setup() {
// Mulai komunikasi serial
Serial.begin(9600);
while(!Serial);

delay(100);
}


/*
* Fungsi Setup utama
*/
void loop() {

Area = PANEL_LENGTH * PANEL_WIDTH / (100*100); // kita membagi dengan 10000 untuk mendapatkan luas dalam meter persegi

Power = pow(analogRead( ANALOG_PIN ), 2) / RESISTANCE ; // Menghitung daya

Radiation = Power / Area;

char *msg;

sprintf(msg, " The Solar Radiation is %f W/M2 ", Radiation); // Membuat pesan yang akan dicetak

Serial.println(msg);

delay(1000);
}
Tidak ada pratinjau (hanya unduhan).
kode fungsi EthernetArduino
#include <SPI.h>
#include <Ethernet.h>

#define ANALOG_PIN A0 // Pin analog
#define RESISTANCE 10 // Resistansi dalam ribuan ohm
#define PANEL_LENGTH 60 // Panjang sel surya dalam mm
#define PANEL_WIDTH 20 // Lebar sel surya dalam mm

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


// Masukkan alamat MAC dan alamat IP untuk pengontrol Anda di bawah.
// Alamat IP akan tergantung pada jaringan lokal Anda:
byte mac[] = {
0xDE, 0x0D, 0x8E, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 177);

// Inisialisasi pustaka server Ethernet
// dengan alamat IP dan port yang ingin Anda gunakan
// (port 80 adalah default untuk HTTP):
EthernetServer server(80);

void setup() {
// Buka komunikasi serial dan tunggu port terbuka:
Serial.begin(9600);
while (!Serial) {
; // tunggu port serial untuk terhubung. Diperlukan untuk port USB asli saja
}


// mulai koneksi Ethernet dan server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server di ");
Serial.println(Ethernet.localIP());
}


void loop() {

Area = PANEL_LENGTH * PANEL_WIDTH / (100*100); // kita membagi dengan 10000 untuk mendapatkan luas dalam meter persegi
Power = pow(analogRead( ANALOG_PIN ), 2) / RESISTANCE ; // Menghitung daya
Radiation = Power / Area;
char *msg;
sprintf(msg, " The Solar Radiation is %f W/M2 ", Radiation); // Membuat pesan yang akan dicetak


// dengarkan klien yang masuk
EthernetClient client = server.available();
if (client) {
Serial.println("klien baru");
// permintaan http diakhiri dengan baris kosong
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// jika Anda sudah sampai akhir baris (menerima karakter newline
// karakter) dan baris kosong, permintaan http telah berakhir,
// jadi Anda dapat mengirim balasan
if (c == '\n' && currentLineIsBlank) {
// kirim header respons http standar
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // koneksi akan ditutup setelah selesai respons
client.println("Refresh: 5"); // segarkan halaman secara otomatis setiap 5 detik
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");

/*
* Kirim pesan ke klien
*/
client.print(msg);
client.println("<br />");

client.println("</html>");
break;
}
if (c == '\n') {
// Anda memulai baris baru
currentLineIsBlank = true;
} else if (c != '\r') {
// Anda telah mendapatkan karakter pada baris saat ini
currentLineIsBlank = false;
}
}
}
// beri waktu browser web untuk menerima data
delay(1);
// tutup koneksi:
client.stop();
Serial.println("klien terputus");
}
}
Tidak ada pratinjau (hanya unduhan).

Skematik

Skematik panel surya, resistor, dan koneksiPengukuran Radiasi Matahari Akurat dengan Arduino UNO dan Ethernet Shield

Proses manufaktur

  1. Pengukuran Suhu Raspberry Pi dengan Sensor 1-Wire Maxim dan Jembatan I2C DS2482
  2. Sensor CO2 K30: Pemantauan Kualitas Udara Indoor dalam Waktu Nyata
  3. Memfasilitasi Komunikasi Tuna Netra Tuna Rungu Menggunakan 1Sheeld dan Arduino
  4. Bangun Tabung Pintar: Kendalikan Penerima Koin dengan Arduino Nano
  5. Kontrol LED melalui Bluetooth dengan Arduino – Panduan DIY Sederhana
  6. Mengintegrasikan Sensor Sidik Jari Kapasitif DFRobot dengan Arduino atau ESP8266
  7. Proyek HMI Nextion Interaktif Menggunakan Arduino Mega dan Sensor
  8. Kit Lengan Robot 6-DoF Berbasis Arduino dengan Pengendali Nunchuk
  9. Pelacak Surya V2.0 – Sistem Pelacak Panel Surya DIY Lanjutan
  10. Membuat Roda Pengukur DIY yang Akurat dengan Arduino Nano & Enkoder Rotatif