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

Mengukur Radiasi Matahari dengan Arduino

Komponen dan persediaan

Arduino UNO
× 1
Arduino Ethernet Shield 2
× 1
sel surya
× 1
Resistor 10k ohm
× 1

Alat dan mesin yang diperlukan

Multimeter Digital

Tentang proyek ini

Tentang

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

Radiasi matahari adalah daya per satuan luas yang diterima dari Matahari dalam bentuk radiasi elektromagnetik dalam rentang panjang gelombang alat ukur. Rentang panjang gelombang Matahari yang luas merupakan faktor lain yang membuatnya sulit untuk diukur.

Alat untuk mengukur radiasi matahari disebut Pyranometer. Pyranometer dapat berharga mulai dari $200 - $800, bahkan dari pemasok Cina, membuatnya tidak dapat diakses oleh penghobi rata-rata. Anda dapat membaca lebih lanjut tentang mereka di sini:https://en.wikipedia.org/wiki/Pyranometer

Saya baru-baru ini mencari untuk membeli panel surya untuk rumah saya dan ingin tahu apakah itu akan bermanfaat dan ingin memperkirakan jumlah energi matahari yang tersedia di tempat saya tinggal.

Saya tidak tertarik untuk membeli Pyranometer jadi saya pikir saya bisa menghemat uang dan bersenang-senang pada saat yang sama dengan membuat sendiri.

Ini adalah bagaimana saya datang untuk membuat gadget keren saya sendiri yang jauh lebih murah dan dapat membantu memperkirakan jumlah Radiasi Matahari. Ini menggunakan beberapa komponen yang mudah diakses dan Arduino untuk perhitungannya. Saya mendapatkan sebagian besar komponen saya dari Chinavasion tetapi ada banyak tempat lain di mana Anda dapat memperoleh peralatan dan perlengkapan karena semuanya tersedia secara umum.

Siapkan

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

2. Hubungkan kabel ground sel surya Anda ke ground Arduino dan kabel VCC ke pin analog apa pun melalui resistor yang telah kami pilih. Untuk proyek ini kita akan menggunakan pin analog A0. Resistor sangat penting untuk perhitungan kami karena kami mengharapkannya berkali-kali lebih besar daripada resistansi internal sel.

Itu saja yang kita butuhkan untuk saat ini. Pindah ke bagian pengkodean. Sel surya menghasilkan energi dengan mengubah energi matahari dari Matahari menjadi energi listrik, yang semakin tinggi energi (energi radiasi dan cahaya) dari Matahari. Semakin tinggi tegangan yang dihasilkan. Kami akan menggunakan hubungan proporsional langsung ini untuk memperkirakan Radiasi matahari.

Parameter berikut akan dibutuhkan:

  • Tegangan Referensi Analog Arduino =5V (Mungkin berbeda pada Board Anda)
  • Keluaran Tegangan Maksimum sel surya Anda ( Ini akan bervariasi tergantung pada panel surya yang Anda gunakan, Anda harus memeriksa untuk mengonfirmasi hal ini karena sangat penting untuk perhitungan kami, untuk sel surya kalkulator rata-rata sekitar 5V) .
  • Dimensi sel surya. Anda dapat mengukurnya menggunakan penggaris (panjang dan dengan atau parameter apa pun yang Anda perlukan untuk menemukan luasnya).

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

  • Daya =pow (analogRead(A0), 2) / Resistansi
  • Luas =panjang * lebar ( dengan asumsi kita memiliki persegi panjang )
  • radiasi matahari =daya / luas

Berikut adalah contoh kode di bawah ini:

/*------------------------------------------ -------------------------------------------------- ----------------------------*/#define ANALOG_PIN A0 // Pin analog#define RESISTANCE 10 // Resistansi dalam ribuan ohm# define PANEL_LENGTH 60 // Panjang solar cell dalam mm#define PANEL_WIDTH 20 // Lebar solar cell dalam mmvolatile float Area;volatile float Power;volatile float Radiation;/** Fungsi Main Setup*/void setup() {// Begin komunikasi serialSerial.begin(9600); while(!Serial);delay(100);}/** Fungsi Pengaturan Utama*/void loop() {Area =PANEL_LENGTH * PANEL_WIDTH / (100*100); // kita bagi dengan 10.000 dapatkan luas dalam meter persegiPower =pow(analogRead( ANALOG_PIN ), 2) / RESISTANCE; // Menghitung dayaRadiasi =Daya / Luas;char *msg; sprintf(msg, " Radiasi Matahari adalah %f W/M2 ", Radiasi); // Menghasilkan pesan yang akan dicetak Serial.println(msg);delay(1000);}/*---------------------------- -------------------------------------------------- ----------------------------------------------*/ 

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

