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

Pelacak surya berbasis Internet of things (IoT)

Komponen dan persediaan

Arduino Mega 2560
× 1
Ethernet Shield (Wiznet W5100) untuk Arduino
× 1
Motor servo mikro SG90
× 2
LDR, 5 Mohm
× 4
Sensor Suhu DHT22
× 1
Panel Surya Mini
× 1
Resistor 330 ohm
× 4
Melalui Resistor Lubang, 10 ohm
× 2
Resistor 220 ohm
× 1
LED 5 mm:Merah
× 1

Aplikasi dan layanan online

myDevices Cayenne
Arduino IDE

Tentang proyek ini

Proyek ini menghadirkan solusi IoT sederhana dan berbiaya rendah untuk memantau dan mengontrol sistem pelacak surya sumbu ganda yang cerdas untuk evaluasi kinerja.

Sistem solar tracker berbasis IoT yang diusulkan digambarkan pada Gambar 1. Merupakan solar tracker sumbu ganda yang dapat berputar secara otomatis untuk melacak posisi matahari menggunakan sensor LDR, atau secara manual oleh pengguna melalui dashboard aplikasi IoT. Sistem dimulai dengan mendeteksi posisi matahari (intensitas cahaya) oleh sensor LDR dan mengirimkan data ke pengontrol (papan Arduino Mega). Yang terakhir ini kemudian memproses data ini untuk memerintahkan servomotor (SM1 dan SM2) yang menahan panel PV untuk berputar ke arah matahari. Nilai tegangan dan arus PV yang dihasilkan, suhu dan kelembaban juga dikirim ke Arduino melalui sensor terkait. Selanjutnya, Ethernet shield yang terpasang dengan Arduino dan memungkinkan untuk terhubung ke Internet, akan mengirimkan data yang telah diambil dan/atau diproses oleh Arduino ke cloud (server web). Terakhir, data pelacak surya, termasuk sensor LDR, daya PV, suhu dan kelembaban, ditampilkan secara real-time di aplikasi pemantauan IoT melalui widget yang telah dibuat sebelumnya. Aplikasi pemantauan IoT dirancang menggunakan Cayenne myDevicesplatform. Setelah pengguna terhubung ke internet dari komputer atau ponsel cerdasnya, ia dapat memvisualisasikan, di dasbor aplikasi IoT, semua data pelacak surya di widget terkait. Oleh karena itu, pengguna memiliki data yang diperlukan terkait dengan lingkungan dan kinerja panel PV. Selain itu, dalam mode manual, servomotor akan mengambil arah sudut dari widget terkait di dasbor. Oleh karena itu, pengguna dapat mengontrol sistemnya untuk mencari kondisi lingkungan terbaik dan mengekstrak energi maksimum dari panel PV. Aplikasi IoT juga diprogram untuk mengirim peringatan pemberitahuan (SMS atau Email) ketika seorang sensor mencapai nilai ambang batas yang telah ditentukan.

Desain perangkat keras

Seperti yang ditunjukkan pada Gambar. 2, sistem pelacak surya IoT terdiri dari panel PV, dua motor servo, empat sensor LDR, rangkaian pembagi tegangan, sensor suhu dan kelembaban, Led dan papan Arduino Mega.

Panel PV yang digunakan berukuran 115 mm x 85mm dengan output 1,6 W dan dapat menghasilkan tegangan hingga 6 V. Dua motor servo 180 derajat digunakan untuk menggerakkan pelacak surya dan dikendalikan oleh papan Arduino melalui pin PWM 5 dan 6. Motor servo kiri-kanan (LR) (MG996R) memutar solar tracker pada sumbu vertikal (Timur/Barat), sedangkan motor servo Up-down (UD) (SG90) memutar solar tracker pada sumbu horizontal ( Selatan/Utara).

Empat LDR (Cds GL5528) digunakan untuk merasakan posisi matahari dan yang telah ditetapkan di empat sudut panel. Sensor LDR terhubung ke Arduino melalui pin analog dari A0 hingga A3. LDR adalah resistor yang nilainya berkurang dengan meningkatnya intensitas cahaya pada permukaannya. Sensor LDR dirancang sebagai rangkaian pembagi tegangan seperti yang dapat dilihat pada Gambar 2. Tegangan keluaran pembagi diubah oleh mikrokontroler Arduino Mega dari nilai analog menjadi nilai digital antara 0 dan 1023. Karena Analog to Digital Converter (ADC) dari mikrokontroler dikodekan dalam 10 bit. Nilai resistor seri pada rangkaian sensor LDR adalah 330 .

