This is an old revision of the document!


Panou fotovoltaic autonom

Introducere

Proiect realizat de Spîrchez Mihai-Ionuț și Staicu Melisa-Georgia, 331CA

Despre ce este proiectul?
Acest proiect este un sistem autonom de curățare și monitorizare a unui panou fotovoltaic acoperit de o placă transparentă. Un senzor de lumină detectează gradul de murdărie, iar atunci când performanța sistemului scade sub un prag prestabilit, se activează un servomotor care mișcă un ștergător și o pompă cu apă pentru a spăla suprafața. În paralel, un microcontroler ESP32 înregistrează date de producție și nivelul apei, le afișează pe un panou LED și le salvează pe un card SD.

Care este scopul proiectului?
Scopul este de a demonstra, printr-un proof of concept, cum un sistem complet autonom poate menține suprafața unui panou fotovoltaic curată și optimiza producția de energie, înregistrând în același timp parametrii de funcționare (nivelul apei și curentul generat) pentru analiza ulterioară.

Ce a inspirat ideea?
Ideea a pornit de la observația că acumularea de praf și murdărie reduce semnificativ eficiența panourilor solare. Am vrut să aducem un prototip de soluție low-cost, ușor de replicat, capabil să-și mențină singur suprafața curată și să furnizeze date despre performanță.

De ce este util acest proiect?
Prin menținerea automată a suprafeței curate, utilajul maximizează producția de energie fără intervenție manuală și oferă date de mentenanță predictivă. În plus, stocarea istorică pe card SD permite optimizarea ciclurilor de curățare și dimensionarea viitoarelor instalații.

Descriere generală

Descrierarea componentelor

Arduino UNO

  • Centralizează toate funcțiile de control și măsurare.
  • Citește semnalul analog de la senzorul de lumină (LDR) și nivelul apei (electrozi DIY) prin ADC.
  • Controlează pompa de apă și servomotorul ștergătorului prin pinii GPIO (PWM).
  • Comunică cu display-ul LED (I²C/SPI) și cu modulul SD (SPI).
  • Gestionează logica de decizie (când să pornească ciclu de curățare) și înregistrează date pe cardul SD.

Panou fotovoltaic

  • Furnizează energie electrică în sistem – aproximativ 6 V / 5 W (sau conform specificațiilor alese).
  • Încărcarea bateriei și alimentarea consumatorilor se face prin circuite auxiliare.

Modul ridicător de tensiune (DC-DC Boost Converter)

  • Primește tensiunea de la panoul solar (≈6 V) și o ridică la 5 V stabil pentru alimentarea ESP32 și a modulelor periferice.

Modul încărcător Li-Ion (TP4056)

  • Oferă încărcare inteligentă a acumulatorului Li-Ion/Li-Po la 4.2 V, max. 1 A.
  • Protecție la suprasarcină și supratensiune pentru celula de baterie.

Acumulator Li-Ion 18650 (sau pachet echivalent)

  • Stochează energia produsă de panou pentru alimentarea contin uă a ESP32 și a actuatorilor în condiții de iluminare scăzută.

Senzor de lumină (LDR + rezistor)

  • LDR montat pe placă transparentă măsoară intensitatea luminii incidente.
  • În divizor de tensiune cu rezistor fix (10 kΩ) pentru citire analogică cu ESP32.
  • Prag de murdărie: valoare scăzută a luminii declanșează ciclul de curățare.

Senzor nivel apă (DIY cu electrozi)

  • Electrozi de inox plasați în rezervor detectează prezența apei la diferite înălțimi.
  • Semnal digital (HIGH/LOW) sau semnal analog (prin rezistență pull-down) către ESP32.
  • Asigură oprirea pompei la nivel minim și avertizare pe display.

Buton schimbare afișaj

  • Push-button conectat la un pin GPIO cu rezistor de pull-up intern.
  • La apăsare ciclică comută între afișarea nivelului de apă și a curentului produs.

Display LED (matrice 8×8 sau modul 7-segmente)

  • Afișează valorile măsurate în timp real (nivel apă în %, curent produs în mA).
  • Conectare I²C (2 fire) sau SPI (4 fire) către ESP32, în funcție de modul ales.