Untuk menambahkan fungsionalitas internet, kita dapat menggunakan perisai Ethernet. Kita tidak perlu membuat koneksi baru lainnya, cukup pasang pelindung pada Arduino dan tempatkan pin pada posisinya yang sesuai pada pelindung (yaitu pin 1 pada Arduino tetap pin 1 pada pelindung)

Kode

  • kode contoh untuk Pyranometer
  • Kode fungsi Ethernet
contoh kode untuk PyranometerArduino
#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

Area float yang mudah menguap;
Daya float yang mudah menguap;
Radiasi float yang mudah menguap;

/*
* Fungsi Pengaturan Utama
*/
batalkan pengaturan() {
// Mulai komunikasi serial
Serial.begin(9600);
while(!Serial);

penundaan(100);
}


/*
* Fungsi Pengaturan Utama
*/
lingkaran kosong() {

Luas =PANEL_LENGTH * PANEL_WIDTH / (100*100); // kita bagi dengan 10.000 dapatkan luas dalam meter persegi

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

Radiasi =Daya / Luas;

karakter *pesan;

sprintf(msg, " Radiasi Matahari adalah %f W/M2 ", Radiasi); // Menghasilkan pesan yang akan dicetak

Serial.println(pesan);

penundaan (1000);
}
Tanpa pratinjau (hanya unduhan).
Kode fungsi EthernetArduino
#sertakan
#sertakan

#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

Area float yang mudah menguap;
Daya float yang mudah menguap;
Radiasi float yang mudah menguap;


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

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

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


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


lingkaran kosong() {

Luas =PANEL_LENGTH * PANEL_WIDTH / (100*100); // kita bagi dengan 10.000 dapatkan luas dalam meter persegi
Daya =pow(analogRead( ANALOG_PIN ), 2) / RESISTANCE; // Menghitung daya
Radiasi =Daya / Luas;
karakter *pesan;
sprintf(msg, " Radiasi Matahari adalah %f W/M2 ", Radiasi); // Menghasilkan pesan yang akan dicetak


// dengarkan klien yang masuk
Klien EthernetClient =server.available();
jika (klien) {
Serial.println("klien baru");
// permintaan http diakhiri dengan baris kosong
boolean currentLineIsBlank =benar;
while (klien. terhubung()) {
jika (klien.tersedia()) {
char c =klien.baca();
Serial.tulis(c);
// jika Anda telah mencapai akhir baris (menerima baris baru
// karakter) dan baris kosong, permintaan http telah berakhir,
// jadi kamu bisa mengirim balasan
if (c =='\n' &¤tLineIsBlank) {
// kirim tajuk respons http standar
client.println("HTTP/1.1 200 Oke");
client.println("Jenis Konten:teks/html");
client.println("Koneksi:tutup"); // koneksi akan ditutup setelah respon selesai
client.println("Segarkan:5"); // refresh halaman secara otomatis setiap 5 detik
klien.println();
client.println("");
klien.println("");

/*
* Kirim pesan ke klien
*/
klien.print(pesan);
klien.println("
");

client.println("");
merusak;
}
jika (c =='\n') {
// Anda memulai baris baru
currentLineIsBlank =benar;
} else jika (c !='\r') {
// Anda mendapatkan karakter di baris saat ini
currentLineIsBlank =salah;
}
}
}
// beri waktu browser web untuk menerima data
penundaan (1);
// tutup koneksi:
klien.berhenti();
Serial.println("klien terputus");
}
}
Tanpa pratinjau (hanya unduhan).

Skema

Skema panel surya, resistor dan koneksi

Proses manufaktur

  1. Mengukur suhu dengan RASPBERRY PI
  2. Pemantauan CO2 dengan Sensor K30
  3. Komunikasi Tunarungu dengan 1Sheeld/Arduino
  4. Kontrol Penerima Koin dengan Arduino
  5. Arduino dengan Bluetooth untuk Mengontrol LED!
  6. Sensor Sidik Jari Kapasitif dengan Arduino atau ESP8266
  7. Bermain Dengan Tampilan Berikutnya
  8. Lengan Robot Terkendali Nunchuk (dengan Arduino)
  9. Solar Tracker V2.0
  10. Roda Pengukur Sederhana DIY dengan Rotary Encoder