Suhu dan kelembaban diukur melalui sensor DHT22. DHT22 memiliki termistor dan sensor kelembaban kapasitif yang tertanam di dalamnya untuk mengukur suhu dan kelembaban relatif. Rentang suhunya dari -40 hingga 80 °C dengan akurasi <±0,5 °C, dan rentang kelembapannya dari 0 hingga 100 % dengan akurasi ±2% (Maks ±5%). Sensor ini menggunakan satu kabel sinyal untuk mengirimkan data ke Arduino (pin digital 2), dan dua kabel untuk catu daya.

Tegangan dan arus PV diukur melalui rangkaian pembagi tegangan yang juga berfungsi sebagai beban dan terdiri dari dua buah resistor seri 10 Ohm. Output rangkaian pembagi terhubung ke pin analog Arduino A4. Selanjutnya, LED, yang terhubung ke pin 3 digital, mencerminkan dalam rangkaian sistem status mode pelacak surya (manual atau otomatis).

Arduino Mega dengan mikrokontroler ATmega2560 digunakan sebagai pengontrol tertanam yang berinteraksi dengan perisai Ethernet Arduino bersama dengan platform pemantauan. Perisai TheEthernet, yang dipasang di atas papan Arduino, harus dihubungkan dengan router Wi-Fi (atau PC) melalui kabel RJ45 seperti yang ditunjukkan pada Gambar. 3. Perisai Ethernet didasarkan pada chip Ethernet Wiznet W5100 yang menyediakan network(IP) stack untuk protokol TCP dan UDP.

Desain perangkat lunak

a. Arduino IDE

Arduino adalah platform prototipe elektronik open-source dengan perangkat keras dan perangkat lunak yang mudah digunakan. Platform Arduino menyediakan lingkungan pengembangan terintegrasi (IDE), yang mencakup dukungan untuk bahasa pemrograman C dan C++. Papan Arduino yang digunakan dalam pekerjaan ini diprogram oleh IDE yang berfungsi sebagai editor kode dan dari mana kode program dapat diunggah ke mikrokontroler melalui kabel USB, seperti yang ditunjukkan pada Gambar 3. Papan Arduino Mega digunakan untuk mengimplementasikan semua persyaratan perangkat lunak pelacak surya berbasis IoT.

b. myDevices Cabe rawit

MyDevices adalah perusahaan yang menawarkan solusi IoT. Ini menawarkan platform ujung ke ujung untuk IoT. Dalam proyek kami, kami akan fokus pada Cayenne, salah satu solusi dari myDevices. Alat ini memungkinkan pengembang, perancang, dan insinyur untuk membangun prototipe IoT. Cayenne menggunakan protokol Message QueuingTelemetry Transport (MQTT) untuk menghubungkan perangkat apa pun dengan Cayennecloud. Setelah terhubung, pengguna dapat mengirim dan menerima data dari perangkat ke dasbor Cayenne melalui Widget yang dibuat. MQTT adalah protokol pesan publish-subscribe berdasarkan protokol TCP/IP. Metodologi publish-subscribe menggunakan agen pesan yang bertanggung jawab untuk mengirimkan pesan ke klien. MQTT adalah API untuk mengirimkan informasi ke awan Cayenne atau perangkat yang dikendalikan oleh Cayenne. Agen pesan dalam hubungan ini adalah cloud, ia mengelola berbagai klien (sensor dan aktuator) yang mengirim dan menerima data.