Modul SD Card (SPI)

  • Memorează jurnalele de date (timestamp, nivel apă, curent generat) într-un fișier CSV.
  • Interfață SPI la 3.3 V, conectat la ESP32 prin pini MOSI, MISO, SCK, CS.

Servomotor SG90

  • Acționează brațul ștergătorului cu cursă de aproximativ 90° pentru a curăța placa transparentă.
  • Alimentare 5 V și semnal de control PWM de la ESP32.

Pompă de apă 5 V

  • Pompa submersibilă sau cu tub extern, debit ~100 L/h.
  • Alimentare direct de la baterie/bus de 5 V și pornire/oprire prin tranzistor MOSFET controlat de ESP32.

Placă transparentă (policarbonat)

  • Panou de protecție peste panoul solar, pe care se montează senzorul LDR și brațul ștergător.

Ștergător (braț + lamelă)

  • Fixat pe servomotor, realizează ștergerea mecanică a murdăriei de pe suprafața plăcii.

Furtun PVC transparent

  • Transportă apa de la rezervor către zona de curățare.
  • Conectat la pompa de apă și fixat de brațul ștergător.

Hardware Design

Lista Componentelor

*Listă de piese*

Denumire componentă Cantitate Observații
——————————-———–———————————-
Panou fotovoltaic 1 poate varia în funcție de test
Modul DC-DC boost 1 pentru alimentarea ESP32
Modul încărcător Li-Ion TP4056 1 încărcare sigură baterie
Acumulator Li-Ion 18650 1 sau pachet echivalent
ESP32 Dev Kit 1 model generic dev board
Senzor de lumină (LDR + rez.) 1 divizor de tensiune analog
Senzor nivel apă (DIY) 1 limitare curent prin rezistor
Buton push-button 1 cu rezistor de pull-up intern
Display LED 1 modul compatibil SPI/I²C
Modul card SD 1 socket micro-SD
Servomotor SG90 1 deviere ~90° pentru ștergător
Pompă de apă 5 V/12 V 1 submersibilă sau cu tuburi flex.
Furtun PVC transparent 1  pentru alimentarea pompei
Placaj policarbonat (plastic) 1 montaj ștergător

Software Design

Mediu de Dezvoltare

Proiectul este dezvoltat în Arduino IDE, folosind limbajul C++, împreună cu biblioteci externe pentru gestionarea ecranului TFT LCD, cardului SD și servomotoarelor. Codul este modularizat în funcții specifice pentru măsurători, afișaj, control servo și salvare date, pentru a crește lizibilitatea și scalabilitatea.

Toate funcționalitățile sistemului sunt funcționale și integrate coerent, demonstrând aplicabilitatea practică a platformei Arduino pentru automatizare în medii reale.

Elementul de noutate al proiectului

Deși sistemele de măsurare a puterii produse de panourile solare sunt întâlnite frecvent, elementul de noutate al acestui proiect constă în integrarea mai multor funcții hardware și logice într-o singură soluție embedded, low-cost, cu scop dublu:

  • Monitorizare inteligentă (curent, tensiune, lumină, nivel apă)
  • Intervenție automată prin activarea unui releu, servomotor și pompă în cazul detectării murdăriei.

Proiectul combină senzoristică, afișaj grafic, control mecanic și înregistrare de date pe SD, fiind scalabil și aplicabil în agricultură, smart-farming sau energii regenerabile.

Biblioteci și resurse utilizate

  • Servo.h – pentru controlul servomotoarelor MG995 și SG90
  • SD.h – pentru salvarea datelor de monitorizare pe cardul SD
  • SPI.h – pentru comunicarea SPI cu SD cardul și TFT-ul
  • Adafruit_GFX.h și Adafruit_ST7735.h – pentru afișarea grafică pe LCD TFT 1.8”

Algoritmi și structuri

Software-ul este organizat într-o buclă principală loop(), care execută periodic următoarele acțiuni:

  • Citirea valorilor analogice de la senzorul de curent ACS712, divizorul de tensiune și fotorezistori
  • Calculul puterii electrice (P = U x I)
  • Detectarea diferențelor de lumină între doi senzori de lumină (indicând posibila murdărie a panoului)
  • Activarea releului și a servomotoarelor dacă diferența de lumină depășește un prag
  • Afișarea în timp real a datelor pe un ecran TFT SPI
  • Scrierea periodică a valorilor pe cardul SD, pentru arhivare și analiză ulterioară

