TREBALL FINAL DE GRAU
TÍTOL: Moni o i zació p e en i a de plaques sola s o o ol aiques
mi jançan co ba I-V
AUTORS: GARCÍA MONZONÍS, MARC
DATA DE PRESENTACIÓ: Gene , 2025
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
1
RESUM
Aques p ojec e se cen a en l'op imi zació d'un sis ema elec ònic dissenya pe
ca ac e i za el uncionamen d'una placa sola o o ol aica mi jançan l'anàlisi de
la co ba I-V.
El mic ocon olado Raspbe y Pi Pico W ac ua com a nucli del sis ema,
enca egan -se de eali za les lec u es de co en i ensió i ansme e-les ia Wi-
Fi a un disposi iu ecep o . Aques es dades es p ocessen amb un p og ama en
Py hon, que les emmaga zema i les ep esen a g à icamen pe acili a l'anàlisi de
la co ba I-V.
El mic ocon olado es p og ama u ili zan Py hon en lloc de C, i la comunicació
en e el disposi iu ansmisso i el ecep o es eali za mi jançan Wi-Fi en comp es
de LoRa. També, s’hi inco po en no es uncionali a s mi jançan la comunicació
amb el po sè ie, que pe me en un con ol més p ecís del sis ema i un accés
cons an a in o mació ac uali zada sob e el seu es a .
A més, es subs i ueixen alguns componen s de la PCB pe al es amb l’objec iu de
millo a el endimen del sis ema.
El esul a inal és un sis ema e icien i comple , capaç de ges iona les mesu es, la
ansmissió, la ecepció i la ep esen ació g à ica de la co ba I-V, g àcies a les
lec u es de co en i ensió, ga an in un con ol o al i una op imi zació en la
ca ac e i zació de plaques sola s o o ol aiques.
Pa aules clau (màxim 10):
Panell sola o o ol aic
Co ba I-V
Raspbe y Pi Pico W
Wi-Fi
PCB
Mic opy hon
Po sè ie
Py hon
PSPICE Schema ics
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
2
RESUMEN
Es e p oyec o se cen a en la op imización de un sis ema elec ónico diseñado pa a
ca ac e iza el uncionamien o de un panel sola o o ol aico median e el análisis
de la cu a I-V.
El mic ocon olado Raspbe y Pi Pico W ac úa como el núcleo del sis ema,
enca gándose de ealiza las lec u as de co ien e y ensión y de ansmi i las ía
Wi-Fi a un disposi i o ecep o . Es os da os se p ocesan con un p og ama en
Py hon, que los almacena y los ep esen a g á icamen e pa a acili a el análisis de
la cu a I-V.
El mic ocon olado se p og ama u ilizando Py hon en luga de C, y la comunicación
en e el disposi i o ansmiso y el ecep o se ealiza median e Wi-Fi en luga de
LoRa. Además, se inco po an nue as uncionalidades a a és de la comunicación
con el pue o se ie, lo que pe mi e un con ol más p eciso del sis ema y un acceso
cons an e a in o mación ac ualizada sob e su es ado.
Asimismo, se sus i uyen algunos componen es de la PCB po o os con el obje i o
de mejo a el endimien o del sis ema.
El esul ado inal es un sis ema e icien e y comple o, capaz de ges iona las
mediciones, la ansmisión, la ecepción y la ep esen ación g á ica de la cu a I-V.
Es o ga an iza un con ol o al y una op imización en la ca ac e ización de los
paneles sola es o o ol aicos.
Palab as cla e (máximo 10):
Panel sola o o ol aico
Cu a I-V
Raspbe y Pi Pico W
Wi-Fi
PCB
Mic opy hon
Pue o sé ie
Py hon
PSPICE Schema ics
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
3
ABSTRACT
This p ojec ocuses on op imizing an elec onic sys em designed o cha ac e ize
he pe o mance o a pho o ol aic sola panel h ough he analysis o he I-V cu e.
The Raspbe y Pi Pico W mic ocon olle se es as he co e o he sys em,
pe o ming cu en and ol age eadings and ansmi ing hem ia Wi-Fi o a
ecei ing de ice. These da a a e p ocessed using a Py hon p og am, which s o es
and g aphically ep esen s hem o acili a e he analysis o he I-V cu e.
The mic ocon olle is p og ammed using Py hon ins ead o C, and communica ion
be ween he ansmi e and ecei e de ices is ca ied ou ia Wi-Fi ins ead o
LoRa. Addi ionally, new unc ionali ies a e inco po a ed h ough se ial po
communica ion, enabling mo e p ecise sys em con ol and cons an access o
upda ed in o ma ion abou i s s a us.
Fu he mo e, some componen s o he PCB a e eplaced wi h o he s o enhance
he sys em's pe o mance.
As a esul , we ob ain an e icien and comp ehensi e sys em capable o managing
measu emen s, ansmission, ecep ion, and g aphical ep esen a ion o he I-V
cu e. This ensu es comple e con ol and op imiza ion in he cha ac e iza ion o
pho o ol aic sola panels.
Keywo ds (10 maximum):
Pho o ol aic sola panel
I-V cu e
Raspbe y Pi Pico W
Wi-Fi
PCB
Mic opy hon
Se ial po
Py hon
PSPICE Schema ics
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
4
ÍNDEX DE CONTINGUT
1. INTRODUCCIÓ .............................................................................................................. 9
1.1. An eceden s .................................................................................................................. 9
1.2. Objec ius ..................................................................................................................... 10
2. ESTUDI PREVI ............................................................................................................. 11
2.1. Panells sola s ............................................................................................................... 11
2.2. Co ba I-V ...................................................................................................................... 14
2.2.1. Des iacions de la co ba I-V .................................................................................. 16
2.2.2. Equips de mesu a de la co ba I-V ........................................................................ 18
2.3. Wi-Fi ............................................................................................................................ 20
2.4. Di e encies en e Wi-Fi i LoRaWAN ............................................................................. 21
3. DESENVOLUPAMENT .................................................................................................. 23
3.1. Ha dwa e ..................................................................................................................... 23
3.1.1. PCB ...................................................................................................................... 23
3.1.2. Raspbe y Pi Pico W ............................................................................................ 30
3.1.3. Cable FTDI ............................................................................................................ 36
3.2. So wa e ...................................................................................................................... 38
3.2.1. Thonny ................................................................................................................. 38
3.2.2. Visual S udio Code ............................................................................................... 40
3.2.3. Te a Te m ............................................................................................................ 42
3.2.4. PSPICE Schema ics ............................................................................................... 44
4. CÀLCULS JUSTIFCATIUS ............................................................................................... 46
4.1. Lec u a de co en ....................................................................................................... 46
4.2. Lec u a de ensió ......................................................................................................... 47
4.3. F eqüència de mos eig del mic ocon olado ........................................................... 48
5. FASE EXPERIMENTAL .................................................................................................. 50
5.1. P og amació ................................................................................................................ 50
5.1.1. P og ama Raspbe y Pi Pico W ............................................................................ 50
5.1.2. P og ama ecep o .............................................................................................. 69
5.1.3. P og ama pe ep esen a g à icamen .............................................................. 72
5.1.4. P og ama combina ( ecepció i ep esen ació g à ica) ....................................... 78
5.1.5. P og ama pe ep esen a g à icamen pel po sè ie ........................................ 84
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
5
5.2. Ajus os en la PCB ......................................................................................................... 87
6. Anàlisi de sos enibili a i implicacions è iques ............................................................. 95
6.1. Anàlisi mediambien al ................................................................................................. 95
6.2. Anàlisi econòmic ......................................................................................................... 96
6.3. Anàlisi Social ................................................................................................................ 99
7. CONCLUSIONS .......................................................................................................... 100
8. AGRAÏMENTS ........................................................................................................... 102
9. REFERÈNCIES ............................................................................................................ 103
10. ANNEXOS ............................................................................................................. 105
10.1. Con igu acions de so wa e ...................................................................................... 105
10.1.1. Con igu ació Thonny ......................................................................................... 105
10.1.2. Con igu acions Te a Te m ................................................................................. 107
10.2. Esquemes .............................................................................................................. 109
10.2.1. Esquemes PCB ................................................................................................... 109
10.2.2. Esquemes MOSFET ............................................................................................ 110
10.3. Codis .......................................................................................................................... 112
10.3.1. Codi pe la Raspbe y Pi Pico W amb Mic oPy hon .............................................. 112
10.4. Codi pe la Raspbe y Pi Pico amb ESP8285 amb Mic oPy hon ............................ 119
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
6
ÍNDEX DE FIGURES
FIGURA 1. PCB INICIAL .................................................................................................................................. 9
FIGURA 2. PARTS D'UN PANELL SOLAR FOTOVOLTAIC ............................................................................... 12
FIGURA 3. CORBA I-V AMB ELS PUNTS RELLEVANTS .................................................................................. 14
FIGURA 4. CORBA I-V I CORBA P-V ............................................................................................................. 15
FIGURA 5. DESVIACIONS TÍPIQUES DE LA CORBA I-V ................................................................................. 16
FIGURA 6. ANALITZADOR DE CORBA I-V PORTÀTIL SEAWARD PV150 ....................................................... 18
FIGURA 7. ANALITZADOR DE CORBA I-V ESTACIONARI HT INSTRUMENTS IV400 ...................................... 19
FIGURA 8. DRON PER INSPECCIONAR DE PLAQUES SOLARS ...................................................................... 19
FIGURA 9. ESQUEMA PCB I ......................................................................................................................... 23
FIGURA 10. ESQUEMA PCB II ...................................................................................................................... 24
FIGURA 11. CIRCUIT DE CONTROL DELS RELÉS ........................................................................................... 24
FIGURA 12. FIGURA 12. CONNEXIONS DEL MICROCONTROLADOR ........................................................... 25
FIGURA 13. CIRCUIT DELS CONNECTORS .................................................................................................... 26
FIGURA 14. CIRCUIT DEL MÒDUL DELS RELÉS ............................................................................................ 26
FIGURA 15. CIRCUIT D’ALIMENTACIÓ I PROTECCIÓ ................................................................................... 27
FIGURA 16. CIRCUIT CONVERTIDOR ELEVADOR ......................................................................................... 27
FIGURA 17. CIRCUIT DE MESURA DE CORRENT .......................................................................................... 28
FIGURA 18. CIRCUIT DE MESURA DE TENSIÓ ............................................................................................. 28
FIGURA 19. PCB .......................................................................................................................................... 29
FIGURA 20. PART POSTERIOR DE LA PCB .................................................................................................... 29
FIGURA 21. RASPBERRY PI PICO W ............................................................................................................. 30
FIGURA 22. PORTS I CONNECTORS DE LA RASPBERRY PI PICO W .............................................................. 31
FIGURA 23. RASPBERRY PI PICO ................................................................................................................. 32
FIGURA 24. RASPBERRY PI PICO AMB MÒDUL ESP8285 ............................................................................ 33
FIGURA 25. CABLE FTDI CHIP TTL-232RG-VSW5V-WE ................................................................................ 36
FIGURA 26. LOGOTIP DE THONNY .............................................................................................................. 38
FIGURA 27. LOGOTIP DE VISUAL STUDIO CODE ......................................................................................... 40
FIGURA 28. LOGOTIP DE TERA TERM ......................................................................................................... 42
FIGURA 29. LOGOTIP DE PSPICE SCHEMATICS ........................................................................................... 44
FIGURA 30. CIRCUIT PER MESURAR EL CORRENT AMB L’ADC ................................................................... 46
FIGURA 31. DIVISOR DE TENSIÓ PER MESURAR LA TENSIÓ AMB L’ADC .................................................... 47
FIGURA 32. SENYAL QUADRAT CONTROLAT AMB FREQÜÈNCIA 115 HZ ................................................... 48
FIGURA 33. DETALL DE LES MOSTRES EN MIG PERÍODE DEL SENYAL QUADRAT ....................................... 48
FIGURA 34. ESTRUCTURA DEL PROGRAMA DE LA RASPBERRY PI PICO W ................................................. 50
FIGURA 35. REPRESENTACIÓ CORRENT, TENSIÓ I CORBA I-V AMB RETARD 0 ΜS ..................................... 61
FIGURA 36. REPRESENTACIÓ CORRENT, TENSIÓ I CORBA I-V AMB RETARD 10 ΜS ................................... 62
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
7
FIGURA 37. REPRESENTACIÓ CORRENT, TENSIÓ I CORBA I-V AMB RETARD 20 ΜS ................................... 62
FIGURA 38. REPRESENTACIÓ CORRENT, TENSIÓ I CORBA I-V AMB RETARD 50 ΜS ................................... 63
FIGURA 39. EXEMPLE DE DOCUMENT GENERAT AMB LES DADES MESURADES........................................ 71
FIGURA 40. REPRESENTACIÓ CORRENT, TENSIÓ I CORBA I-V .................................................................... 77
FIGURA 41. REPRESENTACIÓ CORRENT, TENSIÓ I CORBA I-V FILTRADES .................................................. 77
FIGURA 42. REPRESENTACIÓ CORRENT, TENSIÓ I CORBA I-V, EXEMPLE DE DESVIACIÓ A CAUSA D’UNA
OMBRA .............................................................................................................................................. 82
FIGURA 43. REPRESENTACIÓ DE LA CORBA I-V A LABVIEW ....................................................................... 83
FIGURA 44. CORBA I-V FILTRADA A LABVIEW ............................................................................................ 83
FIGURA 45. PCB (DETALL AL DÍODE D1 I ALS TIRAPINS SOLDATS) .............................................................. 87
FIGURA 46. PART POSTERIOR DE LA PCB (DETALL RESISTÈNCIA SHUNT I TALL CONDENSADOR C37) ....... 87
FIGURA 47. CIRCUIT DE COMMUTACIÓ AMB MOSFET .............................................................................. 88
FIGURA 48. CIRCUIT PER SUBSTITUIR EL RELÉ 1 ......................................................................................... 89
FIGURA 49. SIMULACIÓ DE TENSIÓ DE PLAQUES EN CADENA O AÏLLADA ................................................. 89
FIGURA 50. CIRCUIT PER SUBSTITUIR EL RELÉ 2 ......................................................................................... 90
FIGURA 51. SIMULACIÓ DE TENSIÓ DE PLAQUES EN CADENA O AÏLLADA ................................................. 90
FIGURA 52. CIRCUIT PER SUBSTITUIR EL RELÉ 3 ......................................................................................... 91
FIGURA 53. SIMULACIÓ DE CÀRREGA I DESCÀRREGA DEL CONDENSADOR PER FER LES MESURES .......... 91
FIGURA 54. MUNTATGE PER SUBSTITUIR EL RELÉ 3 ................................................................................... 92
FIGURA 55.CÀRREGA I DESCÀRREGA DEL CONDENSADOR AMB EL CIRCUIT EXPERIMENTAL ................... 92
FIGURA 56. CÀRREGA DEL CONDENSADOR I PIC DE CORRENT AMB EL CIRCUIT EXPERIMENTAL ............. 93
FIGURA 57. FONT D'ALIMENTACIÓ TRIPLE HEWLETT PACKARD E3631A ................................................... 93
FIGURA 58. OSCIL·LOSCOPI LECROY WAVESURFER WS432 2 CANALS 350MHZ ........................................ 94
FIGURA 59. SONDA DE CORRENT CPC-500-27-BP2 .................................................................................... 94
FIGURA 60. MAPA DE POSICIONAMENT DEL TRAÇADOR ........................................................................... 98
FIGURA 61. CONFIGURACIÓ DE L’INTÈRPRET ........................................................................................... 105
FIGURA 62. SELECCIÓ DE L’INTÈRPRET ..................................................................................................... 105
FIGURA 63. SELECCIÓ DEL PORT ............................................................................................................... 106
FIGURA 64. OPCIONS DE L’INTÈRPRET ..................................................................................................... 106
FIGURA 65. SELECCIÓ DEL PORT SÈRIE A TERA TERM .............................................................................. 107
FIGURA 66. ACCÉS A LA CONFIGURACIÓ DEL PORT SÈRIE ........................................................................ 107
FIGURA 67. CONFIGURACIÓ DEL PORT SÈRIE ........................................................................................... 108
FIGURA 68. PCB I ...................................................................................................................................... 109
FIGURA 69. PCB II ..................................................................................................................................... 109
FIGURA 70. CIRCUIT PER SUBSTITUIR EL RELÉ 1 ....................................................................................... 110
FIGURA 71. CIRCUIT PER SUBSTITUIR EL RELÉ 2 ....................................................................................... 110
FIGURA 72. CIRCUIT PER SUBSTITUIR EL RELÉ 3 ....................................................................................... 111
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
8
ÍNDEX DE TAULES
TAULA 1. COMPARATIVA ENTRE ELS TIPUS DE PLAQUES SOLARS FOTOVOLTAIQUES ............................... 13
TAULA 2. COMPARATIVA ENTRE LA RASPBERRY PI PICO I LA RASPBERRY PI PICO W ................................ 32
TAULA 3. COMPARATIVA ENTRE LA RASPBERRY PI PICO W I LA RASPBERRY PI PICO AMB ESP8285 ........ 33
TAULA 4. CABLEJAT DEL CABLE FTDI .......................................................................................................... 37
TAULA 5. COMANDES DELS RETARDS PROGRAMATS ENTRE MOSTRES .................................................... 59
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
15
Fac o s que a ec en la co ba I-V:
- I adiància sola : Com més llum sola hi ha, més co en gene a la placa, ele an o a la
co ba. Si la i adiància disminueix, el co en Isc i la po ència Pmax ambé es edueixen.
- Tempe a u a: A mesu a que augmen a la empe a u a, la ensió Voc disminueix,
desplaçan la co ba cap a l’esque a i eduin la po ència màxima.
- Omb es o b u ícia: Una obs ucció pa cial o o al a ec a g eumen la co ba, eduin an
el co en com la po ència gene ada.
A pa i de la co ba I-V, es po de i a una co ba de po ència (P) en unció de la ensió, la co ba
P-V. La po ència és baixa al p incipi i al inal de la co ba, assolin un pic en el pun de màxima
po ència.
Figu a 4. Co ba I-V i co ba P-V. Fon : Au oSola
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
16
2.2.1. Des iacions de la co ba I-V
Pe ob eni la co ba I-V ideal, és necessa i una e e ència que habi ualmen es basa en les dades
p opo cionades a la placa de ca ac e ís iques del mòdul o en mesu es eali zades als ci cui s
p ope s. Tanma eix, poden so gi di e sos ipus de des iacions a la co ba, cadascuna p o ocada
pe di e en s ac o s. A con inuació, es p esen en les p incipals des iacions i les se es possibles
causes: [10]
Figu a 5. Des iacions ípiques de la co ba I-V. Fon : Fluke
1. Co ba I-V amb esglaons:
Els esglaons p esen s en la co ba I-V són conseqüència d'una disc epància de co en dins del
ci cui de p o a. Aques s esglaons es p odueixen quan els díodes de de i ació s’ac i en,
pe me en que el co en lueixi al ol an de les cèl·lules més ebles o aquelles exposades a
menys llum. El nomb e i l’amplada dels esglaons depenen de la densi a i l’abas de l’omb a que
a ec a el sis ema.
Di e ses condicions poden gene a aques a disc epància de co en , com a a b u ícia no
uni o me, omb a pa cial, cèl·lules o cadenes de cèl·lules danyades, o díodes de de i ació en
cu ci cui .
2. Co en de cu ci cui baixa (ISC):
En una co ba I-V no mal, un alo de ISC in e io al p e is po se degu un e o de l’ope ado
que p en la mesu a, una mesu a de icien de la i adiància, Omb es o b u ícia o p oblemes de
endimen del mòdul.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
17
3. Tensió en ci cui obe baixa (VOC):
Una mesu a inco ec a de la empe a u a de la cèl·lula pod ia se esponsable d’aques alo . A
més, l’omb a po edui el alo de la ensió en ci cui obe (VOC) en de e minades condicions
de p o a. També és possible que aques a si uació es degui a p oblemes de maquina i.
Tanma eix, cal eni en comp e que la VOC és un dels pa àme es del mòdul o o ol aic amb la
axa d’en ellimen més baixa. Pe aques mo iu, és impo an anali za al es possibles causes
abans d’a ibui di ec amen un alo baix de VOC a la deg adació de les cèl·lules.
4. Cu a u a més a odonida:
De egades, po esul a complica de e mina si una egió amb el colze més a odoni
ep esen a una al e ació eal de la co ba o simplemen és una il·lusió p o ocada pe can is en
el penden . L’a odonimen del colze és p obablemen una mani es ació de l’en ellimen del
sis ema. Pe con i ma -ho, és impo an o na a anali za i moni o i za el ci cui de mane a
pe iòdica pe iden i ica i e un seguimen adequa de les possibles endències al lla g del
emps.
5. Relació de baixa ensió (VMP ÷ VOC):
Un penden més suau del que s’espe a a al am e ical de la co ba I-V ca ac e i za el cinquè
ipus de des iació. Aques a anomalia es po iden i ica compa an isualmen les co bes
mesu ades amb les p e is es o anali zan els alo s de la elació de ensió en les di e ses
mesu es de les cadenes, semp e que les co bes no p esen in esglaons p o oca s pe
disc epàncies. La elació de ensió és una eina especialmen aluosa pe de ec a penden s
inusuals en el am e ical de la co ba I-V.
6. Relació de co en baixa (IMP ÷ ISC):
Un penden més al del p e is al am ho i zon al de la co ba I-V es po de ec a de la ma eixa
mane a que al pun an e io . La elació de co en és mol ú il pe iden i ica penden s a ípics al
am ho i zon al de la co ba I-V. Abans de busca p oblemes de maquina i, cal desca a e o s
de mesu a d’i adiància, omb a i b u ícia.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
18
2.2.2. Equips de mesu a de la co ba I-V
Pe mesu a la co ba I-V d'un panell sola es an se i disposi ius especiali za s conegu s com a
anali zado s de co ba I-V o PV es e s. Aques s equips es an dissenya s pe eali za mesu es
àpides i p ecises en di e en s condicions de eball, an pe a ús p o essional com pe a
aplicacions domès iques.
Aques s equips es connec en als e minals del panell sola mi jançan cables. Alguns disposi ius
inclouen pinces cocod il pe una connexió àcil i segu a. L’anali zado a ia la cà ega elèc ica
del panell (simulan di e en s condicions de eball) i egis a simul àniamen els alo s de ensió
i in ensi a en múl iples pun s, açan au omà icamen la co ba I-V. A més, calculen els
pa àme es clau (Voc, Isc, Pmax, e c.) i l’e iciència i ac o de o ma del panell. La co ba I-V es
mos a en una pan alla in eg ada o es ansme a un o dinado o disposi iu mòbil pe anali za -
la amb p og ama i especí ic. Alguns equips pe me en gua da esul a s pe compa acions
u u es.[11][12]
Exis eixen di e en s ipus d’anali zado s:
- Po à ils: Lleuge s i àcils de anspo a , pensa s pe a ècnics que an mesu es en camp.
Tenen una g an mobili a i senzillesa d'ús.
Figu a 6. Anali zado de co ba I-V po à il Seawa d PV150. Fon : Seawa d
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
19
- Es aciona is o d'al endimen : Dissenya s pe labo a o is o g ans ins al·lacions
o o ol aiques. O e eixen majo p ecisió i supo pe a múl iples panells o “s ings”.
Figu a 7. Anali zado de co ba I-V es aciona i HT Ins umen s IV400. Fon : HT Ins umen s
- In eg a s amb d ons o sis emes emo s: Pe me en mesu a g ans camps o o ol aics
sense desplaça -se ísicamen a cada panell. U ili zen càme es è miques i senso s pe
combina mesu es I-V amb ima ges è miques.
Figu a 8. D on pe inspecciona de plaques sola s. Fon : Ae oScan
Aques s equips enen di e sos a an a ges, com la p ecisió, la apidesa o els complemen s que
es poden a egi (mesu ado s d'i adiància, eines de diagnòs ic, e c.), pe ò ambé é alguns
incon enien s signi ican s. Els p incipals són el p eu, especialmen els models d'al endimen , i
la dependència de l'usua i, cal que l'ope ado agi a la ins al·lació i ha de ind e coneixemen s
mínims sob e el uncionamen i els pa àme es o o ol aics.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
20
2.3. Wi-Fi
El Wi-Fi (ab e ia u a de Wi eless Fideli y) és una ecnologia de comunicació sense il que pe me
connec a disposi ius a una xa xa de dades, gene almen pe a accedi a in e ne o compa i
ecu sos en e disposi ius sense necessi a de cables. És una de les o mes més comunes de
connexió sense il en lla s, o icines, llocs públics i disposi ius mòbils.
Les xa xes Wi-Fi uncionen mi jançan la ansmissió d'ones de àdio en di e ses eqüències,
o e in connec i i a a di e en s eloci a s. Aques es eqüències es classi iquen en els angs de
2,4 GHz, 5 GHz i 6 GHz. En gene al, com més al a és la eqüència, més g ans són les eloci a s
de ansmissió. No obs an això, la millo eqüència depèn de les necessi a s especí iques: les
eqüències més baixes, com els 2,4 GHz, o e eixen un abas més lla g pe ò a eloci a s meno s,
men e que els 6 GHz p opo cionen eloci a s i endimen més ele a s pe ò amb un abas més
limi a .
Pe al de ga an i una connexió e icien i iable, les xa xes Wi-Fi an ús d’un dels di e sos
p o ocols IEEE 802.11, un conjun d’es ànda ds desen olupa s pe l’Ins i u d’Enginye s Elèc ics
i Elec ònics (IEEE) pe es abli les especi icacions de les xa xes sense il (WLAN). En e els
p o ocols més u ili za s es oben 802.11a, 802.11b, 802.11g, 802.11n i 802.11ac, cadascun amb
ca ac e ís iques especí iques com el ang de eqüències d’ope ació, la axa màxima de dades i
les ècniques de modulació u ili zades.
Les xa xes Wi-Fi ac uen com un sis ema de comunicació bidi eccional en e un disposi iu i
l’encaminado . Quan un disposi iu in en a connec a -se a una xa xa Wi-Fi, en ia un missa ge
conegu com a "sol·lici ud de sondeig" pe escaneja les xa xes disponibles p ope es.
L’encaminado , ambé conegu com a pun d’accés Wi-Fi, ep aques a sol·lici ud i espon amb
un missa ge anomena "balisa", que con é in o mació clau com el nom de la xa xa (SSID), el ipus
de xi a ge u ili za (si n’hi ha) i la in ensi a del senyal (RSSI).
Quan un disposi iu ep la balisa del pun d’accés, p ocedeix a connec a -se en ian una
“sol·lici ud d’au en icació”. To segui , el pun d’accés e i ica les c edencials del disposi iu i li
assigna una ad eça IP. En aques momen , el disposi iu queda connec a o icialmen a la xa xa
Wi-Fi. Si la xa xa disposa de connexió a in e ne , el disposi iu hi pod à accedi , i si no, pod à
comunica -se amb al es disposi ius dins de la ma eixa xa xa. [13][14]
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
21
2.4. Di e encies en e Wi-Fi i LoRaWAN
T eballa amb Wi-Fi o amb LoRaWAN en un p ojec e de comunicació sense ils depèn de di e sos
ac o s com la dis ància, el consum ene gè ic, la capaci a de dades, el cos i la in aes uc u a.
A con inuació es compa en els a an a ges de eballa amb Wi-Fi en lloc de LoRaWAN: [15][16]
1. Amplada de banda i eloci a de ansmissió de dades
Wi-Fi o e eix eloci a s de ansmissió de dades de desenes a cen ena s de Mbps (amb les
e sions mode nes com Wi-Fi 5 i 6), men e que LoRaWAN é una eloci a de ansmissió mol
baixa, ípica d'uns pocs kilobi s pe segon (kbps).
2. In aes uc u a més accessible i es anda di zada
Les xa xes Wi-Fi són mol comunes i es an disponibles en mol s llocs (lla s, o icines, espais
públics) i els seus encaminado s són econòmics i es an àmpliamen dis ibuï s. En can i,
LoRaWAN eque eix una in aes uc u a especí ica com una passa el·la LoRaWAN, que po se
més cos osa i menys comuna.
3. Supo a disposi ius con encionals
Wi-Fi és compa ible amb mol s disposi ius es ànda d com elè ons mòbils, aule es, po à ils i
mol s disposi ius IoT. LoRaWAN es à pensa pe a disposi ius IoT especí ics que in eg en
anscep o s LoRa.
4. Facili a de con igu ació i ús
Con igu a una xa xa Wi-Fi és ela i amen senzill amb eines i in e ícies es ànda d, men e que
LoRaWAN eque eix coneixemen s més especí ics sob e con igu ació de xa xes LPWAN (Low
Powe Wide A ea Ne wo k) i po eque i pe misos d'ope ació segons la egió.
5. La ència més baixa
Wi-Fi é la ències mol baixes (mil·lisegons), que el an adequa pe a aplicacions en emps eal
i LoRaWAN é una la ència més al a, no sen adequa pe a aplicacions en emps eal.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
22
6. Consum ene gè ic dels encaminado s
Els encaminado s Wi-Fi enen accés cons an a ene gia elèc ica, pe la qual cosa poden maneja
ansmissions con ínues i al es eloci a s sense p eocupa -se pel consum. En can i, el nodes de
LoRaWAN són de baix consum, pe ò les passa el·les poden se més exigen s en e mes de
consum si han de cob i g ans à ees.
7. Capaci a de connec a múl iples disposi ius
Els encaminado s Wi-Fi poden maneja un g an nomb e de disposi ius simul àniamen amb un
bon endimen . Con à iamen , LoRaWAN é limi acions es ic es en la capaci a de connec a
disposi ius pe passa el·la a causa de es iccions en el p o ocol.
To i que Wi-Fi é mol s a an a ges, no és la millo solució pe a o es les si uacions, ja que é
alguns incon enien s que poden e que sigui millo op a pe LoR aWAN:
- Abas limi a : Wi-Fi cob eix una dis ància ípica de 50-100 me es, men e que LoRaWAN
po a iba a di e sos quilòme es.
- Consum ene gè ic dels disposi ius: Els disposi ius Wi-Fi són més exigen s en e mes
d'ene gia que els de LoRaWAN, la qual cosa po se un p oblema pe a senso s
alimen a s pe ba e ia.
- No ap e pe à ees emo es: En llocs sense in aes uc u a Wi-Fi, LoRaWAN és una millo
opció g àcies al seu abas ampli.
En conclusió, eballa amb Wi-Fi é cla s a an a ges en e mes de eloci a , in e ope abili a ,
acili a d'ús i accessibili a en en o ns amb in aes uc u a exis en . To i això, si el p ojec e
eque eix un abas lla g, un consum ul a baix o ope acions en à ees emo es, LoRaWAN po se
més adequa .
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
23
3. DESENVOLUPAMENT
3.1. Ha dwa e
3.1.1. PCB
Es pa eix de la PCB c eada al p ojec e “T azado de cu as I-V inalámb ico pa a paneles sola es”.
En o al es comp en amb 4 PCB iguals.
Figu a 9. Esquema PCB I. Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
24
Figu a 10. Esquema PCB II. Fon : P òpia
Accionamen dels elés: Aques ci cui pe me con ola els 4 elés mi jançan el
mic ocon olado . El ULN2003 ac ua com a in e ície en e els senyals de con ol de baixa
po ència i els elés, o e in p o ecció con a pics de ensió i ampli ican el co en necessa i pe
ac i a els elés.
Figu a 11. Ci cui de con ol dels elés. Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
31
Figu a 22. Po s i connec o s de la Raspbe y Pi Pico W. Fon : Raspbe y
Alimen ació:
- Po mic o-USB (5 V).
- Pins GPIO ( ins a 3,3 V egula s).
- Consum ene gè ic baix, ideal pe a p ojec es po à ils.
Mida compac a:
- Dimensions: 51 mm × 21 mm.
- Dissenyada pe a p ojec es on l’espai és limi a .
P og amació i p og ama i:
- Compa ible amb llengua ges de p og amació com a a:
- Mic oPy hon (mol popula pe a p incipian s i p ojec es IoT).
- C/C++ (o e eix més con ol i endimen ).
- Adme eines com Thonny IDE pe esc iu e i ca ega codi.
Els p incipals a an a ges que mos a aques mic ocon olado espec e a al es
mic ocon olado s semblan s són:
- Baix cos i mida compac a.
- Connec i i a sense ils in eg ada.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
32
- Comuni a i documen ació àmplies.
- Supo pe a di e sos llengua ges de p og amació.
D’al a banda, é ce es limi acions, com:
- No és un o dinado comple com al es Raspbe y Pi
- Memò ia limi ada pe a aplicacions a ançades.
- Reque eix ce coneixemen ècnic pe ap o i a o el seu po encial.
Tenin en comp e les ca ac e ís iques eque ides pe a l'aplicació del p ojec e, aques es
limi acions no esul en signi ica i es. Pe an , el mic ocon olado Raspbe y Pi Pico es p esen a
com una opció ideal pe sa is e les necessi a s del sis ema.
Les p incipals di e ències de la e sió Wi-Fi espec e a la e sió es ànda d són les següen s:
Ca ac e ís ica
Raspbe y Pi Pico
Raspbe y Pi Pico W
Connec i i a sense ils
No
Wi-Fi i Blue oo h
Xip de connec i i a
N/A
In ineon CYW43439
P eu
Més baix
Lleuge amen més al
Taula 2. Compa a i a en e la Raspbe y Pi Pico i la Raspbe y Pi Pico W
Figu a 23. Raspbe y Pi Pico. Fon : Raspbe y
Al me ca es po oba una èplica de la Raspbe y Pi Pico W. És una Pi Pico que in eg a un
mòdul ESP8285 pe p opo ciona connec i i a Wi-Fi, en lloc del xip CYW43439 u ili za a la
e sió o icial.[18]
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
33
Figu a 24. Raspbe y Pi Pico amb mòdul ESP8285. Fon : AliExp ess
Les p incipals di e ències en e els 2 models són les següen s:
Ca ac e ís ica
Raspbe y Pi Pico W
Raspbe y Pi Pico amb ESP8285
Mic ocon olado
p incipal
RP2040 (Dual-co e ARM Co ex-
M0+)
RP2040 (Dual-co e ARM Co ex-
M0+)
Mòdul Wi-Fi
CYW43439 (B oadcom) in eg a
amb supo Wi-Fi 4 (802.11 b/g/n)
ESP8285 (mòdul Wi-Fi ex e n,
UART o SPI)
Blue oo h
Sí (BLE i clàssic, supo o icial)
No
In eg ació Wi-Fi
To almen in eg ada, supo na iu
en Mic oPy hon i C/C++
Wi-Fi ges iona ex e namen , ús
de comandes AT o biblio eques
addicionals
Supo o icial
Compa ible amb Mic oPy hon,
C/C++ i Ci cui Py hon amb APIs
o icials
Reque eix supo de e ce s o
pe sonali zació pe ges iona
l’ESP8285
Consum ene gè ic
Més e icien g àcies a la in eg ació
del CYW43439
Consum més ele a degu a l’ús
sepa a del mòdul ESP8285
Facili a de
p og amació
Al a: Wi-Fi i Blue oo h es ges ionen
amb APIs àcils d’usa
Mode ada: Con igu ació manual
del mòdul ESP8285 i ús de
comandes AT
Cos
Lleuge amen més al (mòdul
CYW43439 de quali a supe io )
Gene almen més econòmic
Compa ibili a amb
IoT
Ideal pe aplicacions IoT g àcies al
baix consum i l’ele ada in eg ació
Po encial pe IoT, pe ò menys
op imi za i més complex
U ili zació
d’UART/SPI
No necessa i pe al mòdul Wi-Fi o
Blue oo h
Necessa i pe comunica -se amb
el mòdul ESP8285
Taula 3. Compa a i a en e la Raspbe y Pi Pico W i la Raspbe y Pi Pico amb ESP8285
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
34
Inicialmen , pe disponibili a , es comença a p og ama amb la Raspbe y Pi Pico amb el xip
ESP8285, pe ò pe mo ius d’e iciència i comodi a s’op a pe u ili za la e sió o icial de la
Raspbe y Pi Pico W. To i les di e ències en e ambdues plaques, es comp o a que l'única
di e ència signi ica i a a ni ell de p og amació és la ges ió de la connexió a Wi-Fi. La e sió o icial
comp a amb una biblio eca especí ica que acili a aques a asca, men e que la èplica eque eix
l'ús de comandes AT pe es abli i ges iona la connexió.
A con inuació s’explica o el que es necessi a i com posa en ma xa una Raspbe y Pi Pico W des
de ze o:
1. P epa a l'en o n
Ma e ial necessa i:
- Una Raspbe y Pi Pico W.
- Un cable USB.
- Un o dinado .
- Connexió a In e ne .
Ins al·la l'en o n de desen olupamen :
- Decidi quin llengua ge i p og ama i es a à se i . Els més comuns són:
• Mic oPy hon.
• C/C++.
En aques p ojec e s’u ili za Mic oPy hon.
2. Desca ega Mic oPy hon
- Visi a el lloc o icial de Raspbe y Pi:
h ps://www. aspbe ypi.com/so wa e/mic opy hon
- Desca ega l'a xiu UF2: Busca l'a xiu pe a la Pico W a la secció de Mic oPy hon. El nom
se à simila a p2-pico-w-< e sió>.u 2.
3. Connec a la Pico W a l'o dinado
Mode d'emmaga zema ge USB:
- Man eni p emu el bo ó BOOTSEL de la Pico W.
- Men e es man é p emu , connec a la Pico W a l'o dinado mi jançan el cable USB.
- Allibe a el bo ó BOOTSEL desp és de connec a .
La Pico W apa eixe à com una uni a d'emmaga zema ge a l’o dinado amb un nom com RPI-
RP2.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
35
4. Flasheja el i mwa e de Mic oPy hon
Copia l'a xiu UF2:
- A ossega i deixa ana l'a xiu .u 2 que s’ha desca ega a la uni a RPI-RP2.
- La Pico W es einicia à au omà icamen i es a à lles a pe u ili za -se amb Mic oPy hon.
En aques momen la Raspbe y es à p epa ada pe unciona en l’en o n de p og amació que
es desi gi, en aques p ojec e es eballa amb Thonny. A l’apa So wa e s’explica com posa en
ma xa l’edi o .
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
36
3.1.3. Cable FTDI
Pe a la comunicació sè ie s’u ili za el cable FTDI Chip TTL-232RG-VSW5V-WE és un con e ido
USB a UART (TTL) que pe me la comunicació sè ie en e disposi ius USB i disposi ius amb
in e ície UART (Uni e sal Asynch onous Recei e -T ansmi e ). Aques cable in eg a un xip FTDI
FT232R, que s'enca ega de la con e sió de senyals USB a UART. Les p incipals ca ac e ís iques
d’aques cable són:[19]
Con e sió USB a TTL:
- Con e eix el senyal USB a ni ells lògics TTL (T ansis o -T ansis o Logic), cosa que
pe me la comunicació amb mic ocon olado s o al es disposi ius elec ònics.
- Compa ible amb ni ells TTL de 5 V o ajus ables a al es ol a ges depenen de la e sió
del cable.
Connec o s:
- Connec o USB-A en un ex em pe connec a -se a un o dinado o disposi iu USB.
- A l'al e ex em, els cables enen els ils pela s i iden i ica s pe colo s, la qual cosa acili a
la connexió als pins de l'equip UART.
Xip FTDI FT232R:
- És el nucli del cable, un xip econegu pe la se a iabili a i compa ibili a amb di e sos
sis emes ope a ius (Windows, macOS, Linux).
- P opo ciona con ol comple sob e la con igu ació sè ie, com a a la eloci a de
ansmissió (baud a e), bi s de dades, bi s de pa ada, i pa i a .
Compa ibili a :
- Compa ible amb sis emes ope a ius mode ns, ja que u ili za d i e s disponibles
o icialmen des de FTDI.
- Compa ible amb mic ocon olado s com A duino, Raspbe y Pi, i al es disposi ius amb
in e ícies UART.
Figu a 25. Cable FTDI Chip TTL-232RG-VSW5V-WE. Fon : RS Componen s
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
37
Cableja :
Colo
Nom
Tipus
Desc ipció
Neg e
GND
GND
Pin de subminis amen de e a del disposi iu.
Ma ó
CTS#
En ada
Clea o Send (Lliu e pe en ia ), senyal d'en ada /
mànec.
Ve mell
VCC
So ida o
en ada
So ida d'alimen ació.
Ta onja
TXD
So ida
So ida de dades asínc ones ansmeses.
G oc
RXD
En ada
En ada de dades asínc ones ebudes.
Ve d
RTS#
So ida
Reques To Send (Sol·lici ud pe en ia ), so ida de con ol
/ mànec.
Taula 4. Cableja del cable FTDI
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
38
3.2. So wa e
Pel desen olupamen del p ojec e s’han u ili za di e sos so wa es de p og amació, com els
edi o s Thonny i Visual S udio Code; un emulado de po sè ie, Te a Te m; i una eina de disseny
de ci cui s elec ònics, PSPICE Schema ics.
3.2.1. Thonny
Thonny és un en o n de desen olupamen in eg a (IDE) in uï iu i senzill, ideal pe a p incipian s
pe ò amb uncionali a s ú ils pe a usua is a ança s. Té una in e ície ne a i àcil d’en end e, amb
eines com un edi o de codi, una consola d’execució i un depu ado isual que pe me segui el
lux d’execució i els alo s de les a iables en emps eal. També inclou una eina pe ges iona
a iables, ajudan a comp end e els concep es de p og amació de mane a p àc ica.
El seu disseny elimina con igu acions complexes, pe me en comença a u ili za Py hon sense
complicacions. A més, és compa ible amb plaques de mic ocon olado s com la Raspbe y Pi
Pico g àcies al supo pe a Mic oPy hon i Ci cui Py hon. Pe a usua is a ança s, o e eix uncions
opcionals com la ges ió d’en o ns i uals, ins al·lació de paque s Py hon i supo pe a llib e ies
de PyPI. Finalmen , acili a l’esc ip u a i execució in e ac i a de codi, mos an e o s amb
explicacions de allades.[20]
Figu a 26. Logo ip de Thonny. Fon : Thonny
A Thonny és on es eali za à la p og amació del codi de la Raspbe y Pi Pico W amb Mic oPy hon,
una implemen ació op imi zada del llengua ge de p og amació Py hon 3. Es à dissenya
especí icamen pe unciona en mic ocon olado s i en en o ns amb ecu sos limi a s.
Inco po a uncionali a s a ançades com un e minal in e ac iu (REPL), comp ensions de llis es,
ges ió d'excepcions, en e d'al es. To i això, és p ou compac e pe unciona en només 256 kB
d'espai de codi i 16 kB de RAM.
L'objec iu de Mic oPy hon és o e i la màxima compa ibili a amb Py hon es ànda d, acili an
la ans e ència de codi des d'un en o n d'esc ip o i a un mic ocon olado o sis ema inc us a
amb acili a .[21]
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
39
Pe pode eballa amb aques edi o s’han de segui els següen s passos:
1. Desca ega Thonny
- Ana al lloc o icial de Thonny: h ps:// honny.o g.
- A la pàgina p incipal, busca el bo ó de descà ega.
- L’a xiu desca ega se à un execu able amb un nom com a a “ honny-< e sió>.exe”.
2. Inicia la ins al·lació
- Locali za l’a xiu desca ega i e doble clic sob e ell.
- Si apa eix una ines a de con ol d’usua i, e clic a Sí.
3. Con igu a la ins al·lació
- T ia l’idioma.
- Accep a els e mes de la llicència i e clic a Següen .
- Pe de ec e, Thonny s’ins al·la à en una ca pe a dins de C: A xius de p og ama o simila .
Si es ol can ia la ubicació, selecciona una al a ca pe a.
4. Comple a la ins al·lació
- Fe clic a Ins al·la pe comença el p océs
- Fe clic a Finali za.
5. Con igu a in è p e pe a Raspbe y Pi Pico W
- Selecciona execu a i a con inuació Con igu a In è p e .
- A la pes anya In è p e , ob i el desplegable i selecciona Mic oPy hon(RP2040)
- Ob i el desplegable de po i selecciona el COM que apa egui.
- Selecciona o es les opcions que apa eixen i e clic a “Ok”.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
40
3.2.2. Visual S udio Code
Visual S udio Code és un edi o de codi obe , g a uï i desen olupa pe Mic oso , op imi za
pe se lleuge i àpid ins i o en equips amb ecu sos limi a s. És compa ible amb múl iples
llengua ges de p og amació, com Py hon, Ja aSc ip , C++, Ja a, e c.
Inclou un edi o in el·ligen amb uncionali a s com l’au ocomple a (In elliSense), essal a de
sin axi, i eines de e ac o i zació pe millo a la p oduc i i a . També o e eix eines a ançades de
depu ació amb pun s d’in e upció, isuali zació de a iables en emps eal i anàlisi de les piles
de c ides.
VS Code in eg a de mane a na i a el con ol de e sions amb Gi , pe me en ges iona commi s,
b anques i l'es a dels i xe s di ec amen des de l'edi o . La se a ex ensibili a es po encia amb
un Ma ke place ic en ex ensions pe a egi uncionali a s.
A més, disposa d’un e minal in eg a pe execu a sc ip s, supo pe a múl iples pla a o mes
(Windows, macOS i Linux) i eines de col·labo ació en emps eal com Li e Sha e, que pe me
eballa conjun amen en el ma eix codi.[22]
Figu a 27. Logo ip de Visual S udio Code. Fon : VSCode
A VC Code es eali za à la p og amació del codi ecep o de la llis a de les dades de co en i
ensió i la ep esen ació en g à iques d’aques es dades i de la co ba I-V. El llengua ge u ili za és
Py hon, un llengua ge de p og amació d’al ni ell, o ien a a objec es i amb una semàn ica
dinàmica in eg ada, ideal pe al desen olupamen web i d’aplicacions. És especialmen a ac iu
pe al Desen olupamen Ràpid d’Aplicacions (RAD) g àcies a la se a ipi icació i encadenamen
dinàmics.
La se a senzillesa i sin axi llegible el an àcil d’ap end e, cosa que pe me als desen olupado s
col·labo a de mane a e ec i a i edui cos os de man enimen i desen olupamen . Supo a l’ús
de mòduls i paque s, acili an la eu ili zació del codi i l’escalabili a en di e sos p ojec es.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
47
4.2. Lec u a de ensió
L’ADC mesu a la ensió al pun indica V(V).
Figu a 31. Di iso de ensió pe mesu a la ensió amb l’ADC. Fon : P òpia
Anali zan el di iso de ensió:
𝑉(𝑉)=𝑅31
𝑅26 + 𝑅31 ×𝑃𝑉+= 56𝑘
953𝑘 + 56𝑘×𝑃𝑉+= 0,0555 ×𝑃𝑉 +
La ensió que es mesu a és, ap oximadamen , un 5,55% de la ensió al panell. El ci cui es à
dissenya pe ga an i que la ensió màxima del panell sigui de 55 V, assegu an que al ADC
només a ibin 3 V, el alo de e e ència d’aques .
En aques cas, la con e sió es a de la ma eixa mane a que amb el co en , can ian el ac o de
con e sió pel que p odueix el di iso de ensió:
𝑉 = 𝑙𝑒𝑐𝑡𝑢𝑟𝑎 × 3𝑉
65335 × 0,0555
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
48
4.3. F eqüència de mos eig del mic ocon olado
To i que a les especi icacions del ab ican del mic ocon olado apa eix la eqüència de
mos eig màxima de l’ADC, 500 kSps, pe ep esen a les g à iques en emps eal, es necessa i
sabe la eqüència de mos eig eal a la el mic ocon olado eali za el mos eig execu an el
p og ama en Mic opy hon. Pe ob eni -ho, es gene a un senyal quad a con ola amb un
gene ado de uncions i s’ajus a pe què quedin 100 mos es en mig pe íode. A con inuació,
s’aga a la eqüència d’aques senyal i es an els càlculs necessa is:
𝑓 = 115 𝐻𝑧
𝑇 = 1
𝑓=1
115 = 0,00869 𝑠
Figu a 32. Senyal quad a con ola amb eqüència 115 Hz. Fon : P òpia
Figu a 33. De all de les mos es en mig pe íode del senyal quad a . Fon : P òpia
Com les 100 mos es es oben en mig pe íode, es di ideix en e 2:
𝑇
2= 0,00435 𝑠
Pe an , el emps que iga el mic ocon olado a p end e 1 mos a és:
𝑇𝑚𝑜𝑠𝑡𝑟𝑎 =0,00435
100 = 0,0000435 𝑠 = 43,5 𝜇𝑠
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
49
Tenin aques esul a es po calcula la eqüència de mos eig:
𝑓𝑚𝑜𝑠𝑡𝑟𝑒𝑖𝑔 =1
𝑇𝑚𝑜𝑠𝑡𝑟𝑎
=1
0,0000435 =23000 𝑆𝑝𝑠
Amb aques a da a es poden ep esen a les g à iques en emps eal a egin la eqüència de
mos eig eal al codi.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
50
5. FASE EXPERIMENTAL
5.1. P og amació
5.1.1. P og ama Raspbe y Pi Pico W
Un cop ins al·la Thonny i amb les con igu acions inicials eali zades, es p og ama en
Mic opy hon el codi que con ola la Raspbe y Pi Pico W. Pe comodi a i simplici a , cada p océs
es de ineix com una unció i es an c idan al bucle p incipal.
El p og ama segueix la següen es uc u a:
Figu a 34. Es uc u a del p og ama de la Raspbe y Pi Pico W. Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
51
A con inuació, es p esen en les con igu acions i uncions que s’han p og ama :
Llib e ies
El p ime pas del p og ama consis eix a impo a les llib e ies necessà ies pe ga an i el co ec e
uncionamen de o es les uncionali a s implemen ades en el codi. Les llib e ies u ili zades en
aques p ojec e són les següen s:
Machine: És el mòdul p incipal que p opo ciona accés al maquina i de la placa, com els pins GPIO,
comunicació UART, ADC, e c. Din e d’aques mòdul impo em les llib e ies:
- ADC: Se eix pe llegi senyals analògics (de 0 a 3 V, depenen de la placa) i con e i -
los a alo s digi als. S'u ili za pe connec a senso s analògics, com po enciòme es,
senso s de empe a u a, e c.
- Pin: Pe me accedi i con igu a els pins GPIO de la placa. Se eix pe con ola
disposi ius com LED, bo ons, elés, e c., o pe llegi es a s d'en ada (0/1, digi al).
- UART : És una in e ície de comunicació sè ie. S'u ili za pe en ia i eb e dades en e la
placa i al es disposi ius (com senso s, al es plaques, o un o dinado ).
Time: Pe me ges iona el emps. Les uncions que s’u ili zen són:
- ime.sleep(): Fa que el p og ama espe i du an un emps especi ica (en segons).
- ime. ime(): Re o na el emps ac ual en segons des del començamen d'una e e ència
(com l'inici del p og ama).
Ne wo k: P opo ciona supo pe a connexió a xa xes Wi-Fi o E he ne . La unció que es a se i
és:
- ne wo k.WLAN(): Ges iona la connexió Wi-Fi, incloen -hi connec a -se a pun s d'accés i
es abli ad eces IP.
Socke : Pe me ges iona connexions de xa xa u ili zan socke s. Funciona pe a comunicacions
TCP/UDP i pe me c ea se ido s i clien s.
Ma h: Inclou uncions a ançades de càlcul. La unció que s’usa à és:
- ma h.log(): Calcula el loga i me nepe ià d’un núme o.
U ime: Llib e ia simila a ime, especí ica pe a mic ocon olado s. P opo ciona una p ecisió
millo en empo i zacions cu es. La unció u ili zada és:
- u ime.sleep_ms(): Fa que el p og ama espe i un emps especi ica en mil·lisegons.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
52
Con igu acions inicials
A con inuació, es de ineixen els pins que s'u ili za an al lla g de o el p og ama. Tal com s'ha
esmen a , en aques p ojec e s'usen es ipus de pins: GPIO, ADC i UART.
GPIO: Es an connec a s els elés i al led in eg a de la Pi Pico W. To s es de ineixen com a
so ides.
ele1 = Pin(6, Pin.OUT)
ele2 = Pin(7, Pin.OUT)
ele3 = Pin(8, Pin.OUT)
ele4 = Pin(9, Pin.OUT)
led = Pin('LED', Pin.OUT)
ADC: Hi ha 3 senso s connec a s, el de co en , el de ensió i el de empe a u a.
adc_ ol aje = ADC(Pin(27))
adc_co ien e = ADC(Pin(28))
adc_n c = ADC(Pin(26))
UART: Es de ineix el pe i è ic UART (en aques cas el 0), la eloci a de ansmissió de dades
(115200 bps) i els pins GPIO de ansmissió i ecepció (0 i 1). Aques a con igu ació és pe la
connexió al po sè ie mi jançan el cable FTDI.
ua = UART(0, baud a e=115200, x=Pin(0), x=Pin(1))
A més, es con igu a la xa xa Wi-Fi a la que es connec a el disposi iu i pe la que s’en ien i es
eben les dades.
ssid = "QSARTI"
passwo d = "*********************"
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
53
Funcions pa pelleig
Pe moni o i za el uncionamen del sis ema sense necessi a de connexió cons an , s’han
implemen a dues uncions de pa pelleig u ili zan el LED in eg a de la Raspbe y Pi Pico W.
La p ime a unció se eix pe indica que el p og ama s’execu a co ec amen . El LED pa pelleja
a un i me len , encenen -se i apagan -se cada 0,2 segons.
de blink_bien():
led.on()
ime.sleep(0.2)
led.o ()
ime.sleep(0.2)
led.on()
ime.sleep(0.2)
led.o ()
La segona unció indica la p esència d'un p oblema du an l'execució del p og ama, amb un
pa pelleig més àpid del LED, encenen -se i apagan -se cada 0,01 segons.
de blink_mal():
led.on()
ime.sleep(0.01)
led.o ()
ime.sleep(0.01)
led.on()
ime.sleep(0.01)
led.o ()
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
54
Funció de connexió a Wi-Fi
Pe ges iona la connexió a Wi-Fi, es de ineix una unció que u ili za la llib e ia ne wo k pe
es abli i e i ica la connexió amb la xa xa. Aques a unció comp o a inicialmen si el sis ema ja
es à connec a a una xa xa Wi-Fi. Si no hi ha cap connexió ac i a, s'inicia el p océs de connexió
u ili zan el SSID i la con asenya con igu a s.
Un cop comple a l'in en de connexió, la unció e i ica l'es a de la connexió. Si aques a s'ha
es able co ec amen , es mos a l'ad eça IP assignada, an al e minal com al po sè ie. En
cas con a i, es mos a el missa ge d'e o " No se pudo es ablece la conexión a Wi-Fi".
Finalmen , la unció e o na un alo booleà (T ue o False) que indica si la connexió s'ha eali za
amb èxi o no.
de conec a _wi i(ssid, passwo d):
wlan = ne wo k.WLAN(ne wo k.STA_IF)
wlan.ac i e(T ue)
# In en a conec a si no es á conec ado
i no wlan.isconnec ed():
p in ("In en ando conec a a la ed Wi-Fi...")
ua .w i e("In en ando conec a a la ed Wi-Fi... n")
wlan.connec (ssid, passwo d) # Inicia el in en o de conexión
ime.sleep(1) # Espe a b e e pa a inicializa la conexión
# Comp oba si se log ó la conexión
i wlan.isconnec ed():
p in ("Conec ado a la ed Wi-Fi")
ua .w i e("Conec ado a la ed Wi-Fi n")
ip = wlan.i con ig()[0]
p in ("Di ección IP:", ip)
ua .w i e( "Di ección IP: {ip} n")
else:
p in ("No se pudo es ablece la conexión a Wi-Fi.")
ua .w i e("No se pudo es ablece la conexión a Wi-Fi. n")
# Re o na T ue si es á conec ado, False si no
e u n wlan.isconnec ed()
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
55
Funció d’en iamen de dades pe TCP
Pe en ia les llis es de dades de co en i ensió mi jançan un se ido TCP, es de ineix una
unció que u ili za la llib e ia socke . Aques a unció c ea un socke TCP associa a la IP de la
xa xa Wi-Fi a la qual es à connec a el sis ema i a un po p ede ini que ha d’es a disponible.
La unció comença in en an es abli la connexió amb el se ido . Si la connexió és exi osa, es
no i ica an al e minal com al po sè ie amb el missa ge "Connexión TCP es ablecida". A
con inuació, les llis es de co en i ensió es con e eixen en cadenes de ex , p ecedides pe un
iden i icado (c pe a co en i pe a ensió) i són en iades al se ido .
En cas d’e o , com a a la indisponibili a del se ido o un p oblema amb la connexió, es gene a
un missa ge d'e o "E o en la connexión TCP o en io.
Finalmen , el socke es anca pe allibe a els ecu sos del sis ema, i es no i ica adequadamen .
de en ia _lis as_ cp(co ien e_ inal, ol aje_ inal):
add = ("10.5.159.155", 65432) # Cambia la IP y el pue o según sea necesa io
sock = socke .socke (socke .AF_INET, socke .SOCK_STREAM)
y:
sock.connec (add )
p in ("Conexión TCP es ablecida")
ua .w i e("Conexión TCP es ablecida n")
# Con e i las lis as a cadenas con p e ijos y en ia las comple as
co ien e_s = "c," + ",".join(map(s , co ien e_ inal)) + ','
ension_s = " ," + ",".join(map(s , ol aje_ inal)) + ','
sock.send(co ien e_s .encode('u -8')) # En ia la lis a de co ien e
sock.send( ension_s .encode('u -8')) # En ia la lis a de ol aje
excep Excep ion as e:
p in ("E o en la conexión TCP o en ío:", e)
ua .w i e("E o en la conexión TCP o en ío: n")
inally:
sock.close()
p in ("Conexión ce ada")
ua .w i e("Conexión ce ada n")
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
56
Funció d’en iamen de dades pel po sè ie
Pe en ia la llis a de dades de co en i ensió mi jançan el po sè ie, es de ineix una unció
que o gani za la in o mació amb l’es uc u a desi jada. Es comença esc i in una capçale a que
inclou la da a i l’ho a en què s’han p es les mesu es, ob ingudes g àcies a la llib e ia “u ime”.
Desp és, els alo s mesu a s de co en i ensió es conca enen en cadenes de ex . Cada llis a
s’iden i ica amb el p e ix especí ic i s’en ien pel po sè ie .
Un cop comple a l’en iamen , es gene a una no i icació que in o ma de l’èxi de l’ope ació.
de en ia _po _ua (co ien e_ inal, ol aje_ inal, ua ):
y:
# Ob ene la echa y ho a ac ual
echa_ho a_ac ual = u ime.local ime()
echa_ho a_s = "{:04d}-{:02d}-{:02d} {:02d}:{:02d}:{:02d}". o ma (
echa_ho a_ac ual[0], # Año
echa_ho a_ac ual[1], # Mes
echa_ho a_ac ual[2], # Día
echa_ho a_ac ual[3], # Ho a
echa_ho a_ac ual[4], # Minu o
echa_ho a_ac ual[5] # Segundo
)
# C ea el encabezado con la echa y ho a
encabezado = "$G2CV," + echa_ho a_s
# Con e i las lis as a cadenas con p e ijos
co ien e_s = "c," + ",".join(map(s , co ien e_ inal))
ension_s = " ," + ",".join(map(s , ol aje_ inal))
# Conca ena odo en una sola cadena
mensaje_comple o = encabezado + "," + co ien e_s + "," + ension_s
# En ia el mensaje po UART
ua .w i e((mensaje_comple o + " n").encode('u -8'))
p in ("Da os en iados po UART")
excep Excep ion as e:
p in ("E o en el en ío po UART:", e)
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
63
Figu a 38. Rep esen ació co en , ensió i co ba I-V amb e a d 50 μs. Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
64
Funció de lec u a de co en i ensió
Pe llegi les mesu es de co en i ensió, es de ineix una unció que gua da els alo s llegi s pe
l'ADC de la Raspbe y Pi Pico W. P ime , es de ineix el e a d amb el qual es p en cada mos a
(com s'ha menciona an e io men , l'inicial és de 0 ms) i el nomb e de mos es que es eali za an
(segons p o es expe imen als, es comp o a que 600 mos es són su icien s). A con inuació, es
de ineixen dues llis es pe emmaga zema els alo s en o ma bina i ( alo s digi als di ec es de
l'ADC abans de la con e sió a uni a s eals). El alo de co en es llegeix mi jançan el mè ode
" ead_u16()" de l'ADC, que e o na un alo de 16 bi s (en e 0 i 65535), i aques es gua da a la
llis a “lec u as_co ien e_bina io”. Desp és, es gene a el e a d con ola i es epe eix el p océs
pe al ol a ge, emmaga zeman el alo a “lec u as_ ol aje_bina io”. Finalmen , els alo s
bina is es con e eixen a uni a s eals: ampe es pe al co en i ol s pe a la ensió. La unció
e o na les dues llis es amb els alo s de co en i ensió a les a iables “lec u as_co ien e” i
“lec u as_ ol aje”, espec i amen .
de lee _co ien e_y_ ol aje( e a do_us=0, num_lec u as=600):
# Lis a de alo es sin p ocesa
lec u as_co ien e_bina io = []
lec u as_ ol aje_bina io = []
o _ in ange(num_lec u as):
lec u a_co ien e = adc_co ien e. ead_u16()
lec u as_co ien e_bina io.append(lec u a_co ien e)
ime.sleep_us( e a do_us)
lec u a_ ol aje = adc_ ol aje. ead_u16()
lec u as_ ol aje_bina io.append(lec u a_ ol aje)
ime.sleep_us( e a do_us)
# Ajus e según los componen es
lec u as_co ien e = [
ound(((((lec u a)*3)*10)/65335), 2) o lec u a in lec u as_co ien e_bina io
]
lec u as_ ol aje = [
ound(((((lec u a)*3)*41)/65335), 2) o lec u a in lec u as_ ol aje_bina io
]
e u n lec u as_co ien e, lec u as_ ol aje
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
65
Funció de comp o a connexió a Wi-Fi
Pe comp o a la connexió a la xa xa Wi-Fi, s'implemen a una unció que e i ica l'es a de la
connexió i e o na “T ue” si hi ha connexió ac i a o “False” en cas con a i. Si la connexió es à
ac i a, es mos a un missa ge al e minal i es ansme pe UART indican que el disposi iu es à
connec a , incloen -hi l’ad eça IP assignada. Si no hi ha connexió, es mos a un missa ge
in o man que no s'ha pogu es abli cap connexió.
de comp oba _wi i():
wlan = ne wo k.WLAN(ne wo k.STA_IF)
# Ve i ica si el Wi-Fi es á conec ado
i wlan.isconnec ed():
p in ("Wi-Fi es á conec ado.")
ua .w i e("Wi-Fi es á conec ado. n")
ip = wlan.i con ig()[0]
p in ("Di ección IP:", ip)
ua .w i e( "Di ección IP: {ip} n")
e u n T ue
else:
p in ("Wi-Fi no es á conec ado.")
ua .w i e("Wi-Fi no es á conec ado. n")
e u n False
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
66
Funció p incipal
La unció p incipal del p og ama és l’enca egada d’execu a cicles pe iòdics que comp o en la
connec i i a Wi-Fi, con igu en un e a d en mic osegons basa en les ins uccions ebudes pe
UART, mesu en dades (co en s i ol a ges) i en ien aques es dades pe Wi-Fi o UART, segons la
disponibili a .
Pe comença , es de ineix un e a d inicial de 0 ms i s’in o ma d'aques alo a a és del e minal
i UART. Ac i a un indicado isual amb la unció “led.on()”, in en a connec a -se a una xa xa Wi-
Fi amb la unció “conec a _wi i” i desac i a l'indicado isual amb “led.o ()”. A con inuació, es
gene a un bucle in ini on es comp o a si hi ha Wi-Fi disponible amb “comp oba _wi i” i
s’emmaga zema el esul a . A més, s’inicia un empo i zado (s a _ ime) pe moni o i za el pas
del emps i s’in o ma del e a d amb el que s’execu a à.
Seguidamen , s’ac i en els elés pe inicia la mesu a, es llegeixen les dades de co en i ol a ge
amb la unció “lee _co ien e_y_ ol aje” i es o nen a desac i a els elés desp és de la mesu a.
A con inuació, es eali za l’en iamen de dades al disposi iu o disposi ius enllaça s. En cas
d’ha e -hi connexió a Wi-Fi, s’en ien pe Wi-Fi i pel po sè ie. Si no hi ha Wi-Fi disponible només
s’en ien pel po sè ie.
Finalmen , es gene a un al e bucle on es comp o a si han passa 2 minu s o si es eben dades
pel po sè ie. En cas de eb e qualse ol dada, es llegeix el comando i es con igu a un nou e a d
mi jançan la unció an e io men de inida “con igu a _ e a do_con_ iempo”. Quan succeeix
alguna de les 2 opcions es su del bucle i o na a comença el p océs.
de ejecu a _p oceso():
e a do_ac ual = 0 # Valo inicial po de ec o en mic osegundos
p in ( "Re a do inicial: { e a do_ac ual} mic osegundos")
ua .w i e( "Re a do inicial: { e a do_ac ual} mic osegundos n")
blink_bien()
led.on()
conec a _wi i(ssid, passwo d)
led.o ()
while T ue:
# Comp oba conexión Wi-Fi
wi i_disponible = comp oba _wi i()
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
67
# Con igu a el empo izado
s a _ ime = ime. ime()
p in ( "Iniciando p oceso con e a do de { e a do_ac ual} mic osegundos")
ua .w i e( "Iniciando p oceso con e a do de { e a do_ac ual} mic osegundos n")
blink_bien()
eles_on()
co ien e_ inal, ol aje_ inal = lee _co ien e_y_ ol aje( e a do_us= e a do_ac ual,
num_lec u as=600)
eles_o ()
blink_bien()
i wi i_disponible:
p in ("En iando da os po Wi-Fi y UART")
ua .w i e("En iando da os po Wi-Fi y UART n")
en ia _lis as_ cp(co ien e_ inal, ol aje_ inal) # En ia po Wi-Fi
else:
p in ("En iando da os solo po UART (Wi-Fi no disponible)")
ua .w i e("En iando da os solo po UART (Wi-Fi no disponible) n")
# En ia po UART en ambos casos
en ia _po _ua (co ien e_ inal, ol aje_ inal, ua )
blink_bien()
while T ue:
blink_bien()
# Ve i ica si han pasado 10 segundos
i ime. ime() - s a _ ime >= 120:
p in ("Ejecución au omá ica po empo izado ")
ua .w i e("Ejecución au omá ica po empo izado n")
b eak
# Ve i ica si hay da os en el pue o se ie
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
68
i ua .any(): # Si hay da os disponibles en el pue o se ie
p in ("Espe ando comando de con igu ación de e a do...")
ua .w i e("Espe ando comando de con igu ación de e a do... n")
# In en a con igu a un nue o e a do
nue o_ e a do = con igu a _ e a do_con_ iempo( e a do_ac ual)
i nue o_ e a do != e a do_ac ual:
p in ( "Re a do ac ualizado a {nue o_ e a do} mic osegundos")
ua .w i e( "Re a do ac ualizado a {nue o_ e a do} mic osegundos n")
e a do_ac ual = nue o_ e a do
b eak # Sali del bucle si hay un comando ecibido
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
69
5.1.2. P og ama ecep o
Pe eb e les dades ia Wi-Fi es p og ama un codi Py hon a l’edi o Visual S udio Code. El
p og ama implemen a un se ido TCP que ep les dades, les egis a amb una capçale a de
emps i les gua da en i xe s indi iduals.
Inicialmen , s’impo en les llib e ies necessà ies pe a la p og amació. Les llib e ies u ili zades
en aques codi son pa de la biblio eca es ànda d de Py hon, pe an , no eque eixen
ins al·lació addicional. Són les següen s:
- Socke : C ea i ges iona la connexió TCP del se ido . Escol a, accep a connexions i ep i
en ia dades.
- Da e ime: Ob é la da a i l’ho a ac uals pe inclou e-les en els egis es i dona o ma a
les da es pe gene a els noms dels i xe s.
- Os: Manipula u es, ges iona i xe s i assegu a que els noms de i xe s i di ec o is siguin
co ec es segons el sis ema ope a iu.
A con inuació, es con igu a el se ido pel qual es eb an les dades. HOST='0.0.0.0' indica que el
se ido escol a à connexions a o es les in e ícies de xa xa disponibles. PORT=65432 especi ica
el po TCP en què el se ido es a à escol an .
Seguidamen , es c ea el “socke ” TCP (amb socke .SOCK_STREAM) i es con igu a lligan -lo a
l'ad eça i po especi ica s. Finalmen , s’ac i a el mode d'escol a (lis en), espe an connexions
en an s.
Desp és, es de ineix la ca pe a on es gua da an les dades ebudes. Aques a es po pe sonali za
segons les necessi a s.
Pos e io men , es ges iona la connexió. S’accep a una connexió en an i s’ob é la in o mació
del clien (ad eça i po ). La connexió es ges iona dins d’un bloc wi h, pe assegu a que es anca
co ec amen .
To segui , es eben les dades. S’iniciali za una a iable “ ull_da a” pe acumula els agmen s
de dades. S’u ili za un bucle pe eb e agmen s de ins a 8196 by es pe e i a p oblemes de
dimensionamen . Si no hi ha més dades, es su del bucle.
A con inuació, es p ocessen les dades ebudes. Es con e eixen les dades ebudes de by es a
una cadena (amb la unció “decode('u -8')”), s’ob é la da a i l’ho a ac ual amb “da e ime.now()”
i es p epa a un egis e amb el o ma desi ja , incloen -hi l’indicado de emps.
Seguidamen , s’emmaga zemen les dades. Es gene a un nom d’a xiu basa en la da a i ho a
ac ual i es gua da el egis e en un i xe dins la ca pe a especi icada.
Pe acaba , s’en ia una espos a al clien con i man que les dades s’han ebu co ec amen .
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
70
Aques codi ha d’es a semp e en execució pe eb e les dades quan siguin en iades.
impo socke
om da e ime impo da e ime
impo os
# Con igu ación del se ido
HOST = '0.0.0.0' # Escucha en odas las in e aces
PORT = 65432 # Pue o en el que escucha
# C ea un socke TCP
wi h socke .socke (socke .AF_INET, socke .SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.lis en() # Pone el socke en modo de escucha
p in ( "Se ido escuchando en {HOST}:{PORT}")
# Ca pe a donde se gua dan las lec u as
ca pe a_da os = 'C: Use s ma cg OneD i e Esc i o io UNI TFG codigo_py hon Da os
ecibidos'
while T ue:
# Espe a po una conexión
conn, add = s.accep ()
wi h conn:
p in ( "Conec ado po {add }")
ull_da a = b'' # Inicializa un con enedo pa a los da os comple os
while T ue:
# Recibi da os (máx. 2048 by es po agmen o)
da a = conn. ec (8196)
i no da a:
b eak # Si no hay más da os, inaliza la ecepción
ull_da a += da a # Acumula los da os ecibidos
# Con e i los da os ecibidos a cadena y p ocesa las lis as
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
71
ecei ed_message = ull_da a.decode('u -8')
# Ob ene la ho a ac ual
echa_ac ual = da e ime.now()
log_message = "$G2CV,{ echa_ac ual},{ ecei ed_message} n"
# Gene a un nomb e de a chi o único basado en la echa y ho a ac ual
nomb e_a chi o = os.pa h.join(ca pe a_da os, "{ echa_ac ual.s ime('%Y-%m-
%d_%H-%M-%S')}. x ")
# Imp imi y gua da en un a chi o nue o pa a cada ecepción de da os
p in (log_message)
wi h open(nomb e_a chi o, 'a') as ile:
ile.w i e(log_message)
# Responde al clien e con i mando la ecepción
conn.sendall(b'Da os ecibidos co ec amen e')
Les dades es gua den en un a xiu de ex amb un nom de l’es il: 2024-09-30T071001Z.
Figu a 39. Exemple de documen gene a amb les dades mesu ades. Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
72
5.1.3. P og ama pe ep esen a g à icamen
Un cop ebudes i ac ades les dades de co en i ensió, in e essa e una ep esen ació g à ica
pe anali za la co ba I-V i eu e el compo amen de les plaques sola s. Es p og ama un codi a
Visual S udio Code que aga a l’a xiu c ea amb el codi de ecepció, p ocessa les dades i a la
ep esen ació g à ica.
Pe comença , s’impo en les llib e ies necessà ies pe al desen olupamen del p og ama. En
aques cas són les següen s:
- Ma plo lib.pyplo : llib e ia de Py hon pe gene a g à ics i isuali zacions. És una eina
mol e sà il pe c ea g à ics bidimensionals.
- Numpy: llib e ia pe al càlcul numè ic i la manipulació e icien de ma ius i a ays. És
especialmen ú il pe eballa amb g ans quan i a s de dades g àcies a la se a
op imi zació pe a ope acions ec o i zades.
Seguidamen , es de ineix la u a del i xe que con é les dades i s'iniciali zen dues llis es:
“co ien e” i “ ension” pe emmaga zema els alo s de co en i ensió. Es llegeix el i xe línia
a línia: Es busquen els índexs de "c" (co en ) i " " ( ensió) i es p ocessen els alo s numè ics
associa s a cada ipus i es gua den a les espec i es llis es.
A con inuació, es e i ica que les llis es de co en i ensió inguin la ma eixa longi ud, i en cas
necessa i, es e allen pe què es iguin alineades.
Desp és, es il en les dades. Es de ineix la unció “ il a _po _ alo _minimo”, que il a les dades
a pa i del alo mínim: Si es il a pe co en , s'iden i ica el mínim de la llis a “co ien e” i es
e allen an “co ien e” com “ ension” des de la posició d'aques mínim. Si es il a pe ensió,
es a el ma eix, pe ò u ili zan el mínim de la llis a “ ension”.
En úl im lloc, es gene en dos conjun s de 3 g à ics cadascun: un pe a les dades c ues (sense
il a ) i un al e pe a les dades il ades. Les g à iques c ues es componen pel co en i la ensió
c us espec e als índexs i la co ba I-V (co en s ensió). Els g à ics il a s són els ma eixos pe ò
desca an anomalies o “ou lie s”. El pa àme e “ il a _po ” (que po se 'co ien e' o ' ension')
de e mina quin ipus de alo mínim s'u ili za pe il a les dades abans de gene a els g à ics.
impo ma plo lib.pyplo as pl
impo numpy as np
# Ru a del a chi o
u a_a chi o = 'C: Use s ma cg OneD i e Esc i o io UNI TFG codigo_py hon Da os
ecibidos 2024-12-03_13-16-12. x '
# Lis as pa a almacena co ien e y ensión
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
79
s.bind((HOST, PORT))
s.lis en() # Pone el socke en modo de escucha
p in ( "Se ido escuchando en {HOST}:{PORT}")
# Ca pe a donde se gua dan las lec u as
ca pe a_da os = 'C: Use s cou se Documen s GIRASOL2 da a'
# Ve i ica si la ca pe a exis e, de lo con a io, c ea la
i no os.pa h.exis s(ca pe a_da os):
os.makedi s(ca pe a_da os)
# Inicializa g á icos
pl .ion() # Ac i a el modo in e ac i o de Ma plo lib
ig, axs = pl .subplo s(3, 1, igsize=(10, 12))
line_co ien e, = axs[0].plo ([], [], 'g-o', label='Co ien e (A)')
line_ ension, = axs[1].plo ([], [], ' -o', label='Tensión (V)')
line_ i, = axs[2].plo ([], [], 'b-o', label='Cu a V-I')
axs[0].se _ i le('Co ien e en Tiempo Real')
axs[0].se _xlabel('Tiempo (s)')
axs[0].se _ylabel('Co ien e (A)')
axs[0].g id(T ue)
axs[1].se _ i le('Tensión en Tiempo Real')
axs[1].se _xlabel('Tiempo (s)')
axs[1].se _ylabel('Tensión (V)')
axs[1].g id(T ue)
axs[2].se _ i le('Cu a V-I')
axs[2].se _xlabel('Tensión (V)')
axs[2].se _ylabel('Co ien e (A)')
axs[2].g id(T ue)
while T ue:
# Espe a po una conexión
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
80
conn, add = s.accep ()
wi h conn:
p in ( "Conec ado po {add }")
y:
ull_da a = b'' # Inicializa un con enedo pa a los da os comple os
while T ue:
# Recibi da os (máx. 8196 by es po agmen o)
da a = conn. ec (8196)
i no da a:
b eak # Si no hay más da os, inaliza la ecepción
ull_da a += da a # Acumula los da os ecibidos
# P ocesa los da os ecibidos
ecei ed_message = ull_da a.decode('u -8').s ip()
# C ea el imes amp en el o ma o deseado
echa_ac ual = da e ime.u cnow()
imes amp = echa_ac ual.s ime('%Y-%m-%dT%H%M%SZ')
# Nomb e del a chi o con el nue o o ma o
nomb e_a chi o = os.pa h.join(ca pe a_da os, "{ imes amp}. x ")
# Fo ma o del con enido del a chi o
con enido = "$G2CV,{ echa_ac ual.iso o ma ()}Z,eui-
70b3d57ed00667 e,{ ecei ed_message}"
# Gua da en el a chi o
wi h open(nomb e_a chi o, 'w') as ile:
ile.w i e(con enido)
p in ( "Da os gua dados en {nomb e_a chi o}:{con enido}")
# Sepa a los da os de co ien e y ensión
alo es = ecei ed_message.spli (',')
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
81
i 'c' in alo es and ' ' in alo es:
indice_c = alo es.index('c')
indice_ = alo es.index(' ')
co ien e = [ loa ( ) o in alo es[indice_c + 1:indice_ ] i .s ip()]
ension = [ loa ( ) o in alo es[indice_ + 1:] i .s ip()]
# Asegu a que las lis as ienen la misma longi ud
min_longi ud = min(len(co ien e), len( ension))
co ien e = co ien e[:min_longi ud]
ension = ension[:min_longi ud]
# Gene a el eje X en o ma o iempo
iempo = np.linspace(0, min_longi ud / SAMPLING_RATE, num=min_longi ud,
endpoin =False)
i min_longi ud > 0: # Ve i ica que hay da os álidos
# Ac ualiza g á icos
line_co ien e.se _da a( iempo, co ien e)
line_ ension.se _da a( iempo, ension)
line_ i.se _da a( ension, co ien e)
# Ajus a lími es de los ejes
axs[0].se _xlim(0, max( iempo))
axs[0].se _ylim(min(co ien e) - 0.1, max(co ien e) + 0.1)
axs[1].se _xlim(0, max( iempo))
axs[1].se _ylim(min( ension) - 0.1, max( ension) + 0.1)
axs[2].se _xlim(min( ension) - 0.1, max( ension) + 0.1)
axs[2].se _ylim(min(co ien e) - 0.1, max(co ien e) + 0.1)
# Re esca los g á icos
pl .pause(0.1)
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
82
# En ia con enido al se ido UDP
y:
wi h socke .socke (socke .AF_INET, socke .SOCK_DGRAM) as send_socke :
send_socke .send o(con enido.encode('u -8'), (SEND_HOST, SEND_PORT))
p in ( "Con enido en iado a {SEND_HOST}:{SEND_PORT}")
excep Excep ion as send_e o :
p in ( "E o al en ia los da os al se ido UDP: {send_e o }")
# Responde al clien e con i mando la ecepción
conn.sendall(b'Da os ecibidos co ec amen e')
excep Excep ion as e:
p in ( "E o al p ocesa la conexión: {e}")
conn.sendall(b'E o al p ocesa los da os')
Figu a 42. Rep esen ació co en , ensió i co ba I-V. Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
83
Figu a 43. Rep esen ació de la co ba I-V a LabVIEW. Fon : P òpia
A més, un segon p og ama de LabVIEW é la unció de il a els alo s "ou lie s" i ep esen a
la co ba il ada. Aques p og ama ambé pe me supe posa les co bes successi amen pe
anali za el compo amen del panell al lla g del emps. Aques a uncionali a és especialmen
ú il pe obse a l’e olució del co en gene a , des de les p ime es ho es del ma í ins que el sol
assoleix el seu pun més al .
Figu a 44. Co ba I-V il ada a LabVIEW. Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
84
5.1.5. P og ama pe ep esen a g à icamen pel po sè ie
En cas de no disposa de connexió a Wi-Fi, les dades només són en iades pel po sè ie. Pe això,
és necessa i un p og ama que aga i aques es dades i les ep esen i g à icamen . Així doncs, es
p og ama un codi que llegeix dades en emps eal del disposi iu connec a al po sè ie, les
p ocessa i les isuali za en g à ics in e ac ius ac uali za s con ínuamen .
Les p incipals di e ències espec e al p og ama que ep les dades pe Wi-Fi són les
con igu acions inicials (en comp es de con igu a un se ido es con igu a el po sè ie) i la
lec u a de dades (es llegeixen di ec amen els alo s en ia s, no es c ea cap a xiu).
A més, s’ha d’impo a la llib e ia se ial, que pe me la comunicació amb disposi ius a a és de
po s sè ie.
impo se ial
impo ma plo lib.pyplo as pl
impo numpy as np
# Con igu ación del pue o se ie
PUERTO = 'COM13' # Cambia según el pue o que se use
BAUDIOS = 115200
# Inicializa conexión se ie
se = se ial.Se ial(PUERTO, BAUDIOS, imeou =1)
# Con igu ación de las g á icas
pl .ion()
ig, axs = pl .subplo s(3, 1, igsize=(10, 12))
# Con igu a subg á icas
# G á ica de Co ien e s Índice
axs[0].se _ i le('Co ien e en Tiempo Real')
axs[0].se _xlabel('Índice')
axs[0].se _ylabel('Co ien e (A)')
axs[0].g id(T ue)
# G á ica de Tensión s Índice
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
85
axs[1].se _ i le('Tensión en Tiempo Real')
axs[1].se _xlabel('Índice')
axs[1].se _ylabel('Tensión (V)')
axs[1].g id(T ue)
# G á ica de Cu a I-V
axs[2].se _ i le('Cu a I-V (Co ien e s Tensión)')
axs[2].se _xlabel('Tensión (V)')
axs[2].se _ylabel('Co ien e (A)')
axs[2].g id(T ue)
# Va iables pa a las líneas g á icas
line_co ien e, = axs[0].plo ([], [], 'g-o', label='Co ien e (A)')
line_ ension, = axs[1].plo ([], [], ' -o', label='Tensión (V)')
line_i , = axs[2].plo ([], [], 'b-o', label='Cu a I-V')
while T ue:
y:
# Lee línea desde el pue o se ie
linea = se . eadline().decode('u -8', e o s='igno e').s ip()
i linea:
p in ( "Da o ecibido: {linea}")
# P ocesa los da os
alo es = linea.spli (',')
i 'c' in alo es and ' ' in alo es:
indice_c = alo es.index('c')
indice_ = alo es.index(' ')
# Ex ae y con e i a lo an es los da os de co ien e y ensión
co ien e = [ loa ( ) o in alo es[indice_c + 1:indice_ ]]
ension = [ loa ( ) o in alo es[indice_ + 1:]]
# Asegu a se de que las lis as engan la misma longi ud
min_longi ud = min(len(co ien e), len( ension))
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
86
co ien e = co ien e[:min_longi ud]
ension = ension[:min_longi ud]
# Ac ualiza las g á icas
# Co ien e s Índice
line_co ien e.se _da a( ange(len(co ien e)), co ien e)
axs[0].se _xlim(0, len(co ien e) - 1)
axs[0].se _ylim(min(co ien e) - 0.1, max(co ien e) + 0.1)
# Tensión s Índice
line_ ension.se _da a( ange(len( ension)), ension)
axs[1].se _xlim(0, len( ension) - 1)
axs[1].se _ylim(min( ension) - 0.1, max( ension) + 0.1)
# Cu a I-V
line_i .se _da a( ension, co ien e)
axs[2].se _xlim(min( ension) - 0.1, max( ension) + 0.1)
axs[2].se _ylim(min(co ien e) - 0.1, max(co ien e) + 0.1)
# Ac ualiza el g á ico
pl .pause(0.1)
excep Keyboa dIn e up :
p in ("Finalizando...")
b eak
excep Excep ion as e:
p in ( "E o : {e}")
con inue
# Ce a el pue o se ie al inaliza
se .close()
L’incon enien d’execu a aques p og ama és que no es po eni obe el e minal de
comunicació amb el po sè ie, pe an , no es poden eb e ni en ia cap ipus de dades o
comandes. Pe exemple, no es pod ia can ia el e a d en e mos es ni es pod ia e el einici
del mic ocon olado .
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
87
5.2. Ajus os en la PCB
Un cop p og ama s els codis d’en iamen i de ecepció, s’ajus en alguns componen s de les 4
PCB pe a un millo uncionamen :
- Se solda el díode D1 que s’ha ia e pe eali za algunes p o es.
- Se solden els i apins emella que al a en en algunes PCB.
Figu a 45. PCB (de all al díode D1 i als i apins solda s). Fon : P òpia
- Se subs i ueix la esis ència shun (R17) de 50 mΩ pe una de 0,1 Ω (100 mΩ) pe
augmen a la ensió mesu ada amb l'ADC. Pe disponibili a , es solden dues esis ències
en sè ie de 50 mΩ cadascuna, i pe manca d'espai, es a a la pa pos e io de la PCB.
- Es alla la connexió del condensado C37 pe ga an i l’a ibada dels 3,3 V.
Figu a 46. Pa pos e io de la PCB (de all esis ència shun i all condensado C37). Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
88
A més, s'han eali za p o es amb ansis o s MOSFET IRLB8721 pe a alua la iabili a de
subs i ui els elés. Cada elé se ia eemplaça pe un conjun de dos ansis o s, de mane a que,
pe compli la unció de commu ació, un ansis o condui ia men e l'al e omand ia en all.
S'u ili za un ansis o NPN com a in e so pe con ola l'ac i ació de la base del MOSFET. Quan
el pin del mic ocon olado es à en es a baix, el ansis o pe me el pas de ensió des de la
placa sola ins a la base del MOSFET, ac i an -lo i pe me en que la ensió de la placa sola
lueixi cap a la cà ega o el ci cui desi ja . Aques disseny p opo ciona una unció de
commu ació simila a la dels elés.
Figu a 47. Ci cui de commu ació amb MOSFET. Fon : P òpia
Aques can i pe me ia assoli di e ses millo es en compa ació amb l’ús dels elés:
- Silenci: No comp en amb pa s mecàniques que gene in so oll du an la commu ació.
- Du ació: No pa eixen desgas mecànic com els elés adicionals.
- Rapidesa: Són capaços de commu a a g an eloci a .
To i que enen un incon enien : la esis ència de conducció (Rds(on)), que en aques cas és de
0,022 Ω. To i se baixa, aques a esis ència gene a pè dues. Una solució pod ia se la
implemen ació de dos MOSFET en pa al·lel pe edui la po ència dissipada, ja que amb un
co en de 10 A es gene a ien 2,2 W.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
95
6. Anàlisi de sos enibili a i implicacions è iques
6.1. Anàlisi mediambien al
El p ojec e se cen a e mamen a impulsa les ene gies eno ables, con ibuin així a la educció
de la con aminació i a la millo a del medi ambien . En p omou e l’ús de l’ene gia sola , es edueix
signi ica i amen la dependència de on s ene gè iques con aminan s i no eno ables,
omen an una ansició cap a un model més sos enible i espec uós amb el plane a.
La majo pa del ma e ial u ili za pe al desen olupamen del p ojec e ja es enia p è iamen ,
i només s’ha adqui i el ma e ial es ic amen imp escindible i insubs i uïble. Pe exemple, en
cas de no disposa d’una esis ència de 100 mΩ, s’ha op a pe col·loca dues de 50 mΩ en sè ie
com a solució al e na i a.
A més, s’ha p io i za subs i ui componen s amb desgas i una ida ú il limi ada pe al es més
du ado s, minimi zan així la necessi a de man enimen u u .
No obs an això, un aspec e nega iu del desen olupamen ha es a la pè dua de di e sos
mic op ocessado s a causa de sob e ensions, un p oblema que es pod ia ha e p e ingu
implemen an mesu es de segu e a adequades du an les p o es i el mun a ge.
A més, pe eb e les dades mesu ades, cal un disposi iu que es man ingui encès de o ma
con ínua, e que implica un consum ene gè ic conside able. De mi jana, un o dinado
consumeix 0,2 kWh, i du an la eali zació del p ojec e ha es a en uncionamen du an unes
750 ho es. L’ene gia u ili zada pe aques o dinado p o é de on s sola s, que gene en 30 gCO₂
pe kWh. Pe an , l’elabo ació del p ojec e ha gene a ap oximadamen 4.500 g ams de CO₂.
Els componen s u ili za s són de RS Componen s, emp esa conscienciada amb el
desen olupamen mediambien al i social. El no emb e de 2021, RS a p esen a el seu pla
d'acció ESG, "Pe un món millo ", que es ableix qua e objec ius globals i 15 ambicioses
inicia i es pe assoli abans de 2030. Aques pla ambé dona supo a sis dels objec ius de
desen olupamen sos enible de les Nacions Unides i posa les bases pe a l'es a ègia a lla g
e mini de l'emp esa ins a l'any 2050.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
96
6.2. Anàlisi econòmic
Econòmicamen , el cos del p ojec e ha es a eduï . Només s’han adqui i els mic ocon olado s
i alguns componen s de baix cos , com esis ències o ansis o s. Tal com s’ha esmen a
an e io men , es disposa a de la majo pa dels componen s necessa is, i s’han busca
al e na i es pe e i a la comp a de nous ma e ials.
El cos dels ma e ials pe la eali zació del p ojec e ha es a :
Componen
Uni a s
P eu uni a i (€)
P eu o al (€)
Raspbe y Pi Pico W
4
12,00
48,00
Raspbe y Pi Pico amb ESP8285
2
8,00
16,00
Resis ència SMD 10 mΩ
20
0,08
1,60
Resis ència SMD 20 mΩ
20
0,08
1,60
Resis ència SMD 30 mΩ
20
0,08
1,60
Resis ència SMD 40 mΩ
20
0,08
1,60
Resis ència SMD 50 mΩ
20
0,08
1,60
Resis ència SMD 100 mΩ
20
0,08
1,60
Resis ència SMD 200 mΩ
20
0,08
1,60
Resis ència SMD 300 mΩ
20
0,08
1,60
Resis ència SMD 400 mΩ
20
0,08
1,60
Resis ència SMD 500 mΩ
20
0,08
1,60
Díode PMEG3010ER,115
20
0,128
2,56
Mos e IRLB8721
10
1,299
12,99
TOTAL
99,55
D’al a banda, amb els ajus os eali za s a la PCB, se ia possible desen olupa una no a e sió
que in eg és o es les millo es i es igués op imi zada. To i que aques a ac uali zació compo a ia
una despesa econòmica addicional, pe me ia pe ecciona el sis ema i assegu a -ne una
implemen ació més e icien .
Pel que a al cos de ecu sos humans, s'han dedica 500 ho es a l'elabo ació del p ojec e. Amb
un sou mi jà de 15,58 €/ho a d’enginye , això suposa ia una despesa ap oximada de 7.790 €.
Finalmen , amb les op imi zacions implemen ades a la PCB i al p og ama, el cos global es
edui ia signi ica i amen . La aó és que els ansis o s són més econòmics que els elés i
l’ULN2003, i el ha dwa e LoRa no és necessa i, ja que la connexió s’es ableix mi jançan un
ou e Wi-Fi.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
97
Si es olgués p odui el açado come cialmen , el cos dels ma e ials se ia el següen :
Componen
Uni a s
P eu uni a i (€)
P eu o al (€)
ULN2003
1
0,361
0,361
XY308-2.54-2P
3
2,5
7,5
PMEG3010ER,115
1
0,18
0,18
LM4040AIM3-3.0+T
1
3,14
3,14
TS-1187-1816
1
0,058
0,058
DBT50G-7.62-2P-BK-P
3
0,245
0,735
V56MLA1206NH
1
1,23
1,23
B-5R0V474-R
1
2,318
2,318
AP2007SPER
1
0,26
0,26
1SMB5913BT3G
2
0,38
0,76
SRD-05VDC-SL-C
4
1,55
6,2
Resis encia 10k
5
0,13
0,65
Resis encia 470
3
0,41
1,23
Led
3
0,25
0,75
Resis encia 1k
2
0,371
0,742
NTC
1
0,604
0,604
Induc o 4,7uH
1
0,777
0,777
Condensado 4,7uF
1
1,848
1,848
Condensado 330uF
1
0,239
0,239
Bobina 3,3uH
1
1,06
1,06
Condensado 22uF
1
0,409
0,409
Resis encia 100k
1
0,493
0,493
Resis encia 33k
1
0,47
0,47
Resis encia 953k
1
0,435
0,435
Resis encia 56k
1
0,42
0,42
Condensado 470uF
2
1,15
2,3
Resis encia 0,1
1
0,139
0,139
Raspbe y Pi Pico W
1
12
12
Ti apins amella
2
0,99
1,98
Ti apins mascle
40
0,005
0,2
Con e ido DC-DC
1
16,94
16,94
Regulado de ensió
1
2,74
2,74
PCB
1
1,2
1,2
TOTAL
70,37
A més, s’hau ia d’a egi el cos de mun a ge i soldadu a de la PCB i el p og ama de lec u a i
ansmissió de dades i el de ecepció, ac amen i ep esen ació g à ica, que es pod ia
come ciali za com una llicència.
El mun a ge i soldadu a es eali za en 10 ho es, amb un cos d’11,40 €/ho a pe al soldado ,
suman un o al de 114 €. La llicència dels p og ames ind ia un cos de 250 €. En conjun , el cos
o al del maquina i i el p og ama i ascendi ia a 434,37 €.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
98
Al me ca , els equips de mesu a enen un cos ele a : els més econòmics no baixen dels 1.500
€, els de gamma in e mèdia oscil·len al ol an dels 10.000 €, i els a ança s poden supe a els
25.000 €. Pe an , el nos e açado ep esen a ia una al e na i a mol més econòmica en
compa ació amb els equips de mesu a exis en s, o e in una solució compe i i a i assequible.
Figu a 60. Mapa de posicionamen del açado . Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
99
6.3. Anàlisi Social
Des del pun de is a social, el p ojec e omen a l'ús d'ene gies eno ables, un bene ici pe a o a
la socie a , ja que con ibueix a la millo a del medi ambien i edueix les malal ies associades a
la con aminació, cosa que millo a la salu pública.
A més, la ansició cap a no es on s d'ene gia po es imula la c eació de llocs de eball,
con ibuin a edui les desigual a s de gène e p esen s a la indús ia dels combus ibles òssils.
Aques a opo uni a és especialmen elle an pe p omou e una indús ia més inclusi a i
equi a i a.
També s’a a o eix el desen olupamen de països ulne ables, ja que les ins al·lacions d’ene gia
sola eque eixen in e sions inicials més mode ades i són una opció excel·len pe a egions amb
mol es ho es de sol. Això po ajuda a edui les desigual a s ene gè iques globals i impulsa
l’au onomia ene gè ica d’aques s e i o is.
Des d’una pe spec i a è ica, la ansició de les ene gies con aminan s cap a eno ables, com
l’ene gia sola , po gene a deba a causa de la in e sió inicial necessà ia. No obs an això, a lla g
e mini, aques a ansició no només bene icia el plane a, sinó que ambé esul a econòmicamen
iable i sos enible, jus i ican plenamen el can i.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
100
7. CONCLUSIONS
S’ha aconsegui eali za amb èxi la lec u a de la ensió i el co en de la placa sola , així com la
ansmissió pos e io de les dades a un disposi iu ia Wi-Fi. Aques es dades es eben a a és
d’un se ido TCP, s’emmaga zemen en un a xiu de ex i es ep esen en g à icamen en emps
eal.
A més, s’han implemen a di e ses uncionali a s que millo en l’e iciència i el con ol del
sis ema. Les més des acades són:
- La comunicació cons an a a és del po sè ie, que pe me conèixe l’es a del sis ema
i, en cas de no disposa de connexió Wi-Fi, possibili a la ep esen ació de les g à iques
di ec amen mi jançan aques canal.
- La comanda de “ ese ”, que pe me einicia el mic ocon olado quan sigui necessa i.
- Les comandes de con igu ació de e a ds en e mos es pe ep esen a les g à iques
comple es du an les ho es de baixa i adiància.
També s’han e ajus os en alguns componen s de la PCB pe op imi za el uncionamen del
sis ema, i s’ha inicia l’a aluació de la possibili a de subs i ui els elés pe ansis o s, pe al de
millo a -ne la iabili a i e iciència.
Al lla g del p ojec e s’han ecolli ap oximadamen 900 co bes, on es po obse a l’e olució del
co en gene a al lla g dels dies. Es comp o a que du an la ni la gene ació de co en és mol
baixa, i a augmen an p og essi amen a mesu a que su el sol. També s’ha de ec a que, en
de e minades ho es del dia, es p odueixen des iacions causades pe omb es. Aques enomen
pod ia es a elaciona amb la inclinació de les plaques o amb la p esència de nú ols, ja que
aques es des iacions no apa eixen du an els momen s de bona i adiància.
En aques enllaç es po isuali za l’e olució de la co ba I-V al lla g de di e sos dies:
h ps://www.you ube.com/wa ch? =S -VAQuZw_0
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
101
Figu a 61. Rep esen ació co en , ensió i co ba I-V, des iació a causa d’una omb a. Fon : P òpia
Pe al a de emps, algunes idees han queda penden s de eali zació. Com a possibles millo es
u u es del ci cui i del p og ama i, es p oposa:
- Subs i ui comple amen els elés pe ansis o s.
- Implemen a un sis ema de lec u a més in el·ligen , que sigui capaç de de ec a la
i adiància i ajus a au omà icamen els e a ds.
- Millo a la ges ió d’e o s pe e el sis ema més obus .
- En ena una in el·ligència a i icial capaç d’anali za les co bes gene ades pe les
lec u es.
Compa an la comunicació Wi-Fi amb LoRa, es po conclou e que el Wi-Fi és l’opció més
adequada pe a p ojec es u bans amb ins al·lacions que ja disposen de cobe u a Wi-Fi. En can i,
pe a p ojec es en zones u als, on no hi ha accés a una xa xa Wi-Fi o les plaques es oben mol
allunyades, la connexió mi jançan LoRaWAN esul a se una al e na i a més e icien .
G àcies a aques eball he ingu l’opo uni a de posa en p àc ica els coneixemen s adqui i s
du an el g au, i he pogu ap end e concep es nous. En conc e , he eballa i ap o undi en els
següen s àmbi s:
- P og amació amb Mic oPy hon i Py hon.
- Ene gia sola o o ol aica.
- Sis emes elec ònics.
- Ins umen ació elec ònica.
- Soldadu a de componen s.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
102
8. AGRAÏMENTS
M’ag ada ia dedica unes pa aules especials d’ag aïmen a o es aquelles pe sones que han e
possible la eali zació d’aques eball de inal de g au. Sense el os e supo , no hau ia es a
possible.
En p ime lloc, ull exp essa el meu since ag aïmen al u o del p ojec e, el Joaquín del Rio,
pe o a la se a ajuda, guia i coneixemen s compa i s al lla g d’aques p océs. Han es a mol es
ho es de eball, p o es i ap enen a ges que han ma ca un abans i un desp és en aques camí.
També old ia dona les g àcies als memb es del SARTI, no només pe pe me e’m eballa a
les se es ins al·lacions, sinó ambé pel ac e excel·len i el supo cons an que he ebu en
aques en o n.
Un ag aïmen mol especial a la me a amília, pe la se a paciència, comp ensió i mo i ació
incondicional du an o aques camí. Ha es a un p océs lla g i exigen , pe ò amb el os e
supo semp e he ingu o ces pe con inua enda an .
Ag ai ambé a la me a pa ella, la Ma ina Sun, pe o a l'ajuda i supo que m'ha b inda du an
aques p océs. G àcies a u, aques a e apa ha es a mol més lleuge a i ag adable, i sé que no
hau ia pogu e aques p ojec e sense la e a p esència i ecolzamen cons an .
Finalmen , g àcies als amics que han es a al meu cos a , o e in -me momen s de desconnexió,
di e sió i ànims quan més els he necessi a . Els bons momen s compa i s amb osal es han
es a claus pe con inua aques ia ge amb il·lusió.
G àcies de o co a cadascun de osal es. Tanco una e apa mol en iquido a de la me a ida i
em p epa o amb en usiasme pe als nous camins que s’ob en.
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
103
9. REFERÈNCIES
[1] JAMES, O., 2024. T azado de cu as I-V inalámb ico pa a paneles sola es [en línia].
[Consul a: 15 de no emb e de 2024]. Disponible a: ch ome-
ex ension://e aidnbmnnnibpcajpcglcle indmkaj/h ps://upcommons.upc.edu/bi s ea
m/handle/2117/406967/Memo ia-TFE-
Osca %20James%20Siboco.pd ?sequence=4&isAllowed=y
[2] IBERDROLA, 2022. ¿Cómo uncionan las placas sola es o o ol aicas? [en línia].
[Consul a: 18 d’oc ub e de 2024]. Disponible a:
h ps://www.ibe d ola.com/inno acion/como- uncionan-placas-sola es-
o o ol aicas#:~: ex =Los%20paneles%20sola es%20son%20los,en%20elec icidad%20
que%20pueda%20ap o echa se
[3] SOLAR 360, 2023. Tipos de Placas Sola es [en línia]. [Consul a: 18 d’oc ub e de 2024].
Disponible a: h ps://www.sola 360.es/blog/au oconsumo/ ipos-placas-sola es
[4] SOTYSOLAR, 2024. ¿Cómo uncionan las placas sola es en una casa? [en línia]. [Consul a:
18 d’oc ub e de 2024]. Disponible a: h ps://so ysola .es/blog/placas-sola es-como-
uncionan
[5] SOTYSOLAR, 2024. Tipos de placas sola es en 2025 [en línia]. [Consul a: 3 de gene de
2025]. Disponible a: h ps://so ysola .es/blog/placas-sola es-
ipos?u m_sou ce=google&u m_medium=cpc&u m_campaign=sea ch_dsa&gad_sou c
e=1&gclid=CjwKCAiAnKi8BhB0EiwA58DA4ei8gbe eAxUKWFg2Ij-
bi0eCpOsUd7MmzCjUeYHldsbGXU pNE7ZRoCj oQA D_BwE
[6] SUNFIELDS EUROPE, 2024. Tipos de paneles sola es [en línia]. [Consul a: 3 de gene de
2025]. Disponible a: h ps://www.s e-sola .com/no icias/a iculos/ ipos-de-placas-
sola es/#Cuales-son-los- ipos-de-paneles-sola es- o o ol aicos
[7] EDP, 2023. Úl imos a ances en ecnología o o ol aica [en línia]. [Consul a: 3 de gene
de 2025]. Disponible a: h ps://www.edpene gia.es/es/blog/ene gia-
o o ol aica/ul imos-a ances- ecnologia- o o ol aica/
[8] HIOKI, 2022. Inspección de p uebas de co ien e de ci cui o de cadena pa a sis emas
sola es o o ol aicos [en línia]. [Consul a: 18 d’oc ub e de 2024]. Disponible a:
h ps://www.hioki.com/us-es/indus ies-solu ions/ acili ies/p -cu en .h ml
[9] CLEVER SOLAR DEVICES, 2020. Po qué son an impo an es las Cu as IV [en línia].
[Consul a: 18 d’oc ub e de 2024]. Disponible a: h ps://www.cle e sd.com/es/blog/que-
son- an-impo an es-cu as-i
[10] FLUKE, 2023. Como analiza las cu as I-V [en línia]. [Consul a: 18 d’oc ub e de 2024].
Disponible a: h ps://www. luke.com/es-es/in o macion/blog/ene gia-
eno able/analiza -cu as-i
[11] SEAWARD, 2021. Cu e T acing FAQ's [en línia]. [Consul a: 18 d’oc ub e de 2024].
Disponible a: h ps://www.seawa d.com/gb/suppo /sola / aqs/29495-cu e- acing-
aq-s/#1
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
104
[12] HT INSTRUMENTS, 2022. Medido es cu a I-V [en línea]. [Consul a: 18 d’oc ub e de
2024]. Disponible a: h ps://www.h -ins umen s.com/es-
es/p oduc os/ins umen acion- o o ol aica/medido es-cu a-i- /
[13] PROOFPOINT, 2020. ¿Qué es el wi i? [en línea]. [Consul a: 3 de no emb e de 2024].
Disponible a: h ps://www.p oo poin .com/es/ h ea -
e e ence/wi i#:~: ex =Wi i%2C%20que%20es%20una%20con acci%C3%B3n, ed%20
median e%20 ecuencias%20de%20 adio
[14] CONCEPTO, 2024. WIFI [en línia]. [Consul a: 3 de no emb e de 2024]. Disponible a:
h ps://concep o.de/wi i/
[15] GENERACIÓN IOT, 2023. Compa a i a en e LoRa y WiFi. Es as son las en ajas y las
des en ajas... [en línea]. [Consul a: 3 de no emb e de 2024]. Disponible a:
h ps://in e ne delascosas.xyz/a iculo.php?id=3917
[16] EBYTE, 2023. LoRa s Wi-Fi: una compa ación de ecnologías de comunicación
inalámb ica [en línea]. [Consul a: 3 de no iemb e de 2024]. Disponible a:
h ps://www.es-eby e.com/news/500
[17] RASPBERRY PI, 2024. Disponible a: h ps://www. aspbe ypi.com/
[18] RASPBERRY PI, 2024. RP2040 wi h ESP8285 on boa d [en línia]. [Consul a: 7 d’oc ub e de
2024]. Disponible a:
h ps:// o ums. aspbe ypi.com/ iew opic.php? =361532&s a =50
[19] RS IBÉRICA, 2024. FTDI Chip TTL-232RG-VSW5V-WE. Disponible a: h ps://es. s-
online.com/web/p/acceso ios-pa a-ki s-de-
desa ollo/7300155?s sl id=A mBOoo0K5S3R V Oqqmy aWYzRKWX0VMAVGKW dJhn
DE3buMpE7pWd
[20] THONNY, 2024. Disponible a: h ps:// honny.o g/
[21] MICROPYTHON, 2024. Disponible a: h ps://mic opy hon.o g/
[22] VISUAL STUDIO CODE, 2024. Disponible a: h ps://code. isuals udio.com/
[23] TERA TERM, 2024. Disponible a: h ps:// e a e mp ojec .gi hub.io/index-en.h ml
[24] PYTHON, 2024. Disponible a: h ps://es.py hon.o g/
[25] SOFTWARE.INFORMER, 2024. Disponible a: h ps://pspice-s uden .in o me .com/9.1/
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
111
Figu a 73. Ci cui pe subs i ui el elé 3. Fon : P òpia
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
112
10.3. Codis
10.3.1. Codi pe la Raspbe y Pi Pico W amb Mic oPy hon
om machine impo ADC, Pin, UART
impo ime
impo ne wo k
impo socke
impo ma h
impo u ime
# Con igu ación de pines pa a los elés
ele1 = Pin(6, Pin.OUT)
ele2 = Pin(7, Pin.OUT)
ele3 = Pin(8, Pin.OUT)
ele4 = Pin(9, Pin.OUT)
led = Pin('LED', Pin.OUT)
# Con igu ación de los pines ADC
adc_ ol aje = ADC(Pin(27))
adc_co ien e = ADC(Pin(28))
adc_n c = ADC(Pin(26))
# Con igu ación de ed
ssid = "QSARTI"
passwo d = "*********************"
# Con igu ación del pue o se ie
ua = UART(0, baud a e=115200, x=Pin(0), x=Pin(1))
# Pa padeo del LED
de blink_bien():
led.on()
ime.sleep(0.2)
led.o ()
ime.sleep(0.2)
led.on()
ime.sleep(0.2)
led.o ()
de blink_mal():
led.on()
ime.sleep(0.01)
led.o ()
ime.sleep(0.01)
led.on()
ime.sleep(0.01)
led.o ()
# Conec a al WiFi
de conec a _wi i(ssid, passwo d):
wlan = ne wo k.WLAN(ne wo k.STA_IF)
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
113
wlan.ac i e(T ue)
# In en a conec a si no es á conec ado
i no wlan.isconnec ed():
p in ("In en ando conec a a la ed Wi-Fi...")
ua .w i e("In en ando conec a a la ed Wi-Fi... n")
wlan.connec (ssid, passwo d) # Inicia el in en o de conexión
ime.sleep(1) # Espe a b e e pa a inicializa la conexión
# Comp oba si se log ó la conexión
i wlan.isconnec ed():
p in ("Conec ado a la ed Wi-Fi")
ua .w i e("Conec ado a la ed Wi-Fi n")
ip = wlan.i con ig()[0]
p in ("Di ección IP:", ip)
ua .w i e( "Di ección IP: {ip} n")
else:
p in ("No se pudo es ablece la conexión a Wi-Fi.")
ua .w i e("No se pudo es ablece la conexión a Wi-Fi. n")
# Re o na T ue si es á conec ado, False si no
e u n wlan.isconnec ed()
# En ia lis as de da os TCP al se ido
de en ia _lis as_ cp(co ien e_ inal, ol aje_ inal):
add = ("10.5.159.155", 65432) # Cambia la IP y el pue o según sea necesa io
sock = socke .socke (socke .AF_INET, socke .SOCK_STREAM)
y:
sock.connec (add )
p in ("Conexión TCP es ablecida")
ua .w i e("Conexión TCP es ablecida n")
# Con e i las lis as a cadenas con p e ijos y en ia las comple as
co ien e_s = "c," + ",".join(map(s , co ien e_ inal)) + ','
ension_s = " ," + ",".join(map(s , ol aje_ inal)) + ','
sock.send(co ien e_s .encode('u -8')) # En ia la lis a de co ien e
sock.send( ension_s .encode('u -8')) # En ia la lis a de ol aje
excep Excep ion as e:
p in ("E o en la conexión TCP o en ío:", e)
ua .w i e("E o en la conexión TCP o en ío: n")
inally:
sock.close()
p in ("Conexión ce ada")
ua .w i e("Conexión ce ada n")
de en ia _po _ua (co ien e_ inal, ol aje_ inal, ua ):
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
114
y:
# Ob ene la echa y ho a ac ual
echa_ho a_ac ual = u ime.local ime()
echa_ho a_s = "{:04d}-{:02d}-{:02d} {:02d}:{:02d}:{:02d}". o ma (
echa_ho a_ac ual[0], # Año
echa_ho a_ac ual[1], # Mes
echa_ho a_ac ual[2], # Día
echa_ho a_ac ual[3], # Ho a
echa_ho a_ac ual[4], # Minu o
echa_ho a_ac ual[5] # Segundo
)
# C ea el encabezado con la echa y ho a
encabezado = "$G2CV," + echa_ho a_s
# Con e i las lis as a cadenas con p e ijos
co ien e_s = "c," + ",".join(map(s , co ien e_ inal))
ension_s = " ," + ",".join(map(s , ol aje_ inal))
# Conca ena odo en una sola cadena
mensaje_comple o = encabezado + "," + co ien e_s + "," + ension_s
# En ia el mensaje po UART
ua .w i e((mensaje_comple o + " n").encode('u -8'))
p in ("Da os en iados po UART")
excep Excep ion as e:
p in ("E o en el en ío po UART:", e)
# Encende los elés
de eles_on():
p in ("Reles encendidos")
ua .w i e("Reles encendidos n")
ele1. alue(1)
ele2. alue(1)
# ime.sleep(0)
ele3. alue(1)
ele4. alue(1)
# Apaga los elés
de eles_o ():
ele3. alue(0)
ele4. alue(0)
# ime.sleep(0)
ele1. alue(0)
ele2. alue(0)
p in ("Reles apagados")
ua .w i e("Reles apagados n")
# Lee alo NTC
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
115
R1 = 10000 # Resis encia en se ie con el NTC
V e = 3.3 # Vol aje de e e encia del ADC
de lee _n c(adc_ ead_coun =10):
adc_coun s = 0
o _ in ange(adc_ ead_coun ):
adc_coun s += adc_n c. ead_u16() # Lee el alo ADC (16 bi s)
ime.sleep(0.009) # Pausa de 9 ms en e lec u as
# Calcula el p omedio
adc_p omedio = adc_coun s / adc_ ead_coun
# Con ie e la lec u a ADC en un ol aje
ol age = (adc_p omedio / 65535) * V e # Ajus e pa a ADC de 16 bi s
# Calcula la esis encia del NTC usando la ley de di iso de ol aje
esis encia_n c = (R1 * (V e - ol age)) / ol age
# Usa una ecuación de ap oximación pa a con e i la esis encia del NTC en empe a u a
empe a u a = 251 - 24.5 * ma h.log( esis encia_n c)
e u n empe a u a
# Reinicia
de einicia _sis ema():
p in ("RESET")
ua .w i e("RESET n")
machine. ese () # Fo za el einicio del sis ema
# Con igu a e a do
de con igu a _ e a do_con_ iempo( e a do_ac ual):
comando = "" # Inicializamos el comando acío
iempo_inicio = ime. ime()
p in ("Ing ese un comando (D000, D010, D020, D050 o RESET). Tiempo lími e: 3 segundos.")
ua .w i e("Ing ese un comando (D000, D010, D020, D050 o RESET). Tiempo lími e: 3
segundos. n")
while T ue:
# Ve i ica si se ago ó el iempo de espe a
i ime. ime() - iempo_inicio > 3:
p in ("Tiempo ago ado. Man eniendo el e a do ac ual.")
ua .w i e("Tiempo ago ado. Man eniendo el e a do ac ual. n")
e u n e a do_ac ual
# Ve i ica si hay da os disponibles en el pue o se ie
i ua .any():
by e = ua . ead(1).decode('u -8') # Lee un by e y decodi ica lo
i by e == ' ' o by e == ' n': # De ec a el inal del comando
b eak # Sali del bucle al ecibi En e
else:
comando += by e # Acumula ca ac e es en el comando
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
116
# Ag ega una pequeña espe a pa a no sa u a la CPU
ime.sleep(0.01)
# Imp imi el comando ecibido
p in ( "Comando ecibido: '{comando}'")
ua .w i e( "Comando ecibido: '{comando}' n")
# Comp oba si el comando es " ese "
i comando == "RESET":
einicia _sis ema() # Fo za el einicio del sis ema
# Comp oba el comando ecibido y asigna el e a do co espondien e
eli comando == "D010":
p in ("Re a do con igu ado a 10 mic osegundos")
ua .w i e("Re a do con igu ado a 10 mic osegundos n")
e u n 10 # Re a do en mic osegundos
eli comando == "D020":
p in ("Re a do con igu ado a 20 mic osegundos")
ua .w i e("Re a do con igu ado a 20 mic osegundos n")
e u n 20 # Re a do en mic osegundos
eli comando == "D050":
p in ("Re a do con igu ado a 50 mic osegundos")
ua .w i e("Re a do con igu ado a 50 mic osegundos n")
e u n 50 # Re a do en mic osegundos
eli comando == "D000":
p in ("Re a do con igu ado a 0 mic osegundos")
ua .w i e("Re a do con igu ado a 0 mic osegundos n")
e u n 0 # Re a do en mic osegundos
else:
# Si el comando no es álido, da e oalimen ación
p in ( "Comando no álido: '{comando}'. Use D000, D010, D020, D050, o RESET.")
ua .w i e( "Comando no álido: '{comando}'. Use D000, D010, D020, D050, o RESET. n")
e u n e a do_ac ual # Man ene el e a do ac ual si el comando no es álido
# Lec u a de co ien e y ol aje
de lee _co ien e_y_ ol aje( e a do_us=0, num_lec u as=600):
# Lis a de alo es sin p ocesa
lec u as_co ien e_bina io = []
lec u as_ ol aje_bina io = []
o _ in ange(num_lec u as):
lec u a_co ien e = adc_co ien e. ead_u16()
lec u as_co ien e_bina io.append(lec u a_co ien e)
ime.sleep_us( e a do_us)
lec u a_ ol aje = adc_ ol aje. ead_u16()
lec u as_ ol aje_bina io.append(lec u a_ ol aje)
ime.sleep_us( e a do_us)
# Ajus e según los componen es
lec u as_co ien e = [
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
117
ound(((((lec u a)*3)*20)/65335), 2) o lec u a in lec u as_co ien e_bina io
]
lec u as_ ol aje = [
ound(((((lec u a)*3)*41)/65335), 2) o lec u a in lec u as_ ol aje_bina io
]
e u n lec u as_co ien e, lec u as_ ol aje
# Comp oba conexión Wi-Fi
de comp oba _wi i():
wlan = ne wo k.WLAN(ne wo k.STA_IF)
# Ve i ica si el Wi-Fi es á conec ado
i wlan.isconnec ed():
p in ("Wi-Fi es á conec ado.")
ua .w i e("Wi-Fi es á conec ado. n")
ip = wlan.i con ig()[0]
p in ("Di ección IP:", ip)
ua .w i e( "Di ección IP: {ip} n")
e u n T ue
else:
p in ("Wi-Fi no es á conec ado.")
ua .w i e("Wi-Fi no es á conec ado. n")
e u n False
# P oceso a ejecu a
de ejecu a _p oceso():
e a do_ac ual = 0 # Valo inicial po de ec o en mic osegundos
p in ( "Re a do inicial: { e a do_ac ual} mic osegundos")
ua .w i e( "Re a do inicial: { e a do_ac ual} mic osegundos n")
blink_bien()
led.on()
conec a _wi i(ssid, passwo d)
led.o ()
while T ue:
# Comp oba conexión Wi-Fi
wi i_disponible = comp oba _wi i()
# Con igu a el empo izado
s a _ ime = ime. ime()
p in ( "Iniciando p oceso con e a do de { e a do_ac ual} mic osegundos")
ua .w i e( "Iniciando p oceso con e a do de { e a do_ac ual} mic osegundos n")
blink_bien()
eles_on()
co ien e_ inal, ol aje_ inal = lee _co ien e_y_ ol aje( e a do_us= e a do_ac ual,
num_lec u as=600)
eles_o ()
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
118
blink_bien()
i wi i_disponible:
p in ("En iando da os po Wi-Fi y UART")
ua .w i e("En iando da os po Wi-Fi y UART n")
en ia _lis as_ cp(co ien e_ inal, ol aje_ inal) # En ia po Wi-Fi
else:
p in ("En iando da os solo po UART (Wi-Fi no disponible)")
ua .w i e("En iando da os solo po UART (Wi-Fi no disponible) n")
# En ia po UART en ambos casos
en ia _po _ua (co ien e_ inal, ol aje_ inal, ua )
blink_bien()
while T ue:
blink_bien()
# Ve i ica si han pasado 10 segundos
i ime. ime() - s a _ ime >= 120:
p in ("Ejecución au omá ica po empo izado ")
ua .w i e("Ejecución au omá ica po empo izado n")
b eak
# Ve i ica si hay da os en el pue o se ie
i ua .any(): # Si hay da os disponibles en el pue o se ie
p in ("Espe ando comando de con igu ación de e a do...")
ua .w i e("Espe ando comando de con igu ación de e a do... n")
# In en a con igu a un nue o e a do
nue o_ e a do = con igu a _ e a do_con_ iempo( e a do_ac ual)
i nue o_ e a do != e a do_ac ual:
p in ( "Re a do ac ualizado a {nue o_ e a do} mic osegundos")
ua .w i e( "Re a do ac ualizado a {nue o_ e a do} mic osegundos n")
e a do_ac ual = nue o_ e a do
b eak # Sali del bucle si hay un comando ecibido
# Llamada al p oceso
ejecu a _p oceso()
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
119
10.4. Codi pe la Raspbe y Pi Pico amb ESP8285 amb Mic oPy hon
om machine impo ADC, Pin, UART
impo ime
impo ma h
impo u ime
# Con igu ación de pines pa a los elés
ele1 = Pin(6, Pin.OUT)
ele2 = Pin(7, Pin.OUT)
ele3 = Pin(8, Pin.OUT)
ele4 = Pin(9, Pin.OUT)
led = Pin(25, Pin.OUT)
# Con igu ación de los pines ADC
adc_ ol aje = ADC(Pin(27))
adc_co ien e = ADC(Pin(28))
adc_n c = ADC(Pin(26))
# Con igu ación de ed
ssid = "QSARTI"
passwo d = "*********************"
# Con igu ación del pue o se ie
ua = UART(0, baud a e=115200, x=Pin(0), x=Pin(1))
# Pa padeo del LED
de blink_bien():
led.on()
ime.sleep(0.2)
led.o ()
ime.sleep(0.2)
led.on()
ime.sleep(0.2)
led.o ()
de blink_mal():
led.on()
ime.sleep(0.01)
led.o ()
ime.sleep(0.01)
led.on()
ime.sleep(0.01)
led.o ()
de en ia _comando_a (comando, iempo_espe a=1000):
"""En ía un comando AT al módulo ESP y e o na la espues a."""
ua .w i e(comando + " n")
ime.sleep( iempo_espe a / 1000) # Tiempo de espe a en milisegundos
espues a = ua . ead()
i espues a:
e u n espues a.decode('u -8')
Moni o i zació p e en i a de plaques sola s o o ol aiques mi jançan co ba I-V
Ma c Ga cía Monzonís
120
e u n ""
de conec a _wi i(ssid, passwo d):
"""Conec a a una ed Wi-Fi usando comandos AT."""
p in ("Inicializando el módulo ESP...")
ua .w i e("Inicializando el módulo ESP... n")
# Reinicia el módulo ESP
espues a = en ia _comando_a ("AT+RST", 2000)
p in ("Respues a al einicio:", espues a)
ua .w i e( "Respues a al einicio: { espues a} n")
# Con igu a el ESP en modo es ación
espues a = en ia _comando_a ("AT+CWMODE=1", 1000)
p in ("Con igu ando en modo es ación:", espues a)
ua .w i e( "Con igu ando en modo es ación: { espues a} n")
# Conec a a Wi-Fi
comando_conexion = 'AT+CWJAP="{ssid}","{passwo d}"'
p in ("In en ando conec a a la ed Wi-Fi...")
ua .w i e("In en ando conec a a la ed Wi-Fi... n")
espues a = en ia _comando_a (comando_conexion, 5000)
p in ("Respues a de conexión:", espues a)
ua .w i e( "Respues a de conexión: { espues a} n")
# Ve i ica si es á conec ado
i "OK" in espues a:
p in ("Conec ado a la ed Wi-Fi.")
ua .w i e("Conec ado a la ed Wi-Fi. n")
# Ob ene di ección IP
espues a = en ia _comando_a ("AT+CIFSR", 1000)
p in ("In o mación de IP:", espues a)
ua .w i e( "In o mación de IP: { espues a} n")
e u n T ue
else:
p in ("No se pudo es ablece la conexión a Wi-Fi.")
ua .w i e("No se pudo es ablece la conexión a Wi-Fi. n")
e u n False
de en ia _lis as_ cp(co ien e_ inal, ol aje_ inal):
"""En ía lis as de da os a un se ido TCP u ilizando comandos AT."""
ip_se ido = "10.5.159.155"
pue o_se ido = 65432
# Inicia la conexión TCP
p in ("Es ableciendo conexión TCP con el se ido ...")
ua .w i e("Es ableciendo conexión TCP con el se ido ... n")
comando_ cp = 'AT+CIPSTART="TCP","{ip_se ido }",{pue o_se ido }'
espues a = en ia _comando_a (comando_ cp, 5000)
p in ("Respues a de conexión TCP:", espues a)
ua .w i e( "Respues a de conexión TCP: { espues a} n")