Untuk menggunakan MQTT dengan Cayenne, kita perlu menggunakan library Cayenne. Untuk Arduino, perpustakaan CayenneMQTT dapat diinstal dari Manajer Perpustakaan IDE. Untuk memprogram aplikasi IoT berbasis platform Cayenne IoT kami, kami akan memanfaatkan fungsi yang telah ditentukan sebelumnya. Misalnya, untuk membuat koneksi antara Cayenne cloud dan Arduino Mega yang dilengkapi dengan modul Ethernet, kami memanggil pustaka CayenneMQTTEthernet tempat kami mendeklarasikan informasi otentikasi kami (nama pengguna, kata sandi, dan ID Klien) yang harus diperoleh dari Dasbor Cayenne. Kemudian, di bagian setup program, kita panggil Cayenne.begin () berfungsi untuk membuat koneksi dengan dashboard Cayenne. Untuk setiap aktuator, kami membuat fungsi dengan parameter bilangan bulat antara 0 dan 31 yang secara imperatif disebut CAYENNE IN (VIRTUAL CHANNEL) . Untuk setiap sensor, kami membuat fungsi dengan parameter bilangan bulat antara 0 dan 31 yang secara imperatif disebut CAYENNE_OUT (VIRTUAL_CHANNEL) . Di bagian loop program, kita memanggil fungsi yang telah ditentukan Cayenne.loop () , fungsi ini sendiri memanggil fungsi CAYENNE_OUT dan CAYENNE_IN. Saluran virtual seperti namanya adalah saluran yang tidak ada secara fisik, mencirikan visualisasi atau widget perintah. Hal ini memungkinkan mereka untuk dihubungkan dengan sensor atau aktuator yang sesuai.

c. Yang disematkan desain perangkat lunak

Perangkat lunak yang disematkan adalah bagian yang akan disematkan di Arduino Mega untuk berinteraksi antara modul Ethernet dan awan Cayenne (lihat Lampiran). Ini dirancang sebagai berikut:

(i) Pelacak surya berbasis IoT memiliki dua mode fungsi:manual dan otomatis. Sebuah tombol yang dibuat di dashboard Cayenne memiliki peran untuk beralih di antara dua mode tersebut. Saat tidak aktif, mode manual dipilih, jika tidak mode otomatis. Selain itu, sebuah fungsi dibuat dalam kode Arduino yang memungkinkan pemulihan status tombol. LED di sirkuit sistem mencerminkan status sakelar ini.

Oleh karena itu, agar pengontrol mengetahui mode operasi yang dipilih, kita hanya perlu menguji status pin tempat LED terhubung. Misalnya, jika status LED rendah, pengontrol akan memanggil fungsi mode manual untuk dijalankan, jika tidak, akan memanggil fungsi otomatis.

(ii) Jika mode manual dipilih, pengguna dapat langsung mengontrol posisi servomotor untuk mengarahkan panel PV dari timur ke barat dengan servomotor LR atau dari selatan ke utara dengan servomotor U-D. Kontrol dibuat dari widget terkait servomotor di dasbor aplikasi IoT.

Dalam mode ini, pengontrol memanggil Cayenne.loop() fungsi yang dengan sendirinya memanggil semua fungsi CAYENNE_IN , termasuk yang terkait dengan servomotors, untuk dieksekusi. Cayenne.loop() function juga akan memanggil semua fungsi CAYENNE_OUT, yang terhubung ke sensor, untuk dieksekusi. Dimana data yang terkait dengan sensor LDR, arus PV, tegangan dan daya, suhu dan kelembaban akan dikirim ke server sehingga dapat divisualisasikan di widget terkait di aplikasi IoT.

(iii) Jika mode otomatis dipilih, algoritma yang ditunjukkan pada Gambar. 4 akan dieksekusi. Algoritma dimulai dengan membaca nilai analog yang dikembalikan oleh sensor LDR. Kemudian, data tersebut diproses untuk memerintahkan servomotor yang menggerakkan panel PV menuju posisi matahari. Mengingat pergerakan solar tracker berbasis sumbu vertikal, nilai rata-rata dua LDR di kiri dan dua LDR di kanan dibandingkan dan Jika kiri menerima lebih banyak cahaya, panel PV akan bergerak ke arah itu (searah jarum jam) melalui motor servo LR. Yang terakhir akan berhenti ketika hasil perbedaan antara -10 dan 10. Rentang ini digunakan untuk menstabilkan pengontrol dan untuk mengurangi konsumsi daya motor servo. Sebaliknya, jika rangkaian LDR kanan menerima lebih banyak cahaya, panel PV akan bergerak ke arah itu (Berlawanan arah jarum jam) melalui motor servo L-R dan akan terus berputar hingga hasil selisih berada pada kisaran [−10, 10]. Pendekatan yang sama digunakan untuk pergerakan solar tracker berbasis sumbu horizontal di mana nilai rata-rata dari dua LDR di atas dan dua LDR di bawah dibandingkan.