Utilizarea funcționalităților din laborator

Laborator Funcționalitate aplicată Lab 0 Serial.begin() pentru testare și debugging cu valori live de la senzori Lab 1 pinMode(), digitalWrite() pentru controlul releului și inițializarea pinilor Lab 2 Controlul servomotoarelor cu Servo.write() pe canale PWM Lab 3 analogRead() pentru curent, tensiune și fotorezistori Lab 4 Adafruit_ST7735 pentru afișarea datelor: curent, tensiune, putere, stare sistem Lab 5 Salvare pe SD cu SD.open(), file.print(), înregistrare periodică cu millis() Lab 6 Integrarea completă într-un sistem funcțional cu reacții automate

Funcții și fișiere sursă

Funcții principale:

  • readCurrent() – convertește citirea de la ACS712 într-o valoare de amperaj
  • readVoltage() – calculează tensiunea pe baza valorii analogice de la divizor
  • logToSD() – scrie datele (tensiune, curent, putere) pe cardul SD
  • updateDisplay() – afișează valorile curente pe LCD
  • controlSystem() – decide dacă trebuie activat sistemul de curățare

Interacțiunea dintre componente

  • Panoul solar furnizează energie, care este monitorizată prin senzorii de curent și tensiune
  • Senzorii de lumină verifică diferența de iluminare pentru a determina dacă panoul este murdar
  • Releul pornește pompa și servourile doar dacă diferența dintre senzorii de lumină este mare
  • LCD-ul TFT afișează datele în timp real
  • Cardul SD arhivează nivelul de apă și puterea panoului pentru analiză ulterioară

Calibrarea și validarea

  • Curentul măsurat cu ACS712 a fost calibrat comparativ cu un multimetru, iar offset-ul a fost corectat în cod.
  • Tensiunea divizorului a fost testată cu surse de 3V și 5V pentru a confirma scalarea corectă.
  • Diferența de lumină între senzori a fost ajustată din software pentru a reacționa doar la diferențe semnificative (ex: murdărie reală, nu variații naturale).

Optimizări

  • Utilizarea millis() în loc de delay() pentru logare periodică neblocantă
  • SPI partajat între SD și TFT, folosind CS dedicat și control software atent
  • Modularizare a codului în funcții clare pentru senzori, afișaj și salvare date
  • Servomotoare resetate automat la poziția neutră dacă nu e detectată murdărie
  • Releul activ doar la nevoie pentru a economisi energie

Structură modulară

Codul este organizat clar pe următoarele secțiuni:

  • Inițializare componente (setup())
  • Măsurători (readVoltage(), readCurrent())
  • Logică de decizie (controlSystem())
  • Afișaj și SD (updateDisplay(), logToSD())
  • Această structurare permite adăugarea de funcții suplimentare fără a afecta funcționalitățile de bază.

Concluzie

Proiectul realizează o automatizare completă a unui panou solar, cu detecție de murdărie, activare automată de sistem de curățare și monitorizare completă a parametrilor electrici. Este scalabil, eficient și utilizabil în aplicații reale cu buget redus.

Rezultate Obţinute

Am realizat un proiect care integrează un sistem fotovoltaic inteligent și curățarea acestuia printr-un senzor care monitorizează nivelului apei, realizat de la 0 de către noi. Acesta folosește senzori de lumină pentru a detecta condițiile de iluminare, iar în funcție de acestea activează o pompă de apă printr-un releu. După fiecare activare a pompei, un servomotor execută automat o secvență de mișcări predefinite. Panoul solar conectat alimentează întregul sistem, iar un senzor de curent monitorizează producția de energie în timp real. Datele despre nivelul apei și curentul generat sunt afișate pe un ecran TFT. Proiectul reunește componente hardware diverse și un cod bine structurat, permițând control autonom și feedback vizual în timp real.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Cod sursă

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2025/mdinica/melisa.staicu.1748798227.txt.gz · Last modified: 2025/06/01 20:17 by melisa.staicu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0