Selain dalam mode otomatis, pengontrol juga akan memanggil Cayenne.loop() berfungsi untuk mengirimkan data solar tracker ke aplikasi IoT.

d. Pengembangan aplikasi pemantauan IoT

(i) Interface perangkat keras dengan platform Cayenne IoT

Untuk menghubungkan perangkat keras, termasuk sensor dan aktuator, dengan platform IoT, kita perlu mengikuti langkah-langkah berikut:

+ Masuk ke situs web Cayenne myDevice setelah membuat akun (Gbr. 5(a)).

+ Kemudian, klik “Bawa Barang Anda Sendiri” dari Cayenne API (Gbr. 5(b)).

+ Salin kredensial MQTT (nama pengguna, kata sandi, dan ID klien) dari Aplikasi Kreta (Gbr. 6), dan tempel di kode sumber Arduino seperti yang dijelaskan sebelumnya. Setelah berhasil mengkompilasi dan mengunggah seluruh kode ke Arduino Mega, buka Serial Monitor di Arduino IDE untuk mendapatkan cetakan log Cayenne (Gbr. 7). Segera setelah perangkat kita online dan terhubung ke Cayenne, halaman sebelumnya (Gbr. 6) diperbarui secara otomatis dan kita akan melihat perangkat kita di dasbor online seperti yang terlihat pada Gbr. 8.

+ Kemudian, untuk menghubungkan sensor dan aktuator, yaitu membuat widgetnya, klik "Tambah baru...", pilih "Perangkat/Widget" dan klik "Widget Kustom" (Gbr. 9). Kemudian, pilih widget dan isi semua pengaturan terkait (nomor saluran harus sama dengan kode), dan terakhir, klik "Tambah Widget" untuk menambahkannya ke dasbor perangkat Anda. Bagi kami, kami memilih widget "nilai" untuk semua sensor, widget "Tombol" untuk mode switch dan widget "Slider" untuk servomotor.

Terakhir, Gambar 10 mengilustrasikan aplikasi IoT yang dirancang untuk memantau data pelacak surya. Setelah koneksi dengan sistem pelacak surya dibuat, data sensor dapat divisualisasikan pada widget terkait, mode pelacakan (otomatis atau manual) dapat dipilih dari tombol sakelar, serta mengontrol sudut servomotor melalui widgetnya. Data sensor juga dapat diperoleh dalam bentuk grafik dengan memodifikasi jenis representasi dalam pengaturannya, atau hanya dengan mengklik ikon grafik di atas widget.

(ii) Pembuatan lansiran

Salah satu kriteria terpenting dalam sistem pemantauan adalah kemampuannya untuk mengirim peringatan pemberitahuan untuk memberi tahu pengguna ketika suatu peristiwa, terkait dengan perangkat yang dipantau, terjadi. Untuk tujuan ini, kami memanfaatkan salah satu fitur Cayenne untuk menambahkan peringatan ke aplikasi IoT kami, di mana kami dapat memprogram aplikasi kami untuk mengirim peringatan pemberitahuan (SMS, Email, atau keduanya) atau untuk melakukan tindakan tertentu. Misalnya, peringatan suhu dibuat untuk mengirim pemberitahuan email ke pengguna (atau penerima) ketika suhu yang dipantau mencapai nilai ambang batas, seperti yang ditunjukkan pada Gambar. 11. Untuk membuat peringatan, klik "Tambah baru. .." dan pilih "Pemicu", lalu atur acara dan aksinya dan terakhir klik "simpan" untuk menambahkannya ke dasbor.

Prototipe

Gambar 12 menyajikan prototipe pelacak surya dalam keadaan terpisah dan dirakit. Ini terdiri dari panel PV, servomotor the-R dan U-D dan sensor LDR. Panel terpasang ke U-Dservomotor di satu sisi dan dengan bantalan di sisi lain untuk memastikan fleksibilitas yang lebih baik ketika pelacak surya berputar di sekitar sumbu horizontal. Rakitan terpasang ke motor servo L-R. Sensor LDR dipasang di empat sudut panel di dalam silinder berongga. Jika panel tidak tegak lurus dengan matahari, setidaknya satu LDR akan tertutup bayangan yang disebabkan oleh silinder di sekitarnya. Oleh karena itu, akan ada perbedaan intensitas cahaya. Orientasi terbaik adalah ketika intensitas cahaya sama di semua sensor LDR. Gambar 13 menunjukkan seluruh prototipe sistem pelacak surya berbasis IoT, dan jelas bahwa semua komponen yang dilaporkan di bagian perangkat keras telah digunakan untuk membuatnya.

Untuk lebih jelasnya tentang hasil yang diperoleh, lihat makalah di tautan ini:https://link.springer.com/chapter/10.1007%2F978-3-030-64565-6_4

Kode

  • Kode tertanam sistem pelacak surya berbasis IoT
Kode tertanam sistem pelacak surya berbasis IoTArduino
/********************************************* ***************** PROYEK:Sistem pelacak surya berbasis IoT / perangkat lunak tertanam Aboubakr El Hammoumi/ [email protected]********* ************************************************** ****/#define CAYENNE_PRINT Serial#include //CayenneMQTT library #include //Servo motor library #include //DHT library #define DHTTYPE DHT22#define DHTPIN 2DHT dht(DHTPIN,DHTTYPE);//MQTT kredensial char username[]="498d2d00-afe2-11ea-883c-638d8ce4c23d";char password[]="ab4a8f92d94033c01f6e18ce1d8a84d8c304c9c4";char clientID[]-b9678-11ea40";char clientID[]- 93bf-d33a96695544";Servo servo_x; // servomotor atas-bawah int servoh =0;int servohLimitTinggi =170; int servohLimitLow =10; Servo servo_z; //motor servo kiri-kanan int servov =0; int servovLimitTinggi =170;int servovLimitLow =10;int topl,topr,botl,botr;int threshold_value=10; float Vout;pengaturan batal(){ Serial.begin(9600); Cayenne.begin(nama pengguna, kata sandi, ID klien); servo_x.attach(5); servo_z.attach(6); dht.mulai(); pinMode(3,OUTPUT); digitalWrite(3,RENDAH); }void loop(){ topr=analogRead(A2); topl=analogRead(A3); botl=analogRead(A4); botr=analogRead(A5); Vout=(analogRead(A1) * 5.0) / 1023; Serial.println("Mode manual"); Cayenne.loop(); if (digitalRead(3)==HIGH){ Serial.println("Mode otomatis"); servoh =servo_x.read(); servov =servo_z.read(); int avgtop =(topr + topl) / 2; int avgbot =(botr + botl) / 2; int avgright =(topr + botr) / 2; int avgleft =(atas + botl) / 2; int diffhori=avgtop - avgbot; int diffverti=avgleft - avgright; /*melacak menurut sumbu horizontal*/ if (abs(diffhori) <=threshold_value) { servo_x.write(servoh); //stop servo up-down }else { if (diffhori> threshold_value) { Serial.println(" x - 2 "); servo_x.write(servoh -2); // Rotasi searah jarum jam CW if (servoh> servohLimitHigh) { servoh =servohLimitHigh; } penundaan (10); }else { servo_x.write(servoh +2); //CCW if (servoh threshold_value) { servo_z.write(servov -2); //CW if (servov> servovLimitHigh) { servov =servovLimitHigh; } penundaan (10); }else{ servo_z.write(servov +2); //CCW if (servov

Skema


Proses manufaktur

  1. Internet of Things yang Menarik:Apa yang mendorong praktisi IoT?
  2. Membawa blockchain ke Internet of Things
  3. Tantangan keamanan yang ditimbulkan oleh Internet of Things:Bagian 2
  4. Keamanan siber dan Internet of Things:Keamanan IoT masa depan
  5. Berinvestasi dalam potensi Internet of Things
  6. Internet of Things yang sebenarnya?
  7. Internet of Things:Mengelola masuknya data
  8. 5 tantangan yang masih dihadapi Internet of Things
  9. Melepaskan Kekuatan Industrial Internet of Things
  10. Solar Tracker V2.0