scieee Science in your language
[es] (orig)

Diseño y desarrollo de un sistema de monitorización remoto de parámetros de la red eléctrica, basado en web y herramientas open source

Abstract

The target of this project is the design and implementation of a monophasic power network analyzer for home use. It gets the waves of tension, current and power. From these values it calculates the most important parameters of these waves as well as the power factor and armonics of the voltage and the current. The device is based on an Open Hardware controller (Raspberry pi and Arduino) and control system will be programmed by using an Open Source code. The prototype will be configured as a web server, available anywhere on the Internet (be it a private home IP, or a public IP). Therefore, the home power network parameters will be thus available remotely. As a measurement instrument, it will be subjected to testing to know the precision and measurement error.

Read accessible full text

Diseño y desarrollo de un sistema de monitorización remoto de parámetros de la red eléctrica, basado en web y herramientas open source

Author: García Granados, Araceli
Year: 2020
Source: https://idus.us.es/bitstreams/34899b8b-bd07-4238-8c98-c1f41e66d39a/download
Equa ion Chap e 1 Sec ion 1
T abajo Fin de G ado
Ingenie ía de las Tecnologías de Telecomunicación
Diseño y desa ollo de un sis ema de moni o ización
emo o de pa áme os de la ed eléc ica, basado en
web y he amien as open sou ce
Au o : A aceli Ga cía G anados
Tu o : Juan An onio Sánchez Segu a
Dp o. Ingenie ía Elec ónica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2020
T abajo Fin de G ado
Ingenie ía de las Tecnologías de Telecomunicación
Diseño y desa ollo de un sis ema de moni o ización
emo o de pa áme os de la ed eléc ica, basado en
web y he amien as open sou ce
Au o :
A aceli Ga cía G anados
Tu o :
Juan An onio Sánchez Segu a
P o eso con a ado
Dp o. Ingenie ía Elec ónica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2020
Ag adecimien os
En p ime luga desea ía ag adece al p o eso Juan An onio Sánchez Segu a po su disposición a di igi me es e
abajo, cuya idea su gió a aíz de mi colabo ación como beca ia en el depa amen o de calidad de la ed eléc ica de
Endesa.
En segundo luga a mi amilia po su apoyo incondicional en los momen os di íciles an o en la elabo ación de es e
abajo como du an e oda mi ca e a.
En e ce luga a odos los p o eso es de es a escuela po los conocimien os que me han ansmi ido.

Abs ac
The a ge o his p ojec is he design and implemen a ion o a monophasic powe ne wo k analyze o home use. I ge s
he wa es o ension, cu en and powe . F om hese alues i calcula es he mos impo an pa ame e s o hese wa es as
well as he powe ac o and a monics o he ol age and he cu en .
The de ice is based on an Open Ha dwa e con olle (Raspbe y pi and A duino) and con ol sys em will be p og ammed
by using an Open Sou ce code. The p o o ype will be con igu ed as a web se e , a ailable anywhe e on he In e ne (be
i a p i a e home IP, o a public IP). The e o e, he home powe ne wo k pa ame e s will be hus a ailable emo ely. As a
measu emen ins umen , i will be subjec ed o es ing o know he p ecision and measu emen e o .
A aceli Ga cía G anados
1
Índice gene al
Pág.
Capí ulo 0: In oducción 5
In oducción 7
Obje i o del abajo 7
Es uc u a del documen o 8
Capí ulo 1: Base eó ica 11
In oducción 13
Cálculo de po encias 13
Ca gas lineales 13
Ca gas no lineales 15
A mónicos 18
Cálculo numé ico de la dis o sión a mónica 21
Cálculo numé ico del ac o de po encia 23
Capí ulo 2: Diseño 25
In oducción 27
Raspbe y PI 3 modelo B 29
A duino DUE 31
Rou e 3G 32
Módem 3G ZTE MF-190 33
Senso de ensión con ans o mado y componen es pasi os 33
Senso de ensión con ans o mado y ope acional LM358 38
Senso de ensión con el LEM LV 25-P 40
Senso de co ien e ACS712 44
Senso de co ien e LEM LTS 6-NP 46
Relé elec omecánico 49
Relé de es ado sólido (SSR) 51
Relé de es ado sólido SSR-20DA de FOTEK 54
Ins alación del sis ema ope a i o Raspbian en la Raspbe y 54
P ime a conexión de la Raspbe y 56
Conexión Wi i de las Raspbe y y asignación de IP ija 58
Con igu ación del se icio SSH en la Raspbe y 60
Ins alación y con igu ación del se icio DDNS en la Raspbe y 61
Po Fo wa ding en el ou e ZTE H108N 63
Conexión di ec a del módem 3G ZTE MF190 en la Raspbe y 65
Ins alación y con igu ación de Tomca en la Raspbe y 67
P o ocolo UART 69
Ins alación de la lib e ía Win ingPi en la Raspbe y 72
Ins alación del IDE de A duino en el PC 73
Técnica CGI 75
Segu idad. Ins alación de co a uegos 76
Aplicación Web 77
Mon aje y uncionamien o gene al 81
Código C++ del A duino 83
Código C++ TFG/cgi/ g.c de la Raspbe y 86
Código C++ TFG/cgi/ ele.c de la Raspbe y 105
Código C++ TFG/cgi/calib a .c de la Raspbe y 107
Código C++ TFG/cgi/ egis o.c de la Raspbe y 110
Código C++ TFG/cgi/ ese A duino.c de la Raspbe y 112
A aceli Ga cía G anados
8
1. Visualización de las siguien es g á icas:
Tensión de la ed donde se conec e la ca ga.
Co ien e que ci cula po la ca ga.
Po encia ins an ánea consumida po la ca ga.
Componen e undamen al de la onda de ensión.
Componen e undamen al de la onda de co ien e.
2. Cálculo de los siguien es pa áme os:
Componen es a mónicos de la onda de ensión.
Componen es a mónicos de la onda de co ien e.
Dis o sión a mónica de la onda de ensión.
Dis o sión a mónica de la onda de co ien e.
Po encias ac i a, eac i a, de dis o sión y apa en e.
Fac o de po encia y cos

.
3. Visualización de esul ados ía web.
4. Acceso a In e ne ía 3G.
5. Medición de ca gas de has a 1300W, escalable a mayo es po encias.
6. Conexión y desconexión emo a de la ca ga.
7. E o en las medidas in e io al 1%.
8. Coe icien e de a iación de las medidas in e io al 1%.
9. Cos e en ma e iales del p o o ipo in e io a 150€.
En es e abajo se desc ibi á cada uno de los elemen os ha dwa e y so wa e que componen el
disposi i o, así como su in e conexión y con igu ación de allada, desde que se adquie en en el me cado
has a que quedan comple amen e in eg ados en el sis ema.
Es uc u a del documen o
Es e documen o se es uc u a en seis capí ulos:
Capí ulo 1: Base eó ica
Se de allan los undamen os eó icos sob e los que se apoya es e abajo.
Capí ulo 2: Diseño
Se desc ibe la cons ucción del disposi i o y su pues a en uncionamien o.
Capí ulo 3: Manual de uso y calib ación
En es e capí ulo se explica á la o ma de u iliza el disposi i o.

A aceli Ga cía G anados
9
Capí ulo 4: Medidas
En es e capí ulo se ealiza án di e sos ensayos des inados a e i ica la exac i ud y p ecisión del
disposi i o.
Capí ulo 5: Conclusiones y mejo as
Se de e mina á si el disposi i o cumple los obje i os que nos plan eamos así como los pun os de mejo a.
Capí ulo 6: P esupues o
En es e capí ulo se ealiza á un cálculo del cos e del disposi i o.
Bibliog a ía.
Anexo.
Se incluye el código de los p og amas C++ pa a el A duino, Raspbe y, y Ma lab
A aceli Ga cía G anados
10
A aceli Ga cía G anados
11
Capí ulo 1:
Base eó ica
A aceli Ga cía G anados
12
A aceli Ga cía G anados
13
In oducción
Es e capí ulo con iene la base eó ica sob e la que se apoya el cálculo de los pa áme os de una ed
eléc ica. Conc e amen e explica emos cómo amos a ob ene , a pa i de las mues as de las ondas de
ensión y de co ien e, an o la po encia media, ac o de po encia, cos

, como las componen es
a mónicas de dichas señales y sus dis o siones THD.
Cálculo de po encias
Sea el ci cui o mos ado en la igu a, donde conec amos una uen e de ensión a una de e minada ca ga:
Figu a 2. Ci cui o eléc ico
Se denomina po encia (ins an ánea) a la a iación de la ene gía en la unidad de iempo:
d
dE
p )(
)( 
La ensión aplicada,
)(
, y la co ien e de consumo,
)( i
, se miden en los pun os indicados.
La po encia ins an ánea ambién la podemos de e mina median e el p oduc o de ambas a iables:
)()()( i p 
La ca ga abso be á po encia cuando
0)(  p
y la cede á a la uen e cuando
0)(  p
.
Si
)( p
es pe iódica, se de ine la po encia ac i a como el alo medio de la po encia ins an ánea en un
pe iodo, es deci :



T
o
o
d i
T
P)()(
1
, pa a cualquie
o
Ca gas lineales
Cuando se aplica una ensión sinusoidal di ec amen e a ca gas como esis encias, induc ancias o
condensado es (o una combinación de ellos), se gene a una co ien e eléc ica ambién sinusoidal. A
es as ca gas se les denomina lineales.
 
Vseno

 2)(
 
i
Iseno i

 2)(

A aceli Ga cía G anados
14
El alo e icaz de la ensión se á el alo cuad á ico medio de dicha ensión:
     











 
 T
T
T
T
T
e
o
o
o
o
o
o
o
o
o
o
d d
T
V
d
T
V
d senV
T
d
T
V



2cos
2
2cos12
2
1
)(
122
222
     
























2
2
2
22
2
222 oo
T
senT sen
T
T
V sen
T
T
Vo
o
       
VT
T
V
sen sen
T
T
V
sen sen
T
T
Voooo 













 222
2
2
2
2
2
2
2
42








Igualmen e ob end íamos que
IIe 
La co ien e ins an ánea es:
       
 
i i i VI seno VIseno i p

 2coscos2)()()(
Obse amos que la po encia ins an ánea oscila con una ecuencia doble del de la ensión. Hallemos su
alo medio, es deci , la po encia ac i a:
   
 
   



T
i
T
i
T
i i
o
o
o
o
o
o
d
T
VI
d
T
VI
d VI
T
P

2coscos2coscos
1
     




i
T
i
i VI
sen
T
VI
VI o
o




cos
2
2
cos
    
 
 
 i i oi o VI senT sen
T
VI


cos22
2
   
 
 


coscos242
2VIVI sen sen
T
VI i i oi o 
, siendo

el des ase en e la ensión y la co ien e.
Po an o ob enemos que la po encia ac i a oma el alo de

cosVIP
VI
P


cos
La po encia apa en e se de ine como
VIS
La po encia eac i a la de e minamos median e el siguien e iángulo de po encias:
Figu a 3. T iángulo de po encias
A aceli Ga cía G anados
15
22 PSVIsenoQ 

Al a io en e la po encia ac i a y la apa en e se denomina ac o de po encia, y pa a el caso que es amos
iendo de señales sinusoidales , se cumple:


cos
cos  VI
VI
S
P
, es deci , el ac o de po encia coincide con el alo

cos
. Ve emos
pos e io men e que es o no ocu e cuando las ca gas no son lineales.
El ac o de po encia se u iliza pa a e alua la con e sión de ene gía y se encuen a en e los alo es de
0 y 1. Pa a un alo de
0cos 

no se ans ie a po encia ac i a. Si el ac o de po encia ale 1 solo se
suminis a po encia ac i a a la ca ga.
Ca gas no lineales
Conside emos que la ensión sigue siendo ap oximadamen e sinusoidal, es deci :
 
Vseno

 2)(
, pe o aho a la co ien e aún siendo pe iódica p esen a una componen e con inua además de una se ie
de a mónicos, es deci , componen es cuya ecuencia son un múl iplo en e o de la ecuencia
undamen al. Según el eo ema de las se ies de Fou ie , la onda de co ien e se puede descompone en
una suma de señales de ecuencia múl iplo de la undamen al, es deci :
     
...32222)( 332211 

senoI senoI senoII i o
Hallemos la co ien e e icaz, la aíz cuad á ica media de
)( i
:
     
 
d senoI senoI senoII
T
d i
T
I
T
o
T
o
o
o
o


 2
332211
22 ...32222
1
)(
1

, donde
   
0
cos
22 





T
i
io
T
iio
o
o
o
oi
i
IId isenoII



De e minemos el alo de
 
 
d jseno iseno
T
ji
o
o




cuando
ji 
:
 
 
 
 
 
 
iiiiji ji ji jseno iseno

 cos
2
1
cos
2
1

 
 
 
 
 
 



T
ii
T
ii
T
ji
o
o
o
o
o
o
d jid jid jseno iseno

cos
2
1
cos
2
1
, eniendo en cuen a que
 



T
ii
o
o
d n 0cos
2
1

pa a
0n
, en onces:
A aceli Ga cía G anados
16
 
 
0


d jseno iseno
T
ji
o
o

, po an o,
     



T
T
o
o
o
o
d senoI senoI senoII
T
d i
T
I...]32222[
1
)(
13
22
32
22
21
22
1
2
0
22

     
 

...3
2
2
22 3
2
2
3
2
2
2
2
1
2
2
1
2d seno
T
I
d seno
T
I
d seno
T
I
I
T
T
T
o
o
o
o
o
o
o

     






 

...
2
26cos12
2
24cos12
2
22cos12 3
2
3
2
2
21
2
1
2d
T
I
d
T
I
d
T
I
I
T
T
T
o
o
o
o
o
o
o


......
2
2
2
2
2
22
3
2
2
2
1
2
2
3
2
2
2
1
2 IIII
T
T
I
T
T
IT
T
I
Ioo
...
2
3
2
2
2
1
2 IIIII o
La po encia apa en e es, po de inición
VIS
. Hallemos su alo :
       
......... 2
3
2
2
2
1
2
0
2
3
2
2
2
1
2
2
3
2
2
2
1
2 SSSSVIVIVIVIIIIIVVISoo
, donde
ii VIS
La po encia ac i a es
 
T
o
o
d i
T
P)()(
1
       
 
 
T
o
o
o
d senoI senoI senoII Vseno
T..322222
1332211

         
 
 T
T
T
o
o
o
o
o
o
o
d seno seno
T
VI
d seno seno
T
VI
d senoVI 2
2
1
12
22
2

   
 

...3
23
3
T
o
o
d seno seno
T
VI

   
 
   
 
 
 T
T
o
o
o
o
d
T
VI
d
T
VI 22
2
11
13coscos2coscos0

   
 
   
1111
1
33
3coscos...4cos2cos PVId
T
VI
d
T
VI
T
T
o
o
o
o
 


, donde hemos enido en cuen a que
 
0cos 

T
o
o
d n

,
0n
 
1111 coscos

VIVIP 
A aceli Ga cía G anados
17
1


es el des ase en e la componen e undamen al de la ensión (que coincide con la ensión al
se es a sinusoidal) y la componen e undamen al de la co ien e.
El ac o de po encia se de ine como la elación en e la po encia ac i a y la po encia apa en e:
S
P
FP 



coscos
......
cos
2
3
2
2
2
1
2
1
2
3
2
2
2
1
2
1



IIII
I
IIIIV
VI
FP
oo
, po an o el ac o de po encia es in e io a

cos
Sólo en ausencia de a mónicos (y de componen e con inua) se cumple:

cosFP
La po encia eac i a se especi ica como el p oduc o de las componen es undamen ales de la ensión y la
co ien e, y el seno del ángulo que o man ambas componen es. En nues o caso
VV 
1
:
 

senVIsenIVQ 1111 
,
, po an o,
     
2
1
2
1
2
1
2
1
22 cos SVIsenVIVIQP 

...... 2
3
2
2
2
0
222
3
2
2
2
1
2
0
2 SSSQPSSSSS
Se denomina po encia de dis o sión,
D
, a
...
2
3
2
2
2
0 SSS
, ob eniendo inalmen e que
2222 DQPS 
Es as cua o po encias
SDQP ,,,
es án elacionadas o ogonalmen e po lo que podemos ep esen a las
median e un ec ángulo sólido:
Figu a 4.Pa alelepipedo ec angula de po encias
A aceli Ga cía G anados
24

A aceli Ga cía G anados
25
Capí ulo 2:
Diseño
A aceli Ga cía G anados
26
A aceli Ga cía G anados
27
In oducción
En es e apa ado se enume an los elemen os que componen el disposi i o, y en los siguien es se ealiza
un análisis de allado de cada uno de ellos.
El p o o ipo se compone de:
1. Un ans o mado con una elación 20.4:1, es deci , que eduzca la ensión al e na de ed:
)502(2230)( seno i


, a una ensión de salida:
)502(23.11
4.20
)(
)( seno
i
o


Figu a 5: T ans o mado educ o
Un ci cui o que acondicione la salida del ans o mado :
)502(23.11 seno

, a una ensión compa ible con las lec u as analógicas de la placa A duino DUE:
)502(35.165.1 seno


Figu a 6: Placa acondionado a ans o mado
El ans o mado jun o con el ci cui o acondicionado cons i ui á el senso de ensión.
2. Un senso de co ien e, que cap e la in ensidad que ci cula po el ci cui o. U iliza emos el
senso de co ien e LEM LTS 6-NP:
Figu a 7: Senso de co ien e LEM LTS 6-NP
A aceli Ga cía G anados
28
También se equie e un ci cui o acondicionado pues la salida de es e senso es á en el ango de 0.5
a 4.5V y el ango compa ible en las en adas del A duino DUE a de 0 a 3.3V. Se a a simplemen e
de un di iso de ensión.
3. Un elé de es ado sólido que nos pe mi a conec a y desconec a la ca ga:
Figu a 8: Módulo del elé SSR
4. Una placa mic ocon olado a A duino DUE que ome el mayo núme o posible de lec u as,
an o de la onda de ensión como la de co ien e:
Figu a 9: A duino DUE
5. Una placa mic ocompu ado a Raspbe y Pi 3 modelo B como se ido de aplicaciones que aloje
nues o p oyec o y gene e la página h p (código HTML) que p esen a á los da os:
Figu a 10: Raspbe y Pi 3 modelo B
6. Un ou e 3G que ealice la unción de Ga eway pa a la Raspbe y pe mi iendo el acceso a
In e ne median e una in e az 3G. Como indicábamos en los obje i os de es e abajo, hemos de
conside a la posibilidad de que en la ubicación donde se si úa la ca ga no engamos acceso a
In e ne po ed ija, po lo que necesi amos acceso a la ed mó il. Una posibilidad es conec a
un ou e wi i 3G:
A aceli Ga cía G anados
29
Figu a 11: Rou e 3G
Podemos p escindi del es e ou e conec ando el módem 3G di ec amen e en la Raspbe y, p e ia
con igu ación de es a úl ima placa.
7. Un módem 3G que pe mi a la conexión a In e ne de la Raspbe y:
Figu a 12: Módem 3G
Como hemos indicado, es e módem i á conec ado al ou e 3G, o di ec amen e en la Raspbe y.
En los apa ados siguien es se ealiza á un análisis más de allado de cada uno de es os elemen os. Se
expond án dis in as e siones de senso es, ci cui os de acondicionamien o de señal, y elés, de los que
elegi emos, po los mo i os que i emos exponiendo, el senso de ensión compues o po el ans o mado
educ o y acondicionamien o median e componen es pasi os, el LEM LTS 6-NP y di iso de ensión
como senso de co ien e, y el elé de es ado sólido como in e up o de conexión y desconexión de la
ca ga.
Raspbe y PI 3 modelo B
La Raspbe y Pi es una placa mic ocompu ado a de bajo cos e y del amaño de una a je a de c édi o
desa ollada en Reino Unido po la Fundación Raspbe y Pi, Uni e sidad de Camb idge, en 2011 con
un obje i o educacional, siendo es a una de las he amien a más impo an es pa a el ap endizaje de la
elec ónica y la p og amación.
Las ca ac e ís icas más des acables de la Raspbe y Pi 3 modelo B son:
 P ocesado B oadcom BCM2387 con 4 núcleos ARM Co ex-A53 a 1.2GHz
 LAN inalámb ica (Wi i) 802.11 bgn, que usa emos en caso de u iliza el ou e wi i 3G.
 Memo ia RAM de 1GB pa a pode co e las aplicaciones
 P ocesado a 64 bi s
 4 pue os USB, aunque sólo usa emos uno como in e az del p o ocolo UART.
 Un pue o E he ne 10/100, que no usa emos
 Un pue o mic o SD pa a ca ga el sis ema ope a i o Raspbian y almacena da os
 Un conec o mic o USB pa a alimen ación de la Raspbe y
 4O pines GPIO pa a con ol de disposi i os ex e nos, del que sólo usa emos uno.

A aceli Ga cía G anados
30
Figu a 13: Componen es de la placa Raspbe y
La Raspbe y sopo a una g an can idad de sis emas ope a i os y dis ibuciones lige as aunque
no malmen e se usan sis emas ope a i os de Linux, y más conc e amen e una e sión c eada
exp esamen e pa a la placa Raspbe y, llamada Raspbian ( e sión basada en Debian).
En nues o abajo ins ala emos en la Raspbe y un se ido de aplicaciones Web dinámica mon ando en
ella nues o p oyec o. El se ido que hemos elegido es Apache Tomca al se el más u ilizado en
en o nos no emp esa iales.
Es impo an e des aca que en la placa Raspbe y odos los pines de en ada/salida son digi ales, es
deci , no dispone de en adas analógicas pa a pode lee las lec u as de ensión y co ien e en nues o
p oyec o. Una posible solución a la al a de en adas analógicas hab ía sido conec a le un con e ido
analógico-digi al, po ejemplo el ADS1115.
Figu a 14: Con e ido analógico-digi al ADS1115
El ADS1115 iene 4 canales y 16 bi s de esolución (15 de medición y 1 de signo) y comunicación I2C.
Según se especi ica en el da ashee s, el máximo núme o de mues as que puede oma en 1 segundo (SPS)
es de 860, es deci , que el mínimo iempo en e mues as es de 1,16ms, po an o, en un pe iodo de 20ms
(pe iodo de la onda eléc ica) pod íamos oma un máximo de 17 mues as. Es e alo es muy bajo si
que emos ene cie a calidad de mues eo.
La solución adop ada ha sido u iliza un mic ocon olado que lle e inco po ado los canales ADC, es
deci , que disponga de en adas analógicas. El mues eo se ealiza á en dos ases:
1. El mic ocon olado oma á el mayo núme o de mues as posible gua dándolas in e namen e
en memo ia, sin pe de iempo en en ia las a la Raspbe y.
2. Una ez omadas odas las mues as, se en ia án a la Raspbe y.
El mic ocon olado que hemos elegido es el A duino DUE ya que es el más económico que hemos
encon ado (unos 11€) y con la elocidad su icien e como pa a cap u a las mues as que necesi amos.
A aceli Ga cía G anados
31
A duino DUE
A duino DUE es una a je a mic ocon olado a basada en el p ocesado ARM Co ex-M3, de 32 bi s.
Dispone de 54 pines digi ales de en ada/salida (de los cuales 12 pueden se u ilizados pa a salidas
PWM), 12 en adas analógicas, 2 salidas analógicas, un c is al a 84MHz, un conec o USB-OTG, un
conec o pa a alimen ación, un conec o JTAG, un conec o ICSP (p o ocolo SPI), y un bo ón de ese .
Ca ac e ís icas más des acables del A duino DUE:
 Mic ocon olado : AT91SAM3X8E.
 Vol aje de ope ación: 3.3V.
 Vol aje ecomendado de alimen ación (pin Vin): 7-12V.
 Pines de en ada y salida digi ales: 54 pines I/O, de los cuales 12 p o een salida PWM.
 Pines de en ada analógicos: 12.
 Pines de salida analógicos: 2.
 Co ien e de salida o al en los pines I/O: 130mA.
 Co ien e DC máxima en el pin de 3.3V: 800mA.
 Co ien e DC máxima en el pin de 5V: 800mA.
 Memo ia Flash: 512 KB oda disponible pa a aplicaciones del usua io.
 SRAM: 96 KB (en dos bancos de: 64KB y 32KB).
Figu a 15: Componen e de la placa A duino DUE
Como ya indicamos, la unción de la placa A duino a a se exclusi amen e oma el mayo núme o
posible de mues as, an o de la ensión como de la co ien e, du an e un pe iodo de 20ms
co espondien e a la ecuencia de 50Hz de la onda de ensión de la ed eléc ica. De las p uebas
ealizadas se ha comp obado que el iempo mínimo que anscu e en e dos lec u as es de 4.35
s

, po
lo que la ecuencia máxima de mues eo que podemos consegui con el A duino DUE es de unos
KHz
x230
1035.4
1
6

. El hecho de elegi es a placa de A duino es p ecisamen e es a al a elocidad de
mues eo. Como compa ación, con placa A duino UNO ob end íamos una ecuencia de mues eo de
9kHz.
Con la placa DUE, el máximo núme o de mues as que pod íamos adqui i en 20ms (pe iodo de la onda
de ensión eléc ica), es de
4602
1035.4
1020
6
3


x
x
. Como el elemen o “can as” de HTML donde amos a
A aceli Ga cía G anados
32
dibuja iene una anchu a de 800 pixeles, no nos in e esa dispone de un núme o de mues as mucho
mayo a 800 ya que de o a o ma end íamos muchos pun os (x,y) con la misma coo denada “x” y
dis in a coo denada “y”, p oduciéndose un e ec o de dien es de sie a en las g á icas. Pa a disminui el
núme o de mues as sin pe de calidad, és as se halla án p omediando 6 lec u as, con lo que llega emos
a
767
6
4602 
mues as. Po an o se án 767 el núme o de mues as que el A duino en ia á a la
Raspbe y an o pa a la onda de ensión como pa a la de la co ien e.
Hay que des aca que las mues as de ensión y de co ien e se ob end án en pe iodos dis in os aunque
en la misma ase. Con ello conseguimos maximiza el núme o de mues as.
Un p oblema que enemos que e i a con las placas A duino son los einicios au omá icos (de unos
500ms) que se p oducen cuando se inicializa una conexión se ie (UART). En conc e o, se igno an los
p ime os by es ecibidos si se comienza la ansmisión desde la Raspbe y jus o al inicializa el pue o
se ie, lo que ha á a que nues a aplicación no uncione co ec amen e. En el A duino DUE una o ma de
soluciona es os einicios es conec a una esis encia de 1k

en e los pines RESET y 3.3V. Es a
esis encia es necesa io e i a la únicamen e pa a ca ga los p og amas en la placa.
Figu a 16: Resis encia de 1k pa a e i a einicios en el A duino DUE
Rou e wi i 3G
Es el elemen o que da á conexión In e ne a la Raspbe y. El ou e elegido es el ZTE H108N que
dispone de un pue o USB pa a la conexión del módem 3G.
Figu a 17: Pue os del ou e ZTE H108N
La conexión Raspbe y- ou e se ealiza ía wi i median e el AP que inco po a in e namen e el ou e .
Una ez in oducido el módem 3G en el pue o USB end emos que espe a a que el és e quede con su led
ijo (es deci , sin pa padeo), es ado que indica á la conexión co ec a a la ed 3G.
A aceli Ga cía G anados
33
Módem 3G ZTE-MF190
Es e módem 3G es un disposi i o de comunicaciones que se conec a al pue o USB de un equipo y le
pe mi e accede a In e ne a a és de la ed mó il 3G. La elección de módem ZTE MF-190 se debe a
que es uno de los más económicos y iables que se pueden encon a en el me cado. Sus p incipales
ca ac e ís icas son:
 Conexión po USB
 Bandas sopo adas:
o HSPA/UMTS 900/2100MHz
o GPRS/EDGE 850/900/1800/1900 MHz
o HSPA has a 7.2Mbps
o HSUPA has a 1.4Mbps
 Dispone de un conec o pa a a je as de memo ia mic o SD de has a 4GB, que no usa emos.
Figu a 18: Pue o USB del módem 3G
Es e módem ya iene con igu ado pa a conec a se a la ed de nues o ope ado de ed mó il po lo que
lo único que enemos que ealiza es la inse ción de una a je a SIM de dicho ope ado , al como se
ap ecia en el la igu a siguien e:
Figu a 19: Inse ción de la SIM en el módem 3G
Senso de ensión con ans o mado y
componen es pasi os
Es e senso de ensión es á compues o de un ans o mado educ o y un ci cui o adap ado de
ensiones. El ans o mado iene elación de ans o mación 20.4:1, po lo que si a su en ada le
conec amos la ensión de ed:
)502(2230)( seno i


A aceli Ga cía G anados
40
El meno inc emen o de ensión que es capaz de de ec a el A duino es de
mV22.3
2
3.3
10 
. Es e
inc emen o co esponde a una a iación de ensión en la en ada de
V
x87.0
6.03
22302
22.3 

. Po an o
la esolución que amos a ob ene con es e ci cui o es de
V87.0
, in e io al hallado pa a el ci cui o
pasi o desc i o en el apa ado an e io .
Pod íamos habe ealizado una alimen ación simé ica del ope acional (de
V5
) eliminando la
es icción de los 600mV con lo que el ango de ensiones se ía:
V V ou 3)(3.0 

)502(35.165.1)( seno ou


, donde hemos es ablecido una ensión mínima de 0.3V pa a e i a ensiones nega i as en el pin de
en ada del A duino en caso de sob e ensiones. La unción de ans e encia se ía simila al del senso
con el ans o mado educ o y ci cui o pasi o con la des en aja de ene que dispone de una
alimen ación adicional de -5V (po ejemplo con el in eg ado 7660S).
Senso de ensión con el LEM LV 25-P
Es e ansduc o pe mi e medi ensiones de en ada de en e 10V y 500V. La p ecisión es de
%9.0
de
la ensión nominal de en ada cuando la co ien e en la en ada es de unos 10mA. Su p ecio es de
62.24€.
Figu a 30: LEM LV 25-P
Según el da ashee de es e componen e, la esis encia de en ada
1
R
debe calcula se pa a que en el
ci cui o p ima io ci cule una in ensidad ap oximada de 10mA a la ensión nominal de en ada. La
ensión de alimen ación
c
U
debe es a en el ango de en e 12 y 15V. La esis encia
M
R
debe es a en el
ango de
30
a
190
cuando
VUc12
En nues o caso:
 kR 23
01.0
230
1

 kR 23
1
. Toma emos el alo no malizado de
 kR 22
1
po lo que la co ien e
en el p ima io se á de
mAI5.10
22000
230
1
( alo e icaz)
La po encia consumida en es a esis encia:
WIRP iR 43.2
1000
5.10
22000
2
2
1
1








A aceli Ga cía G anados
41
Si no encon á amos una esis encia de 22k

pod íamos u iliza dos esis encias en se ie, de
 kR 12
11
y
 kR 10
12
. Las po encias consumidas en es as esis encias se ían
WPR32.1
1000
5.10
12000
2
11 








elegi íamos una esis encia de 2W de po encia
WPR10.1
1000
5.10
10000
2
12 








elegi íamos una esis encia de 2W de po encia
Figu a 31: Resis encias de en ada y RM del LV 25-P
Que emos ob ene una ensión de salida
)100(35.1)( seno o


.
La co ien e e icaz en el secunda io es
mAx1.26
10
25
5.10 
pues la elación de ans o mación es 25:10
según se indica en el da ashee .
La ensión e icaz de salida es
M
Rx 3
101.26
2
35.1 


 5.36
M
R
. U iliza emos un po encióme o de
100

pa a ealiza ajus es, y calib ado en
5.36
.
La po encia consumida en es a esis encia es de
mWPM
R25
1000
1.26
5.36
2








, po lo que se ía
su icien e con una esis encia de
5.36
y 1/8W de po encia.
El ci cui o acondicionado cons a de dos seguido es de ensión (al a impedancia de en ada) y un
sumado no in e so :
A aceli Ga cía G anados
42
Figu a 32: LV 25-P con ci cui o acondicionado
0
)(
21





R
VV
R
V e
o









 V
RRR
V
R
e
o
2121
11
)(

)(
21
2
21
1
RR
R
V
RR
R
Vo e 




)(
65
5
RR
R
Vou




)()(
21
2
21
1
65
5
RR
R
V
RR
R
RR
Ro e ou 



























)100(35.1)()(
5
2
5
1
21
65
5
2
5
1
21
65 seno
R
R
V
R
R
RR
RR
R
R
V
R
R
RR
RR
e o e ou

Que emos ob ene
)100(35.165.1)( seno ou


, en onces,
, omando
21 RR 
y
65 RR 

)100(35.1)( senoV e ou


4
43
12 R
RR
V e 


4
43
12
65.1 R
RR 


27.7
4
43 

R
RR

43 27.6 RR 
Tomando
 kR 10
3

1594
4
R
Podemos elegi po ejemplo
 kRRRRR 10
65321
,
1595
4
R
Las esis encias
1
R
y
4
R
las implemen a emos con po encióme os de 20k

(calib ado en 10k

) y
2k

(calib ado en 1594

), espec i amen e, pa a pode ealiza ajus es. Con
1
R
a ia emos la
ampli ud de la señal de salida, y con
4
R
a ia emos su alo medio ( ensión de e e encia).
La alimen ación de -12V la podemos ob ene con el in eg ado 7660S:
A aceli Ga cía G anados
43
Figu a 33: In eg ado 7660S
Vamos a simula el ci cui o con L spice:
Figu a 34: Ci cui o LTspice senso de ensión con el ope acional LM358
Figu a 35: Respues a ci cui o LTspice senso de ensión con el ope acional LM358
La esolución de es e senso es simila a la del ci cui o pasi o con los siguien es incon enien es: el LV
25-P iene un cos e de unos 60€ (muy supe io al cos e de ans o mado ), equie e mayo ci cui e ía
adicional, y mayo consumo de po encia debido a la esis encia de en ada de 2.4W. Como en aja
podemos des aca el meno espacio que ocupa el LV 25-P espec o al ans o mado .
A aceli Ga cía G anados
44
Po los mo i os expues os, de los es senso es de ensión desc i os inalmen e decidimos elegi el
compues o po elemen os pasi os.
Senso de co ien e ACS712
Figu a 36: Medición de co ien e con el senso ACS712
Se a a de un senso de co ien e de e ec o Hall. Es e e ec o hace que apa ezca una ensión, denomina
ensión Hall, en el in e io de un conduc o po el que anscu e una co ien e con una elocidad de
desplazamien o

, en p esencia de un campo magné ico

B
. Es e campo gene a á, según la ue za de
Lo en z
  B qF
, un campo eléc ico de alo


 B
q
F
E
, que desplaza á las ca gas
pe pendicula men e apa eciendo un po encial eléc ico en es a di ección ( ensión Hall).
La ensión que apa ece po es e mo imien o de ca gas es p opo cional a la in ensidad de la co ien e
que ci cula, enómeno que se u iliza en los senso es de e ec o Hall pa a medi la in ensidad de la
co ien e eléc ica.
El senso de co ien e ACS712 es un senso Hall de bas an e p ecisión y bajo o se . La esis encia al
paso de la co ien e es de an sólo
m2.1
. En el capí ulo de calib ación desc ibi emos la o ma de
elimina la in luencia del o se en los senso es de co ien e.
La salida del senso es una ensión p opo cional a la co ien e y bas an e independien e a la
empe a u a. Exis en es modelos pa a mediciones de co ien e has a
A5
,
A20
y
A30
.
El ACS712 dispone de 3 pines:
 Vcc: alimen ación. Tensión máxima 8V. Noso os pod emos alimen a lo con los 5V del A duino.
 OUT: salida analógica
 GND: omada del A duino
Según el da ashee , la ensión de salida es:
)(5.2)( ki uou 
, donde
k
es la sensibilidad, y depende del modelo elegido:
Modelo de 5A:
AVk /185.0
A aceli Ga cía G anados
45
Modelo de 20A:
AVk /1.0
Modelo de 30A:
AVk /066.0
En el caso del modelo ACS712 de
A30
, los alo es ex emos de ensión son:
VV 52.0)30(066.05.2
min 
, pa a una co ien e de -30A
VxV 48.430066.05.2
max 
, pa a una co ien e de 30A
La unción de ans e encia del senso ACS712 de 30A es:
Figu a 37: Función de ans e encia del senso ACS712 de 30A
Pues o que la Raspbe y abaja con ensiones de 3.3V end emos que añadi un ci cui o acondicionado
pa a adap a las ensiones de salida del ACS712 al ango de 0 a 3.3V. Simplemen e u iliza emos un
di iso de ensión con dos esis encias (una de ellas a iable po si eque imos pequeños ajus es):
Figu a 38: Ci cui o acondicionado pa a el ACS712
3.35
21
2
RR
R

21 52.0 RR 
Si omamos
 kR 100
2

 kR 52
1

A aceli Ga cía G anados
46
Figu a 39: Implemen ación del ci cui o acondicionado pa a el ACS712
El con e ido ADC del A duino DUE es de 10 bi s, con un ango de
0
a
V3.3
, po lo que el meno
inc emen o de ensión que es capaz de de ec a el A duino es de
mV22.3
2
3.3
10 
. Es e inc emen o
co esponde a una co ien e en el senso ACS712 de 30A de
049.0
66
22.3 

mA49
. Po an o la
esolución que amos a ob ene con es e senso es de
mA49
, es deci , amos a pode de ec a
a iaciones en la co ien e de ed de unos 49mA. En el caso de ACS712 de 5A end emos
mA4.17
185
22.3 
, mejo ando la esolución a cos a de limi a la co ien e máxima.
Senso de co ien e LEM LTS 6-NP
Es o o ipo de senso de co ien e de e ec o Hall bas an e p eciso, lineal, poca dependencia de la
empe a u a, al a inmunidad a las in e e encias ex e na. Mide co ien es de has a 19.2A con ensión
máxima en el p ima io de 600V y ensión de salida de en e 0 y 5V.
Figu a 40: Senso de co ien e LEM LTS 6-NP
El ci cui o implemen ado en es e senso es el siguien e:
A aceli Ga cía G anados
47
Figu a 41: Ci cui o senso de co ien e LEM LTS 6-NP
Según el ab ican e, disponemos de es o mas de conec a el ci cui o p ima io del LTS 6-NP,
ob eniendo en cada una ellas una sensibilidad y una co ien e máxima dis in a. Veámoslas dichas
conexiones y las unciones de ans e encia co espondien es:
Figu a 42: Senso de co ien e LEM LTS 6-NP con una uel a en el p ima io
Co ien e máxima: 19.2A
Sensibilidad=
AmV
x/17.104
22.19
5.05.4 

Figu a 43: Senso de co ien e LEM LTS 6-NP con dos uel as en el p ima io
Co ien e máxima: 9.6A
Sensibilidad=
AmV
x/33.208
26.9
5.05.4 

A aceli Ga cía G anados
48
Figu a 44: Senso de co ien e LEM LTS 6-NP con es uel as en el p ima io
Co ien e máxima: 6.4A
Sensibilidad=
AmV
x/5.312
24.6
5.05.4 

De los es ipos de conexionado is os an e io men e usa emos la p ime a, que aunque enga meno
sensibilidad nos pe mi e medi co ien es de has a 19.2A.
Según su ci cui o in e no, pa a una co ien e máxima de
AIp2.19
la salida se á
V
I
V
I
VIVV pp
sou 5.4
2000
2.19
33.2085.2
2000
22.208
2000
22.20822.208  
, es deci , la
máxima ensión que ob end emos a la salida del LTS 6-NP es de 4.5V
Pa a una co ien e p ima ia de
AIp2.19
la salida se á
V
I
V
I
VIVV pp
sou 5.0
2000
2.19
33.2085.2
2000
22.208
2000
22.20822.208  
, es deci , la
mínima que ob end emos a la salida del LTS 6-NP es de 0.5V
Pa a conec a es e senso a la placa A duino DUE necesi amos un ci cui o acondicionado , que puede
un di iso de ensión simila al usado pa a el ACS712:
Figu a 45: Ci cui o acondicionado pa a el senso de co ien e LEM LTS 6-NP
Cuando a la salida engamos 4.5V, al A duino le deben llega 3.3V, po an o:
3.35.4
21
2
RR
R

212 3.33.35.4 RRR 

12 75.2 RR 
Si omamos
 kR 100
2

 kR 4.36
1
A aceli Ga cía G anados
49
La ensión mínima se á de
V
RR
R37.0
1004.36
100
5.05.0
21
2



La unción de ans e encia incluyendo en ci cui o acondicionado es:
Figu a 46: Función de ans e encia del LEM LTS 6-NP con el ci cui o acondicionado
Sensibilidad=
AmV
x/3.76
2.192
37.03.3 

Aunque iene mayo p ecio que el ACS712 inalmen e elegi emos el LEM LTS 6-NP al dispone de mayo
sensibilidad e inmunidad al uido (meno in luencia a campos elec omagné icos ex e nos).
El ci cui o mon ado en placa es es e:
Figu a 47: Módulo senso de co ien e LEM LTS 6-NP
Relé elec omecánico (con ac o )
El elé iene la unción de conec a y desconec a la ca ga de la ed eléc ica en unción de una señal
eléc ica que en ia emos desde el A duino DUE, en conc e o desde el pin 53. El elé elec omagné ico (o
con ac o ) usa el desplazamien o de una pieza mó il (con ac o) debida a la gene ación de un campo
magné ico p o enien e de una bobina.
Figu a 48: Relé elec omecánico
A aceli Ga cía G anados
56
Figu a 58: Aplicación Win32DiskImage
5. Con el explo ado de a chi os nos si uamos en la ca pe a de la a je a SD, y con el “Bloc de
no as” añadimos un iche o sin con enido al que llama emos “ssh”, sin ninguna ex ensión
6. Expulsamos la a je a SD de nues o PC y la inse amos en la Raspbe y:
Figu a 59: In oducción de la a je a SD en la Raspbe y
P ime a conexión de la Raspbe y
1. Con la a je a mic o SD ya inse ada, alimen amos la Raspbe y.
2. Conec amos la Raspbe y median e cable E he ne (conec o RJ45) a nues o ou e Wi i.
3. Ab imos en nues o PC un p og ama que nos pe mi a isualiza los equipos conec ados a
nues a ed, po ejemplo, “Wi eless Ne wo k Wa che ”
4. Al cabo de un a o nos debe apa ece la di ección IP que el ou e le ha asignado a nues a
Raspbe y.

A aceli Ga cía G anados
57
Figu a 60: Explo ación de equipos con la aplicación Wi eless Ne wo k Wa che
1. Ab imos en nues o PC cualquie aplicación clien e SSH, po ejemplo “Pu y”, in oducimos la
di ección IP asignada a la Raspbe y, y seleccionamos el p o ocolo SSH (pue o 22):
Figu a 61: Aplicación Pu y pa a la conexión con la Raspbe y
2. Nos da á es e a iso de segu idad. Pulsamos en “Sí”:
Figu a 62: Aplicación Pu y. A iso de p ime a conexión
A aceli Ga cía G anados
58
3. Nos pedi á usua io y passwo d pa a alida nos. In oducimos como usua io “pi” y como
con aseña “ aspbe y”.
4. Po segu idad cambia emos la con aseña del usua io “pi” con es e comando Linux:
pi@ aspbe ypi:~ $ passwd pi
5. Aho a cambia emos el idioma del sis ema ope a i o. In oducimos el comando:
pi@ aspbe ypi:~ $ sudo aspi-con ig
Seleccionamos pulsando con la ba a espaciado a:“Localisa ion Op ions”

”Change Locale”
y ma camos es_ES.UTF-8 UTF-8
6. Con igu amos la zona ho a ia de nues a ubicación:
pi@ aspbe ypi:~ $ aspi-con ig
Seleccionamos “Localisa ion Op ions”

”Change Timezone”

Eu ope

Mad id
Conexión wi i de la Raspbe y y asignación de
IP ija
Nues a Raspbe y se a a conec a al ou e median e Wi i po lo que es necesa ia la con igu ación de
la in e az inalámb ica en la RPi. Además, debemos asigna una di ección IP ija a la Raspbe y de
o ma que, cuando el ou e eciba pe iciones a la aplicación Web (pue o 8080 de omca ), las een íe a
la di ección IP de nues a Raspbe y. P ime o e emos cómo se con igu a la in e az Wi i en la
Raspbe y y luego le asigna emos una di ección IP ija an o a la in e az E h como a la in e az Wi i.
Los comandos que siguen necesi an pe miso de supe usua io pa a pode se ejecu a po lo que
inicialmen e debemos asigna una passwo d al usua io “ oo ”.
pi@ aspbe ypi:~ $ sudo passwd oo
Nos esponde á con “New passwo d” e in oduci emos la con aseña que que amos asigna le al usua io
“ oo ”. Tend emos que con i ma la cla e cuando nos indique “Re ype new passwo d”.
Aho a ya pod emos cambia nos del usua io “pi” al usua io “ oo ”:
pi@ aspbe ypi:~ $ su
, nos solici a á que in oduzcamos la passwo d de “ oo ”.
Aho a enemos que edi a el iche o de con igu ación /e c/wpa_supplican /wpa_supplican .con :
oo @ aspbe ypi:/home/pi# nano /e c/wpa_supplican /wpa_supplican .con
, e in oducimos el nomb e y con aseña de las edes wi i a las que que emos que se conec e la
Raspbe y. Podemos con igu a más de una asignándole p io idad, eniendo en cuen a que cuando más
al o sea el alo de “p io i y” mayo p io idad. Dejamos el iche o po ejemplo así:
A aceli Ga cía G anados
59
c l_in e ace=DIR=/ a / un/wpa_supplican GROUP=ne de
upda e_con ig=1
coun y=ES
ne wo k={
ssid=" nomb e_de_la_ ed_wi i_3"
psk=" cla e_de_la_ ed_wi i_3"
id_s =" ed_de_mayo _p io idad "
p io i y=3
}
ne wo k={
ssid=" nomb e_de_la_ ed_wi i_2"
psk=" cla e_de_la_ ed_wi i_2"
id_s =" ed_de_p io idad_in e media"
p io i y=2
}
ne wo k={
ssid="nomb e_de_la_ ed_wi i_1"
psk="cla e_de_la_ ed_wi i_1"
id_s =" ed_de_meno _p io idad"
p io i y=1
}
Aho a amos aho a a asigna le una di ección IP ija (p i ada) a las in e aces de nues a Raspbe y.
Edi amos el iche o de con igu ación /e c/dhcpcd.con
oo @ aspbe ypi:/home/pi# nano /e c/dhcpcd.con
y al inal del iche o le añadimos:
in e ace e h0
s a ic ip_add ess=192.168.1.99/24
s a ic ou e s=192.168.1.1
s a ic domain_name_se e s=80.58.61.250 80.58.61.254
in e ace wlan0
s a ic ip_add ess=192.168.1.100/24 #Di ección IP deseada
s a ic ou e s=192.168.1.1 #IP de nues o ou e
s a ic domain_name_se e s= 80.58.61.250 80.58.61.254
Con es o hemos asignado la di ección IP 192.168.1.99 a la in e az E he ne de la Raspbe y, y la
di ección IP 192.168.1.100 a la in e az Wi i.
Rese eamos la Raspbe y:
oo @ aspbe ypi:/home/pi# eboo
Ya podemos desconec a el cable E he ne de la Raspbe y con el ou e y accede ía Wi i desde nues o
PC con la aplicación clien e “Pu y”.
A aceli Ga cía G anados
60
Con igu ación del se icio SSH de la
Raspbe y
SSH es un se icio que nos pe mi e accede emo amen e a un equipo dis an e (en nues o caso, la
Raspbe y) como si es u ié amos di ec amen e conec ados. Es e se icio ya es á ins alado en el sis ema
ope a i o Raspbian que hemos desca gado pe o amos a modi ica el pue o de escucha (po de ec o, el
22). Es o lo hacemos debido a exis en ope ado es de ed (po ejemplo Mo iS a ) que no pe mi en ab i el
pue o 22 en el ou e , además de e i a accesos no au o izados al desconoce se el pue o en que se ha
con igu ado el se icio SSH.
En el mismo iche o /e c/ssh/sshd_con ig cambiamos es a línea:
#Po 22
, po es a ob a:
Po 9122
Rese eamos la Raspbe y:
oo @ aspbe ypi:/home/pi# eboo
Ya podemos accede a la Raspbe y a a és de SSH po el pue o 9122, con el usua io “pi”:
Figu a 63: Acceso a la Raspbe y con Pu y po el pue o 9122
También po segu idad únicamen e amos a pe mi i al usua io “pi” el acceso al se icio SSH:
1. Edi amos el iche o de con igu ación SSH
oo @ aspbe ypi:/home/pi# nano /e c/ssh/sshd_con ig
2. Al inal del iche o añadimos
A aceli Ga cía G anados
61
AllowUse s pi
Con el siguien e comando pod emos conoce los in en os allidos de accesos :
oo @ aspbe ypi:/home/pi# ca / a /log/au h.log | g ep 'in alid use |Failed'
Ins alación y con igu ación del se icio DDNS
en la Raspbe y
DDNS son las iniciales de Dynamic Domain Name Sys em, es deci , sis ema dinámico de nomb es de
dominio, y se u iliza pa a la esol e los nomb es de URLs de equipos ienen una di ección IP dinámica.
La URL que le amos a asigna a nues a aplicación es:
h p://analizado .ddns.ne :8080/TFG
Es a di ección URL debe es a elacionada con la di ección IP que nues o p o eedo de In e ne haya
asignado a nues o ou e . El p oblema lo end emos cuando esa di ección IP cambie (es deci , no sea
ija) ya que en onces alla á la esolución DNS de ese nomb e. La solución pasa po da se de al a en un
se ido Dynamic DNS e ins ala una aplicación DDNS en nues a Raspbe y, de o ma que cada cie o
iempo la Raspbe y in o me al se ido DDNS de la di ección IP asignada, pudiendo en onces esol e
la URL median e consul a del DNS del pe iciona io al se ido DDNS.
Un se icio DDNS g a ui o se o ece, po ejemplo, en www.no-ip.com median e el p e io egis o.
Figu a 64: Página Web www.noip.com
Una ez que nos hemos dado de al a, enemos que ins ala la aplicación clien e DDNS de “no-ip” en
nues a Raspbe y. P ocedemos de la siguien e o ma:
1. Nos cambiamos al di ec o io pe sonal del usua io “pi”:
oo @ aspbe ypi:~# cd /home/pi

A aceli Ga cía G anados
62
2. Desca gamos el iche o noip-duc-linux. a .gz ubicado en la di ección h p://www.no-
ip.com/clien /linux/noip-duc-linux. a .gz:
oo @ aspbe ypi:/home/pi# wge h p://www.no-ip.com/clien /linux/noip-duc-linux. a .gz
3. Descomp imimos el iche o desca gado:
oo @ aspbe ypi:/home/pi# a -zx noip-duc-linux. a .gz
4. Nos cambiamos al di ec o io /home/pi/no-ip-2.1.9-1:
oo @ aspbe ypi:/home/pi# cd noip-2.1.9-1
5. Ejecu amos el comando “make”:
oo @ aspbe ypi:/home/pi/noip-2.1.9-1# make
6. Ejecu amos el comando “make ins all”:
oo @ aspbe ypi:/home/pi/noip-2.1.9-1# make ins all
7. Nos pide que in oduzcamos el usua io y la cla e con el que nos hemos egis ado en www.no-
ip.com:
Please en e he login/email s ing o no-ip.com ______
Please en e he passwo d o use ‘xxxxxx’ ______
, y nos esponde á con nues a URL si es que únicamen e enemos un nomb e egis ado en el
se ido no-ip:
Only one hos analizado .ddns.ne is egis e ed o his accoun .
I wil be used.
Si u ié amos más de un nomb e egis ado nos p egun a ía si que emos ac ualiza odos ellos:
Do you wish o ha e hem all upda ed?[N] (y/N)
, a lo que esponde íamos “N”. Después nos i ía p egun ando uno po uno cual es el nomb e
que que emos man ene ac ualizado:
Do you wish o ha e hos [analizado .ddns.ne ] upda ed?[N] (y/N)
8. Aho a nos pedi á que in oduzcamos el in e alo de ac ualización, es deci , cada cuán o iempo
(en minu os) la Raspbe y in o ma á al se ido DDNS de la di ección IP ac ual. Dejamos po
ejemplo 5 minu os:
Please en e an upda e in e al: [30] 5
9. Después nos p egun a á si que emos ejecu a algún “sc ip ” cada ez que se ac ualice la
di ección IP. Con es amos “N”:
Do you wish o un some hing a success ul upda e?[N] (y/N) N
10. Aho a enemos que con igu a el clien e DDNS pa a que se inicie con el a anque de la
Raspbe y. C eamos el iche o sc ip /e c/ini .d/noip2
A aceli Ga cía G anados
63
oo @ aspbe ypi:/home/pi/noip-2.1.9-1# nano /e c/ini .d/noip2
11. Copiamos es e ex o en el iche o an e io :
#! /bin/bash
### BEGIN INIT INFO
# P o ides: blabla
# Requi ed-S a : $syslog
# Requi ed-S op: $syslog
# De aul -S a : 2 3 4 5
# De aul -S op: 0 1 6
# Sho -Desc ip ion: blabla
# Desc ip ion:
#
### END INIT INFO
sudo /us /local/bin/noip2
Salimos del iche o con CTRL-X
12. Damos al sc ip los pe misos de ejecución:
oo @ aspbe ypi:/home/pi/noip-2.1.9-1# chmod +x /e c/ini .d/noip2
13. Ponemos el sc ip la cola de ejecución pa a que se inicie cuando a anquemos la Raspbe y:
oo @ aspbe ypi:/home/pi/noip-2.1.9-1# upda e- c.d noip2 de aul s
14. Iniciamos el se icio:
oo @ aspbe ypi:/home/pi/noip-2.1.9-1# /us /local/bin/noip2
Ya enemos con igu ado en la Raspbe y el se icio DDNS.
Po Fo wa ding en el ou e ZTE H108N
También denominado “ edi eccionamien o” o “ape u a de pue os” en el ou e . Cuando el ou e
eciba pe iciones desde el ex e io de la ed pa a un se icio de e minado és e debe conoce la
di ección IP p i ada del equipo de su ed que la a a ges iona . Pa a ello enemos que asocia en el
ou e cada se icio (pue o) con la di ección IP p i ada de la máquina de su ed que lo a a
a ende .
En nues o caso la Raspbe y a a ges iona dos se icios:
SSH (con igu ado en el pue o 9122) pa a pode in oduci comandos a la Raspbe y de o ma
emo a.
HHTP (con igu a emos Tomca en el pue o 8080) pa a a ende las pe iciones web.
El edi eccionamien o en el ou e ZTE H108N se ealiza median e el siguien e p oceso:
1. Desde el na egado de nues o PC conec ado a la misma ed in oducimos la di ección IP
p i ada del ou e . En nues o caso: h p://192.168.1.1
2. Pulsamos en “Con igu a aplicaciones y pue os”. Nos pedi á una cla e, que po de ec o pa a
equipos de Tele ónica es 1234.
A aceli Ga cía G anados
64
Figu a 65: Web ou e ZTE H108N
3. Ab imos el pue o 9122 del p o ocolo TCP asignándolo a la di ección IP p i ada de nues a
Raspbe y. Pulsamos en “Gua da cambios”.
Figu a 66: Ape u a del pue o 9122 en el ou e ZTE H108N
4. Pulsamos sob e “Añadi egla”.
5. De la misma o ma ha emos pa a ab i el pue o 8080. Es e pue o ambién lo a ende á la IP de
la Raspbe y:
A aceli Ga cía G anados
65
Figu a 67: Ape u a del pue o 8080 en el ou e ZTE H108N
6. Pulsamos en “Ce a ”
Ya enemos a endidos los pue os 9122 y 8080 en nues o ou e 3G.
Conexión di ec a del módem 3G ZTE MF190
en la Raspbe y
Podemos p escindi del ou e 3G median e la conexión di ec a del módem a la Raspbe y. Pa a ello
debe emos ins ala es as aplicaciones:
 ppp: pa a pode maneja el p o ocolo ppp
 Sakis3g: pa a con igu a la in e az 3G
 Um skeepe : pa a pe mi i las econexiones del módem 3G
El p ocedimien o de ins alación se ía el siguien e:
1. Conec amos el módem 3G a la Raspbe y.
2. Nos si uamos en una ca pe a cualquie a de la Raspbe y, po ejemplo, “home/pi”:
oo @ aspbe ypi:~# cd /home/pi
3. Ins alamos la aplicación “ppp” pa a pode es ablece la conexión en e el nodo del ope ado
mó il y nues a in e az 3G:
oo @ aspbe ypi:/home/pi# ap -ge ins all ppp
4. C eamos la ca pe a “um skeepe ”
oo @ aspbe ypi:/home/pi# mkdi um skeepe
5. Nos si uamos en dicho di ec o io:
oo @ aspbe ypi:/home/pi# cd um skeepe
A aceli Ga cía G anados
72
6. Con i mamos pulsando en “Acep a ”.
7. Pulsamos en “Finish”.
8. Rese eamos la Raspbe y con es ando a i ma i amen e a la p egun a:
Would you like o eboo now?
9. La conexión en e la Raspbe y y el A duino la ealiza emos ísicamen e median e los pue os
USB po lo que necesa io habili a pe misos de lec u a, esc i u a y ejecución al usua io
“ omca 8” sob e el iche o que es á asociado a la in e az USB, /de / yACM0. Lo hacemos con
el comando:
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG#: chmod 667 /de / yACM0
10. Pa a que los pe misos del iche o /de / yACM0 pe manezcan as einicia la Raspbe y es
necesa io inclui el comando an e io en el iche o /e c/ c.local. Es e iche o se ejecu a en cada
a anque de la Raspbe y.
Edi amos el iche o /e c/ c.local :
oo @ aspbe ypi:~# nano /e c/ c.local
, e incluimos el comando de cambio de pe misos jus o an es de la sen encia “exi 0”:
chmod 667 /de / yACM0
Debemos ene en cuen a que, si es ando la Raspbe y encendida, econec amos el cable USB, los
pe misos del iche o /de / yACM0 se modi ican a 660 (usua io “ omca 8” sin pe misos) po lo que
debe emos ol e a in oduci el comando chmod 667 /de / yACM0 o einicia la Raspbe y.
Ins alación de la aplicación Wi ingPi en la
Raspbe y
Es a aplicación inco po a las lib e ías de C++ “wi ingPi.h” y “wi ingSe ial.h” necesa ias pa a el
manejo de los pue os GPIO y del p o ocolo se ie de la Raspbe y. Es e p o ocolo es á implemen ado en
los pue os GPIO 15 (Tx) y 16 (Rx) así como en cualquie a de sus in e aces USB:
Pa a ins ala la lib e ía in oducimos el comando:
oo @ aspbe ypi:/home/pi#: ap -ge ins all wi ingpi
Las unciones que amos a usa en nues a aplicación son:
wi ingPiSe upGpio(): pa a con igu a los pue os GPIO an es de usa los.
digi alW i e(): pa a pone un pue o GPIO a “1” o a “0”.
se ialOpen(): pa a ab i el pue o ua
se ialClose(): pa a ce a el pue o ua
se ialPu cha : pa a en ia un ca ác e al A duino
se ialDa aA ail(): pa a de ec a el e en o de en ío de un ca ác e po el A duino.
se ialGe cha (): pa a lee un ca ác e que nos haya en iado el A duino.

A aceli Ga cía G anados
73
Pa a pe mi i al usua io “ omca 8” el manejo de los pue os GPIO es necesa io que pe enezca al g upo
“gpio”, y pa a ello in oduci emos es e comando Linux en la Raspbe y:
oo @ aspbe ypi:~# adduse omca 8 gpio
El único pue o que amos a usa , a pa e de los pue os se ie, es el GPIO17 pa a ese ea la placa
A duino, uniendo el pue o GPIO17 de la Rasbpe y con el Rese del A duino de o ma que al pone
GPIO17 a “0” se ese ee dicha placa.
El manejo de los pue os GPIO (excep o los co espondien es al pue o se ie) equie e que p e iamen e
se solici e al sis ema su uso, lo que se denomina “expo a ”, a ea que únicamen e puede ealiza el
usua io “ oo ”. Dado que la aplicación web se ejecu a desde el usua io “ omca 8” es necesa io que en
el a anque de la Raspbe y se expo en p e iamen e los pue os que se ayan a u iliza . Pa a ello, en el
iche o de a anque del sis ema de la Raspbe y, “/e c/ c.local”, in oduci emos es e código jus o an es
de la sen encia “chmod 667 /de / yACM0” (que ya incluimos en el apa ado “p o ocolo UART”):
#Expo amos el pin GPIO17 (BCM) pa a pode usa po ejemplo digi alW i e()
echo 17 > /sys/class/gpio/expo
#Con igu amos el pin GPIO17 como de salida
echo ou > /sys/class/gpio/gpio17/di ec ion
#Ponemos el pin GPIO17 a 1:
echo 1 > /sys/class/gpio/gpio17/ alue
Con el comando “echo 17 > /sys/class/gpio/expo ” expo amos el pue o GPIO17.
Con “echo ou > /sys/class/gpio/gpio17/di ec ion” lo con igu amos como de salida.
Con “echo 1 > /sys/class/gpio/gpio17/ alue” lo ponemos a “1” pa a que no se ese ee la placa A duino.
Ins alación del IDE de A duino en el PC
Un IDE es un En o no de Desa ollo In eg ado, es deci , una aplicación que nos pe mi e desa olla
so wa e sob e un disposi i o. La ca ga de p og amas en la placa A duino la ealiza emos desde nues o
PC con el IDE especí ico de A duino. Los p og amas ( ambién llamados “ske ch”) se esc iben en un
lenguaje de p og amación que es á basado en C++.
Es e es el p oceso pa a ins ala el en o no de desa ollo (IDE):
1. En amos en la web o icial de A duino: h ps://www.a duino.cc/en/Main/So wa e
2. Pulsamos sob e “Windows ZIP ile o non admin ins all”
Figu a 75: Página de desca ga del so wa e de A duino
A aceli Ga cía G anados
74
3. Pulsamos en “JUST DOWNLOAD”.
4. En nues o PC c eamos po ejemplo la ca pe a C:/P og am Files/A duino y ex aemos aquí el
con enido del iche o “.zip” desca gado.
5. Conec amos la placa A duino DUE a nues o PC a a és del pue o USB P og amming (de los
dos que dispone, el más ce cano al conec o de alimen ación según se mues a en la igu a),
e i ando (si la iene) la esis encia colocada en e los pines Rese y 3.3V

(más adelan e
habla emos del mo i o de es a esis encia):
Figu a 76: Conexión del A duino DUE al pue o USB P og amming
6. En amos en la aplicación A duino que end emos po de ec o en C:/P og am
Files/A duino/A duino.exe, o pulsando sob e el icono del esc i o io:
Figu a 77: Icono IDE A duino
7. Seleccionamos He amien as

Placa y comp obamos si apa ece “A duino DUE (P og amming
po )”. En caso a i ma i o la seleccionamos y pasamos al pun o 11.
8. Si no apa ece la a je a A duino DUE en el Ges o de Ta je as, seleccionamos
He amien as

Placa

Ges o de a je as, y en “A duino SAM Boa ds (32-bi s ARM Co ex-
M3) by A duino”, seleccionamos la úl ima e sión y pulsamos en “Ins ala ”:
A aceli Ga cía G anados
75
Figu a 78: Ges o de a je as del IDE de A duino
9. Reiniciamos la aplicación IDE A duino.
10. Pulsamos en He amien as

Placa y seleccionamos “A duino DUE (P og amming po )”.
11. En He amien as

Pue o seleccionamos el pue o COM que nos apa ezca.
12. In oduci emos el código (basado en C++) que apa ece en el anexo de es e documen o.
13. Pulsamos en “Subi ”:
Figu a 79: Bo ón “Subi ” del IDE de A duino
14. Pulsamos el bo ón de “RESET” de la placa A duino.
15. Ya end emos co iendo el p og ama en la placa A duino DUE
Técnica CGI
Nues a aplicación web, que se ca ga á en el se ido Tomca de la Raspbe y, se a a esc ibi siguiendo
la écnica CGI. Es a es una écnica web que pe mi e a un clien e (na egado web) solici a da os a un
p og ama ejecu able. Un p og ama CGI se puede esc ibi en cualquie lenguaje que gene e un
ejecu able. En nues o caso usa emos C++.
El p oceso de ac uación de un CGI es el siguien e:
1. El se ido (Tomca en nues o caso) ecibe una pe ición del clien e que ha ac i ado una URL
co espondien e a un p og ama CGI
A aceli Ga cía G anados
76
2. El se ido , al iden i ica que se a a de una URL co espondien e a un CGI, solici a la
ejecución de dicho p og ama, que si es á esc i o en C++ se compone de sen encias “p in ()”
con e ique as HTML como pa áme os de dichas sen encias.
3. Al ejecu a se el p og ama CGI se gene a un documen o HTML en la salida es ánda que ecibe
el se ido (Tomca ).
4. El se ido en ía el documen o HTML al clien e (na egado ).
Figu a 80: Técnica CGI
Segu idad. Ins alación de co a uegos
Un co a uegos se u iliza undamen almen e pa a e i a que los usua ios de In e ne no au o izados
engan acceso a edes p i adas conec adas a In e ne . Todos los mensajes que en en o salgan de la ed
p i ada pasan a a és del co a uegos, que examina cada mensaje y bloquea aquellos que no cumplen
los c i e ios de segu idad especi icados.
En nues o caso amos a p o ege el acceso a la Raspbe y de accesos no au o izados ins alando en el
mismo el so wa e i ewall “u w”. Es e co a uegos es uno de los más sencillos de con igu a como
indican sus iniciales, “uncomplica ed i ewall”.
Pa a su ins alación y con igu ación segui emos es e p ocedimien o:
1. Ins alamos el co a uegos:
oo @ aspbe ypi:/home/pi# ap -ge ins all u w
2. Po de ec o el co a uegos u w deniega odo el á ico en an e y pe mi e odo el á ico salien e.
Vamos a modi ica lo pe mi iendo únicamen e el acceso al se icio SSH (que enemos
con igu ado en el pue o 9122) y el acceso al se ido Tomca (con igu ado po de ec o en el
pue o 8080):
oo @ aspbe ypi:/home/pi# u w allow 9122/ cp
oo @ aspbe ypi:/home/pi# u w allow 8080/ cp
3. Ac i amos el co a uegos:
oo @ aspbe ypi:/home/pi# u w enable
4. Pa a isualiza las eglas in oducidas en el co a uego in oduci emos el comando:
oo @ aspbe ypi:/home/pi# u w s a us
A aceli Ga cía G anados
77
5. Si quisié amos es ablece el co a uegos a alo es po de ec o in oduci emos el comando:
oo @ aspbe ypi:/home/pi# u w ese
Aplicación Web
En es e apa ado amos a c ea la es uc u a de la aplicación web en nues o PC con la aplicación
Eclipse y pos e io men e la lle a emos a la Raspbe y donde inclui emos los p og amas en C++.
1. Desca gamos de h ps://www.eclipse.o g/downloads/packages/ elease/keple /s 2/eclipse-ide-
ja a-ee-de elope s la aplicación “Eclipse IDE o Ja a EE De elope s” y la ins alamos en
nues o PC. Una ez ins alada, la ab imos pulsando sob e su icono:
Figu a 81: Icono aplicación Eclipse
2. Seleccionamos File

New

Dynamic Web P ojec
3. Damos nomb e a nues a aplicación y pulsamos en “Finish”:
Figu a 82: C eación de un nue o p oyec o en Eclipse

A aceli Ga cía G anados
78
4. Aho a c ea emos la ca pe a que aloja á los iche os CGI. Con el bo ón de echo del a ón
pulsamos en WEB-INF (ubicada en la ca pe a WebCon en de nues o p oyec o TFG) y
seleccionamos New

Folde , e in oducimos “cgi” como “Folde name”. Pulsamos en
“Finish”.
5. Vamos a c ea el desc ip o de despliegue de nues a aplicación. Con el bo ón de echo del
a ón pulsamos en WEB-INF y seleccionamos New

File, e in oducimos “web.xml” como
“File name”. Pulsamos en “Finish”.
6. Hacemos doble clic sob e el iche o ecién c eado, e incluimos es e ex o:
<?xml e sion="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="h p://www.w3.o g/2001/XMLSchema-ins ance" xmlns="h p://xmlns.jcp.o g/xml/ns/ja aee"
xsi:schemaLoca ion="h p://xmlns.jcp.o g/xml/ns/ja aee h p://xmlns.jcp.o g/xml/ns/ja aee/web-app_3_1.xsd"
id="WebApp_ID" e sion="3.1">
<display-name>TFG</display-name>
<welcome- ile-lis >
<welcome- ile>cgi-bin/ g</welcome- ile>
</welcome- ile-lis >
<se le >
<se le -name>cgi</se le -name>
<se le -class>o g.apache.ca alina.se le s.CGISe le </se le -class>
<ini -pa am>
<pa am-name>cgiPa hP e ix</pa am-name>
<pa am- alue>WEB-INF/cgi</pa am- alue>
</ini -pa am>
<ini -pa am>
<pa am-name>execu able</pa am-name>
<pa am- alue></pa am- alue>
</ini -pa am>
<load-on-s a up>5</load-on-s a up>
</se le >
<se le -mapping>
<se le -name>cgi</se le -name>
<u l-pa e n>/cgi-bin/*</u l-pa e n>
</se le -mapping>
</web-app>
Vamos a comen a el código an e io :
P ime o decla amos el documen o xml en e sión 1.0 y con juego de ca ac e es UTF-8:
<?xml e sion="1.0" encoding="UTF-8"?>
Es e es el elemen o aíz del documen o XML:
<web-app xmlns:xsi="h p://www.w3.o g/2001/XMLSchema-ins ance" xmlns="h p://xmlns.jcp.o g/xml/ns/ja aee"
xsi:schemaLoca ion="h p://xmlns.jcp.o g/xml/ns/ja aee h p://xmlns.jcp.o g/xml/ns/ja aee/web-app_3_1.xsd"
id="WebApp_ID" e sion="3.1">
Damos un nomb e a la aplicación, TFG:
<display-name>TFG</display-name>
Le indicamos a Tomca que en caso de que la URL que esc ibe el clien e indique únicamen e el
di ec o io de la aplicación (en nues o caso …/TFG), el ecu so que debe a ende lo se encuen a
en …/TFG/cgi-bin/ g:
<welcome- ile-lis >
<welcome- ile>cgi-bin/ g</welcome- ile>
</welcome- ile-lis >
C eamos un único se le con el nomb e “cgi”:
A aceli Ga cía G anados
79
<se le >
<se le -name>cgi</se le -name>
Iden i icamos la clase que a a a ende a es e se le . Al a a se de un CGI la clase es
o g.apache.ca alina.se le s.CGISe le :
<se le -class>o g.apache.ca alina.se le s.CGISe le </se le -class>
La búsqueda de los ecu sos cgi comenza á desde la ca pe a WEB-INF/cgi:
<ini -pa am>
<pa am-name>cgiPa hP e ix</pa am-name>
<pa am- alue>WEB-INF/cgi</pa am- alue>
</ini -pa am>
In o mamos que el iche o (CGI) es un ejecu able:
<ini -pa am>
<pa am-name>execu able</pa am-name>
<pa am- alue></pa am- alue>
</ini -pa am>
La p io idad en la ca ga es de 5:
<load-on-s a up>5</load-on-s a up>
</se le >
Las pe iciones con URL …:8080/TFG/cgi-bin/… las a ende án los ecu sos …:8080/TFG/WEB-
INF/cgi/…
<se le -mapping>
<se le -name>cgi</se le -name>
<u l-pa e n>/cgi-bin/*</u l-pa e n>
</se le -mapping>
</web-app>
7. Aho a end emos que lle a nos la aplicación de nues o PC a la Raspbe y. Con el bo ón
de echo del a ón pulsamos en TFG y seleccionamos Expo

WAR ile, e in oducimos un
nomb e al iche o WAR en el campo “Des ina ion”, po ejemplo “F: TFG.wa ”. Pulsamos en
“Finish”.
8. Una ez gua dada la aplicación, ab imos el manage de Tomca 8 in oduciendo en el
na egado de nues o PC la di ección h p://192.168.1.100:8080/manage , siendo
192.168.1.100 la di ección IP de la Raspbe y.
9. En el apa ado “Desplega ” pulsamos en “Selecciona a chi o” y buscamos el iche o WAR
an e io men e gua dado. Pulsamos en el bo ón “Desplega ”, que se encuen a jus o debajo de
“Selecciona a chi o”.
Figu a 83: Despliegue de a chi o WAR desde Tomca
A aceli Ga cía G anados
80
10. En la ca pe a / a /lib/ omca 8/webapps de la Raspbe y se hab á ca gado nues a aplicación
TFG.
11. Nos cambiamos al di ec o io TFG/WEB-INF/cgi
cd / a /lib/ omca 8/webapps/TFG/WEB-INF/cgi
, y c eamos los siguien es iche os C++:
/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi/ g.c
/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi/ ele.c
/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi/calib a .c
/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi/ egis o.c
/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi/ ese A duino.c
, con el código que apa ece en el anexo a es e abajo.
12. Compilamos los iche o an e io es:
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# g++ -o g g.c -lwi ingPi
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# g++ -o ele ele.c -lwi ingPi
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# g++ -o calib a calib a .c -lwi ingPi
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# g++ -o egis o egis o.c
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# g++ -o ese A duino ese A duino.c -
lwi ingPi
13. Damos pe miso de ejecución al usua io “ omca 8” pa a los iche o an e io es:
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# chmod +x g
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# chmod +x ele
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# chmod +x calib a
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# chmod +x egis o
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG/WEB-INF/cgi# chmod +x ese A duino
14. C eamos el iche o “da os. x ” en la ca pe a / a /lib/ omca 8/webapps/TFG
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG# nano da os. x
, con es e con enido:
968
169
523.5
223.0
15. Damos pe misos de esc i u a y lec u a a “ omca 8” pa a el iche o an e io :
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG# chmod 666 da os. x
16. C eamos la ca pe a / a /lib/ omca 8/webapps/TFG /imagenes
oo @ aspbe ypi:/ a /lib/ omca 8/webapps/TFG# mkdi imagenes
17. Gua damos en la ca pe a / a /lib/ omca 8/webapps/TFG/imagenes los iche os de las imágenes:
on.jpg
A aceli Ga cía G anados
81
o .jpg
eca ga .jpg
calib a .jpg
us.png
18. Cambiamos el usua io y el g upo a oda la aplicación TFG pa a que el usua io “ omca 8”
pueda ejecu a la aplicación cuando se accede desde un na egado :
oo @ aspbe ypi:/ a /lib/ omca 8/webapps# chown -R omca 8 TFG
oo @ aspbe ypi:/ a /lib/ omca 8/webapps# chg p -R omca 8 TFG
Con es o ya enemos p epa ada la aplicación en la Raspbe y. Si ambién hemos ca gado el p og ama de
la placa A duino ( e código en el anexo), sólo nos queda ealiza las conexiones ( e apa ado
siguien e) y ejecu a la aplicación desde cualquie na egado in oduciendo la di ección URL:
analizado .ddns.ne :8080/TFG
, o ambién
192.168.1.100:8080/TFG
, si se accede desde un e minal conec ado a la misma ed wi i que la Raspbe y.
Mon aje y uncionamien o gene al
En la siguien e igu a se mues a las conexiones de los dis in os elemen os del disposi i o.
Figu a 84: Conexionado del disposi i o
A aceli Ga cía G anados
88
loa h4c; //Coe icien e de dis o sión del a mónic0 4 de la ensión
loa h5c; //Coe icien e de dis o sión del a mónic0 5 de la ensión
loa h6c; //Coe icien e de dis o sión del a mónic0 6 de la ensión
loa h7c; //Coe icien e de dis o sión del a mónic0 7 de la ensión
loa h8c; //Coe icien e de dis o sión del a mónic0 8 de la ensión
cha maquina[30]; //Va a con ene la di ección IP de la máquina que solici a la página
La unción “main” cons a de a ias llamadas a unciones que desc ibi emos más adelan e:
in main (in a gc, cha *a g [], cha *en []) {
s cpy(maquina,en [2]); //copiamos en la a iable "maquina" la di ección IP de hos emo o
cap u a Lec u asDelA duino();
ob ene TensionesCo ien es();
o dena Mues as();
//ondasP ueba();
ob ene A monicosTension();
ob ene A monicosCo ien e();
ob ene Fac o Po encia();
c ea HTML();
egis o();
e u n 0;
}
La unción “ egis o” ob iene la echa del sis ema y la di ección IP de la máquina que accede a la web y
g aba en el iche o “ egis o. x ” es a in o mación así como la ensión, co ien e y po encia :
oid egis o(){
Ob enemos la echa del sis ema en la a iable “ echa”:
cha echa[25];//c ime de uel e 26 ca ac e es pe o ambién se pod ía usa un pun e o de cha
ime_ cu en _ ime;
cu en _ ime= ime(NULL);
c ime(¤ _ ime);
s cpy( echa,c ime(¤ _ ime));
Ab imos el iche o “ egis o. x ” como esc i u a al inal del mismo:
FILE * p= open("../../ egis o. x ","a"); //ab imos /TFG/ egis o. x como esc i u a al inal del mismo
i ( p==NULL) {
p in ("No se puede ab i el iche o egis o. x desde g n");
}
Sus i uimos el ca ác e in de línea ( n) que inco po a la a iable echa po un in de cadena ( 0) pa a
que no nos aplique el sal o de línea al imp imi “ echa”:
echa[sizeo ( echa)-1]=' 0'; //sus i uimos el úl imo ca ác e , n, de echa po un 0
Esc ibimos en el iche o la di ección IP emo a, echa, ensión, co ien e, y po encia. La a iable
máquina iene la o ma “REMOTE_HOST=xxx.xxx.xxx.xxx”, siendo “xxx.xxx.xxx.xxx” la di ección IP de
hos emo o. Pa a elimina el ex o “REMOTE_HOST” usamos la unción “s ch ” que se encuen a en
la lib e ía “s ing.h”:
p in ( p,"IP emo o:%s Fecha:%s Ve :%.1 V Ie :%.3 A P:%.1 W n",s ch (maquina,'=')+1, echa,Ve ,Ie ,po enciaP);
Ce amos el iche o:
close( p);
e u n;
}
La unción “ondasP ueba” gene a una onda de ensión de 230V (e icaces) y una onda de co ien e de 5A
(e icaces) des asada 22.5º en a aso. Es a unción la usamos pa a ealiza comp obaciones de

A aceli Ga cía G anados
89
pa áme os. Si hacemos uso de es a unción no debemos llama a las unciones
“cap u a Lec u asDelA duino” , “ob ene TensionesCo ien es” y “o dena Mues as()”:
//Gene a ondas de p ueba de ensión y co ien e
//Pa a llama a ondasP ueba() no debemos llama a ninguna de es as unciones:
// cap u a Lec u asDelA duino();
// ob ene TensionesCo ien es();
// o dena Mues as();
oid ondasP ueba(){
o (in i=0;i<nume oMues as;i++){
ension[i]=230.0*sq (2)*sin(100*pi*0.02*i/(nume oMues as-1));
co ien e[i]=5.0*sq (2)*sin(100*pi*0.02*i/(nume oMues as-1)-pi/8); //ca ga induc i a
po encia[i]= ension[i]*co ien e[i];
}
ImaxG a ica=8.0;
VmaxG a ica=230.0*sq (2);
PmaxG a ica=5000.0;
}
La unción “cap u a Lec u asDelA duino” iene como obje i o ecoge las mues as (núme os en e os
en el ango 0 a 2^Nbi s-1, siendo “Nbi s” en el núme os de bi s del ADC) omadas po el A duino y
almacena las en los ec o es mues aV[] y mues aI[], además de de e mina la máxima mues a de
ensión (mues aVmax) y la mínima (mues aVmin), co ien e media (mues aImedia), así como los
núme os de mues a en que se dan las mues as máximas de ensión y co ien e (nVmax, nImax). Las
mues as máximas y los ins an es en que se dan los u iliza emos pa a mos a en las g á icas de ensión y
de co ien e los alo es máximos ( e unción c ea HTML()). Las alo es mues aVmax, mues aVmin y
mues aImedia los usa emos pa a con e i las mues as a ol ios y ampe ios en la u ina
“ob ene TensionesCo ien e()”.
//Recoge las lec u as omadas po el a duino
oid cap u a Lec u asDelA duino(){
Inicializamos el pue o se ie (UART) a bpsUART=115200 bi s po segundo como medio de comunicación
con el A duino:
in d;
i (( d=se ialOpen("/de / yACM0",bpsUART))<0){
p in ("No se puede ab i el disposi i o se ie yACM0 n");
e u n;
}
Espe amos unos 150us pa a que se inicialice el pue o se ie:
usleep(150);
En iamos al A duino el ca ác e “*” pa a o dena le que comience a oma lec u as:
in da oLeido;
se ialPu cha ( d,'*'); //En iamos es e ca ác e al a duino;
Cada mues a que ob iene el A duino es un núme o en e o que a del 0 al 2^Nbi s-1, siendo “Nbi s” el
núme o de bi s del ADC, y que emi e a la Raspbe y po el pue o se ie como 4 ca ac e es, empezando
po el más signi ica i o. La unción se ialDa aA ail() comp ueba que la Raspbe y enga algún ca ác e
po lee , y en caso a i ma i o lo cap u a con la unción se ialGe cha (). En la a iable “ o al” amos
acumulando las sumas pa ciales que co esponde cada dígi o de cada mues a. Una ez e minado de
o aliza los 4 dígi os de la p ime a mues a se con inúa con el p ime dígi o de la segunda mues a, y así
sucesi amen e has a comple a el o al de mues as:
//Lec u a de ensiones
o (in i=0;i<nume oMues as;i++){
in o al=0;
o (in j=0;j<4;j++){
while (se ialDa aA ail( d)<0){};
cha c=se ialGe cha ( d);
A aceli Ga cía G anados
90
i (c==32) da oLeido=0; //Un ca ac e en blanco lo conside amos como un 0
else da oLeido=c-48; //Con e imos el ca ac e a un digi o decimal
i (da oLeido>=0 && da oLeido<=9){
o al= o al+da oLeido*pow(10,3-j);
}
}
mues aV[i]= o al;
//p in ("%4i %i n",i,mues aV[i]);
}
El mismo p oceso an e io se sigue pa a las mues as de co ien e:
//Lec u a de co ien es
o (in i=0;i<nume oMues as;i++){
in o al=0;
o (in j=0;j<4;j++){
while (se ialDa aA ail( d)<0){};
cha c=se ialGe cha ( d);
i (c==32) da oLeido=0; //Un ca ac e en blanco lo conside amos como un 0
else da oLeido=c-48; //Con e imos el ca ac e a un digi o decimal
i (da oLeido>=0 && da oLeido<=9){
o al= o al+da oLeido*pow(10,3-j);
}
}
mues aI[i]= o al;
//p in ("%4i %i n",i,mues a [i]);
}
Ce amos el pue o se ie:
se ialClose( d);
Una ez que enemos odas las mues as de ensiones y co ien es (como núme os en e os que an del 0
al 2^Nbi s-1) hallamos los alo es máximos y mínimos de la ensión (mues aVmax, mues aVmin), alo
medio de la co ien e (mues aImedia), así como los ins an es (núme o de mues a) en que se p oducen
los alo es máximos (nVmax, nImax):
//De e minación de los alo es máximos y mínimos de las lec u as
mues aVmax=mues aV[0];
mues aVmin=mues aV[0];
mues aImedia=0;
nImax=0;
o (in i=0;i<nume oMues as;i++){
i (mues aV[i]>mues aVmax){
mues aVmax=mues aV[i];
nVmax=i;
}
i (mues aV[i]<mues aVmin) mues aVmin=mues aV[i];
mues aImedia=mues aImedia+mues aI[i];
i (mues aI[i]>mues aI[nImax]){
nImax=i;
}
}
mues aImedia=mues aImedia/nume oMues as;
}
La unción “ob ene TensionesCo ien es” con ie e las mues as de ensión y de co ien e que ha
en iado el A duino ( alo es en e os comp endidos en e 0 y 2^Nbi s-1) en alo es de ol ios y ampe ios:
//Ob enemos los alo es de las ensiones y co ien es a pa i de las mues as omadas
oid ob ene TensionesCo ien es(){
Ab imos el iche o “da os. x ” en modo lec u a:
//leemos del iche o "da os. x " la ensión e icaz de la ed
FILE * p= open("../../da os. x "," "); //ab imos /TFG/da os. x como lec u a
i ( p==NULL) {
A aceli Ga cía G anados
91
p in ("No se puede ab i el iche o da os. x desde g n");
}
Leemos el p ime da o y lo gua damos en la a iable “da oVmax”:
cha cadena[5];
scan ( p,"%s",cadena); //Leemos del iche o "da os. x " la lec u a de ensión máxima
in da oVmax=a oi(cadena);
Leemos el segundo da o y lo gua damos en la a iable “da oVmin”:
scan ( p,"%s",cadena); //Leemos del iche o "da os. x " la lec u a de ensión mínima
in da oVmin=a o (cadena);
Leemos el e ce da o y lo gua damos en la a iable “da oImedia”:
scan ( p,"%s",cadena); //Leemos del iche o "da os. x " la lec u a de co ien e media
loa da oImedia=a o (cadena);
Leemos el cua o da o y lo gua damos en la a iable “da oVe ”:
scan ( p,"%s",cadena); //Leemos del iche o "da os. x " la ensión e icaz
loa da oVe =a o (cadena);
Ce amos el iche o “da os. x ”:
close( p);
T aducimos cada lec u a de ensión y co ien e del A duino (0 a 2^Nbi s-1) a ol ios y ampe ios,
espec i amen e, según las ó mulas desc i as en el capí ulo de “calib ación”:








 minmax
max
212 mues aVmues aV
mues amues aV
VV e
 
diamues aIme-mues a
2
3.3
10 adsensibilid
I
VIP
Pmax= ension[0]*co ien e[0];
/*
La ensión en cada ins an e se calcula en unción de:
mues aV[i]: mues a de ensión omada po el A duino en ese ins an e
da oVe : alo e icaz de la ensión en la ase de calib ación
da oVmax: mues a máxima de la ensión omada po el A duino en la ase de calib ación
da oVmin: mues a mínima de la ensión omada po el A duino en la ase de calib ación
La co ien e en cada ins an e se calcula en unción de:
mues aI[i]: mues a de co ien e omada po el A duino en ese ins an e
senSenso Co : sensibilidad del senso de co ien e (en V/A)
NBi s: núme o de bi s del ADC del A duino
da oImedia: mues a media de la co ien e omada po el A duino en la ase de calib ación
*/
o (in i=0;i<nume oMues as;i++){
ension[i]=sq (2)*da oVe *(1.0-2.0*(da oVmax-mues aV[i])/(da oVmax-da oVmin));
co ien e[i]=3.3/(senSenso Co *pow(2,NBi s))*(mues aI[i]-da oImedia);
po encia[i]= ension[i]*co ien e[i];
De e minamos la po encia máxima y el núme o de mues a en la que se p oduce:
i (po encia[i]>Pmax){
Pmax=po encia[i];
nPmax=i;
}
//p in (" ension(%3i)=%.1 ; n",i+1, ension[i]); //pa a compa a con Ma lab
}
Hallamos los alo es máximos de las ensiones y co ien es:
A aceli Ga cía G anados
92
Vmax= ension[nVmax];
Imax=co ien e[nImax];
De e minamos los alo es máximos, de ensión, co ien e y po encia, y que usa emos como alo es
máximos a escala en la g á ica:
VmaxG a ica=Vmax;
i (Imax<1) ImaxG a ica=2.0; else ImaxG a ica=Imax;
i (Pmax<500.0) PmaxG a ica=500.0; else PmaxG a ica=Vmax*Imax;
}
La unción “o dena Mues as()” iene como unción o dena las mues as de o ma que la p ime a
mues a enga ase 0 pa a la ensión:
//O dena las mues as de o ma que la ase de la onda de ensión a dibuja sea 0
oid o dena Mues as(){
Buscamos el núme o “j” de la mues a cuya ensión más se ace que a 0 y es é en ase c ecien e:
//O dena las mues as de o ma que la ase de la onda de ensión a dibuja sea 0
oid o dena Mues as(){
in j=0;
in minimo=abs( ension[0]);
//buscanmos la ensión mínima cuando la unción c ece
o (in i=1;i<nume oMues as;i++){
i ( ension[i-1]< ension[i] && abs( ension[i])<minimo){
j=i;
minimo=abs( ension[i]);
}
}
j++;
i (j==nume oMues as) j=0;
//i (j>=nume oMues as) j=j-nume oMues as;
//El alo de j es la mues a con ensión 0 en ase c ecien e
loa m [nume oMues as];
loa mi[nume oMues as];
Copiamos las mues as de ensión y co ien e en nue os ec o es:
//Copiamos las mues as de ensiones y co ien es
o (in i=0;i<nume oMues as;i++){
m [i]= ension[i];
mi[i]=co ien e[i];
}
Las mues as de la “j” al inal las ponemos las p ime as:
//Las mues as desde la j has a el inal las ponemos las p ime as
o (in i=j;i<nume oMues as;i++){
ension[i-j]=m [i];
co ien e[i-j]=mi[i];
po encia[i-j]=m [i]*mi[i];
}
Las mues as de la “0” a la “j-1”las ponemos las úl imas:
//Las mues as desde la 0 has a la j-1 la ponemos las úl imas
o (in i=0;i<j;i++){
ension[nume oMues as-j+i]=m [i];
co ien e[nume oMues as-j+i]=mi[i];
po encia[nume oMues as-j+i]=m [i]*mi[i];
}
Al habe cambiado de o den las mues as, enemos que ecalcula los ins an es en que se dan los
máximos y mínimos de las ensiones, co ien es y po encias:
A aceli Ga cía G anados
93
//Ac ualizamos los ins an es en que se p oducen los máximos
i (nVmax>=j) nVmax=nVmax-j;
else nVmax=nume oMues as-j+nVmax;
i (nImax>=j) nImax=nImax-j;
else nImax=nume oMues as-j+nImax;
i (nPmax>=j) nPmax=nPmax-j;
else nPmax=nume oMues as-j+nPmax;
}
La unción “ob ene A monicosTensión” iene como obje i o halla el alo e icaz de la ensión (Ve ), el
alo medio de la ensión (Vm), el alo e icaz de la componen e undamen al de la ensión (a m1), los
alo es e icaces de los a mónicos 2 al 8 (a m2, a m3,…, a m8), la dis o sión a mónica o al ( hd), y las
dis o siones de co espondien es a los a mónicos 2 al 8 ( h2, h3,…, h8)
La a iable
1
a
a a i almacenando el alo de









1
0
)(
2m
nm
nT
nsen
m
nT
m

La a iable
1
b
a a i almacenando el alo









1
0
cos)(
2m
nm
nT
n
m
nT
m

La a iable
2
a
a a i almacenando el alo









1
0
2)(
2m
nm
nT
nsen
m
nT
m

La a iable
2
b
a a i almacenando el alo









1
0
2cos)(
2m
nm
nT
n
m
nT
m

, y así sucesi amen e pa a
3
a
,
3
b
…
8
a
,
8
b
La a iable
e
V
a a i almacenando el alo










1
0
2
m
n
e m
nT
V
a la que pos e io men e di idi emos po
m
y le ealiza emos la aíz cuad ada.
La a iable
m
V
a a i almacenando el alo










1
0
1m
n
mm
nT
m
V
, es deci , el alo medio de la ensión.
//Ob enemos in o mación de los a mónicos
oid ob ene A monicosTension(){
loa a1=0;
loa b1=0;
loa a2=0;
loa b2=0;
loa a3=0;
loa b3=0;
loa a4=0;
loa b4=0;
loa a5=0;
loa b5=0;
loa a6=0;
loa b6=0;
loa a7=0;
loa b7=0;
loa a8=0;
loa b8=0;
Ve =0;
Vm=0;
El suma o io de cada una de las a iables an e io es se implemen a en el bucle “ o ” siguien e:
o (in i=0;i<nume oMues as;i++){

A aceli Ga cía G anados
94
Ve =Ve + ension[i]* ension[i];
Vm=Vm+ ension[i]/nume oMues as;
a1=a1+sq (2)/nume oMues as* ension[i]*sin(2*pi*50*i*0.02/nume oMues as);
b1=b1+sq (2)/nume oMues as* ension[i]*cos(2*pi*50*i*0.02/nume oMues as);
a2=a2+sq (2)/nume oMues as* ension[i]*sin(2*2*pi*50*i*0.02/nume oMues as);
b2=b2+sq (2)/nume oMues as* ension[i]*cos(2*2*pi*50*i*0.02/nume oMues as);
a3=a3+sq (2)/nume oMues as* ension[i]*sin(3*2*pi*50*i*0.02/nume oMues as);
b3=b3+sq (2)/nume oMues as* ension[i]*cos(3*2*pi*50*i*0.02/nume oMues as);
a4=a4+sq (2)/nume oMues as* ension[i]*sin(4*2*pi*50*i*0.02/nume oMues as);
b4=b4+sq (2)/nume oMues as* ension[i]*cos(4*2*pi*50*i*0.02/nume oMues as);
a5=a5+sq (2)/nume oMues as* ension[i]*sin(5*2*pi*50*i*0.02/nume oMues as);
b5=b5+sq (2)/nume oMues as* ension[i]*cos(5*2*pi*50*i*0.02/nume oMues as);
a6=a6+sq (2)/nume oMues as* ension[i]*sin(6*2*pi*50*i*0.02/nume oMues as);
b6=b6+sq (2)/nume oMues as* ension[i]*cos(6*2*pi*50*i*0.02/nume oMues as);
a7=a7+sq (2)/nume oMues as* ension[i]*sin(7*2*pi*50*i*0.02/nume oMues as);
b7=b7+sq (2)/nume oMues as* ension[i]*cos(7*2*pi*50*i*0.02/nume oMues as);
a8=a8+sq (2)/nume oMues as* ension[i]*sin(8*2*pi*50*i*0.02/nume oMues as);
b8=b8+sq (2)/nume oMues as* ension[i]*cos(8*2*pi*50*i*0.02/nume oMues as);
}
Como indicamos an e io men e, al alo de
e
V
hallado an e io men e enemos que di idi lo po el
núme o de mues as y aplica le la aíz cuad ada pa a que ep esen e ealmen e el alo e icaz:
Ve =sq (Ve /nume oMues as);
Hallamos el alo e icaz de cada a mónico:
22 iii baa m 
a m1 =sq (a1*a1+b1*b1);
a m2 =sq (a2*a2+b2*b2);
a m3 =sq (a3*a3+b3*b3);
a m4 =sq (a4*a4+b4*b4);
a m5 =sq (a5*a5+b5*b5);
a m6 =sq (a6*a6+b6*b6);
a m7 =sq (a7*a7+b7*b7);
a m8 =sq (a8*a8+b8*b8);
Hallamos los coe icien es a mónicos:
1
a m
a m
TH i
i
h2 =abs(a m2 /a m1 );
h3 =abs(a m3 /a m1 );
h4 =abs(a m4 /a m1 );
h5 =abs(a m5 /a m1 );
h6 =abs(a m6 /a m1 );
h7 =abs(a m7 /a m1 );
h8 =abs(a m8 /a m1 );
De e minamos la dis o sión a mónica o al:
2
8
2
4
2
3
2
2... HDHDHDHDTHD 
hd =sq ( h2 * h2 + h3 * h3 + h4 * h4 + h5 * h5 + h6 * h6 + h7 * h7 + h8 * h8 );
Hallamos el ángulo
1

, es deci , el des ase de la componen e undamen a de la onda de ensión:
i (a1>0) i_ 1=a an(b1/a1);
else i_ 1=a an(b1/a1)+pi;
A aceli Ga cía G anados
95
Mos amos los esul ados si descomen amos el código. Es os esul ados únicamen e se isualiza án si
ejecu amos el p og ama C++ en local. En emo o (median e na egado web) se e á en pan alla con el
código HTML que se desc ibe un poco más abajo:
/*
p in ("Valo e icaz de la ensión: % n",Ve );
p in ("Valo e icaz de la componen e undamen al de la ensión: % n",a m1 );
p in ("Valo e icaz del a mónico 2 de la ensión: % n",a m2 );
p in ("Valo e icaz del a mónico 3 de la ensión: % n",a m3 );
p in ("Valo e icaz del a mónico 4 de la ensión: % n",a m4 );
p in ("Valo e icaz del a mónico 5 de la ensión: % n",a m5 );
p in ("Valo e icaz del a mónico 6 de la ensión: % n",a m6 );
p in ("Valo e icaz del a mónico 7 de la ensión: % n",a m7 );
p in ("Valo e icaz del a mónico 8 de la ensión: % n",a m8 );
p in ("Dis o sión a mónica de la onda de ensión: % n", hd );
*/
/*
p in ("Valo medio: %7.2 n",Vm);
p in ("Valo e icaz: %7.2 n",Ve );
p in ("Componen e undamen al: %7.2 n",a m1 );
p in ("Dis o sión a mónica o al, THD(%): %7.2 n",100* hd );
p in ("Dis o sión a mónica de o den 2 (%): %7.2 n",100* h2 );
p in ("Dis o sión a mónica de o den 3 (%): %7.2 n",100* h3 );
p in ("Dis o sión a mónica de o den 4 (%): %7.2 n",100* h4 );
p in ("Dis o sión a mónica de o den 5 (%): %7.2 n",100* h5 );
p in ("Dis o sión a mónica de o den 6 (%): %7.2 n",100* h6 );
p in ("Dis o sión a mónica de o den 7 (%): %7.2 n",100* h7 );
p in ("Dis o sión a mónica de o den 8 (%): %7.2 n",100* h8 );
*/
}
La unción “ob ene A monicosCo ien e” iene la unción que “ob ene A monicosTensión” pe o aho a
pa a la co ien e:
oid ob ene A monicosCo ien e(){
loa a1=0;
loa b1=0;
loa a2=0;
loa b2=0;
loa a3=0;
loa b3=0;
loa a4=0;
loa b4=0;
loa a5=0;
loa b5=0;
loa a6=0;
loa b6=0;
loa a7=0;
loa b7=0;
loa a8=0;
loa b8=0;
o (in i=0;i<nume oMues as;i++){
Ie =Ie +co ien e[i]*co ien e[i];
Im=Im+1/0.02*co ien e[i]*(0.02/nume oMues as);
a1=a1+sq (2)/nume oMues as*co ien e[i]*sin(2*pi*50*i*0.02/nume oMues as);
b1=b1+sq (2)/nume oMues as*co ien e[i]*cos(2*pi*50*i*0.02/nume oMues as);
a2=a2+sq (2)/nume oMues as*co ien e[i]*sin(2*2*pi*50*i*0.02/nume oMues as);
b2=b2+sq (2)/nume oMues as*co ien e[i]*cos(2*2*pi*50*i*0.02/nume oMues as);
a3=a3+sq (2)/nume oMues as*co ien e[i]*sin(3*2*pi*50*i*0.02/nume oMues as);
b3=b3+sq (2)/nume oMues as*co ien e[i]*cos(3*2*pi*50*i*0.02/nume oMues as);
a4=a4+sq (2)/nume oMues as*co ien e[i]*sin(4*2*pi*50*i*0.02/nume oMues as);
b4=b4+sq (2)/nume oMues as*co ien e[i]*cos(4*2*pi*50*i*0.02/nume oMues as);
a5=a5+sq (2)/nume oMues as*co ien e[i]*sin(5*2*pi*50*i*0.02/nume oMues as);
b5=b5+sq (2)/nume oMues as*co ien e[i]*cos(5*2*pi*50*i*0.02/nume oMues as);
a6=a6+sq (2)/nume oMues as*co ien e[i]*sin(6*2*pi*50*i*0.02/nume oMues as);
b6=b6+sq (2)/nume oMues as*co ien e[i]*cos(6*2*pi*50*i*0.02/nume oMues as);
a7=a7+sq (2)/nume oMues as*co ien e[i]*sin(7*2*pi*50*i*0.02/nume oMues as);
b7=b7+sq (2)/nume oMues as*co ien e[i]*cos(7*2*pi*50*i*0.02/nume oMues as);
a8=a8+sq (2)/nume oMues as*co ien e[i]*sin(8*2*pi*50*i*0.02/nume oMues as);
A aceli Ga cía G anados
96
b8=b8+sq (2)/nume oMues as*co ien e[i]*cos(8*2*pi*50*i*0.02/nume oMues as);
}
Ie =sq (Ie /nume oMues as);
a m1c=sq (a1*a1+b1*b1);
a m2c=sq (a2*a2+b2*b2);
a m3c=sq (a3*a3+b3*b3);
a m4c=sq (a4*a4+b4*b4);
a m5c=sq (a5*a5+b5*b5);
a m6c=sq (a6*a6+b6*b6);
a m7c=sq (a7*a7+b7*b7);
a m8c=sq (a8*a8+b8*b8);
h2c=abs(a m2c/a m1c);
h3c=abs(a m3c/a m1c);
h4c=abs(a m4c/a m1c);
h5c=abs(a m5c/a m1c);
h6c=abs(a m6c/a m1c);
h7c=abs(a m7c/a m1c);
h8c=abs(a m8c/a m1c);
hdc=sq ( h2c* h2c+ h3c* h3c+ h4c* h4c+ h5c* h5c+ h6c* h6c+ h7c* h7c+ h8c* h8c);
i (a1>0) i_c1=a an(b1/a1);
else i_c1=a an(b1/a1)+pi;
/*
p in ("Valo medio: %7.2 n",Im);
p in ("Valo e icaz: %7.2 n",Ie );
p in ("Componen e undamen al: %7.2 n",a m1c);
p in ("Dis o sión a monica o al, THD(%): %7.2 n",100* hdc);
p in ("Dis o sión a mónica de o den 2 (%): %7.2 n",100* h2c);
p in ("Dis o sión a mónica de o den 3 (%): %7.2 n",100* h3c);
p in ("Dis o sión a mónica de o den 4 (%): %7.2 n",100* h4c);
p in ("Dis o sión a mónica de o den 5 (%): %7.2 n",100* h5c);
p in ("Dis o sión a mónica de o den 6 (%): %7.2 n",100* h6c);
p in ("Dis o sión a mónica de o den 7 (%): %7.2 n",100* h7c);
p in ("Dis o sión a mónica de o den 8 (%): %7.2 n",100* h8c);
*/
}
En la unción “ob ene Fac o Po encia” calculamos los siguien es pa áme os:
 
11
coscos i


VIS
11 VIS

cos
1
SP 
22
1PSQ 
222 QPSD 
S
P
FP 
oid ob ene Fac o Po encia(){
cos_ i=cos( i_ 1- i_c1); //des ase en e la onda de ensión y la undamen al de la co ien e
po enciaS=Ve *Ie ; //Po encia apa en e
loa po enciaS1=Ve *a m1c; //Po encia del p im a mónico
po enciaP=po enciaS1*cos_ i; //Po encia ac i a
po enciaQ=sq (po enciaS1*po enciaS1-po enciaP*po enciaP); //Po encia eac i a
po enciaD=sq (po enciaS*po enciaS-po enciaP*po enciaP-po enciaQ*po enciaQ); //Po encia eac i a de dis o sión
p=po enciaP/po enciaS;
}
La unción “c ea HTML” iene como obje i o c ea el código HTML pa a una página web en el que se
mues en las g á icas y pa áme os calculados:
//C ea la página HTML con los da os ob enidos
oid c ea HTML(){
A aceli Ga cía G anados
97
Indicamos que el ipo de con enido que en ia á la Raspbe y al na egado es ipo HTML:
p in ("Con en -Type: ex /h ml n n");
Decla amos el ipo de documen o, HTML5:
p in ("<!DOCTYPE h ml> n");
p in ("<h ml> n");
p in ("<head> n");
p in ("<me a cha se ='u -8'> n");
Le damos un í ulo a la página:
p in ("< i le>Analizado de ed</ i le> n");
Decla amos que la hoja de es ilos es á esc i a en CSS:
p in ("<s yle ype=' ex /css'> n");
De inimos los es ilos ( amaño de le a, colo y ipo de le a) pa a la e ique a “h2”:
p in ("h2{ on -size:24px;colo :b own; on -s yle:i alic} n");
Decla amos las ca ac e ís icas de un bo ón, “bo onRele”, con un bo de ma ón, sin padding, y en la
posición 65 pixeles hacia abajo y 820 pixeles hacia la de echa, con una dimensión de 140x140 pixeles.
Es e bo ón nos se i á pa a conec a y desconec a la ca ga:
Figu a 86: Bo ón conec a /desconec a de la aplicación web
p in ("#bo onRele{bo de :2px solid b own;padding:0;posi ion:absolu e; op:65px;le :820px;wid h:140px;heigh :140px} n");
Decla amos las ca ac e ís icas de o o bo ón, “bo onReca ga”, con un bo de ma ón, sin padding, y en
la posición 235 pixeles hacia abajo y 820 pixeles hacia la de echa, con una dimensión de 140x140
pixeles. Es e bo ón nos se i á pa a eca ga la página:
Figu a 87: Bo ón ac ualiza de la aplicación web
p in ("#bo onReca ga{bo de :2px solid
b own;padding:0;posi ion:absolu e; op:235px;le :820px;wid h:140px;heigh :140px} n");
Decla amos las ca ac e ís icas de o o bo ón, “bo onCalib a ”, con un bo de ma ón, sin padding, y en
la posición 405 pixeles hacia abajo y 820 pixeles hacia la de echa, con una dimensión de 140x140
pixeles. Es e bo ón nos se i á pa a calib a el disposi i o:
A aceli Ga cía G anados
104
p in ("</sc ip > n");
Iniciamos el p o ocolo se ie y espe amos unos 150us pa a da le iempo a la Raspbe y:
in d;
i (( d=se ialOpen("/de / yACM0",bpsUART))<0){
p in ("No se puede ab i el disposi i o se ie yACM0 n");
e u n;
}
usleep(150);
En iamos al A duino el ca ác e “2” pa a que lea su pin 52 que nos indica la si uación del elé (ce ado
o no):
se ialPu cha ( d,'2'); //En iamos es e ca ac e al a duino;
Espe amos a que el A duino nos de uel a el es ado del elé (un “1” si es á conec ado, o un “0” si es á
desconec ado):
while (se ialDa aA ail( d)<0){};
cha c=se ialGe cha ( d);
Si es á conec ado, mos amos un bo ón con la imagen de apagado po si pos e io men e que emos
apaga lo. El iche o “o .jpg” debemos ubica lo en la ca pe a /TFG/imagenes de nues a aplicación.
i (c=='1') p in ("<bu on id='bo onRele' onclick='apaga Rele();'><img s c='/TFG/imagenes/o .jpg'></bu on> n");
Si es á desconec ado, mos amos un bo ón con la imagen de encendido po si pos e io men e que emos
encende lo. El iche o “on.jpg” debemos ubica lo en la ca pe a /TFG/imagenes de nues a aplicación.
i (c=='0') p in ("<bu on id='bo onRele' onclick='encende Rele();'><img s c='/TFG/imagenes/on.jpg'></bu on> n");
Mos amos un bo ón de eca ga con un e en o “clic”, de mane a que cuando se pulse se eca gue la
página. La imagen de es e bo ón, “ eca ga.jpg” debemos ubica la en la ca pe a /TFG/imagenes de
nues a aplicación Web:
p in ("<bu on id='bo onReca ga' onclick='loca ion. eload();'><img s c='/TFG/imagenes/ eca ga .jpg'></bu on> n");
Mos amos un bo ón de calib a con un e en o “clic”, de mane a que cuando se pulse se ejecu e la
unción “calib a ()” de ja asc ip . La imagen de es e bo ón, “calib a .jpg” debemos ubica la en la
ca pe a /TFG/imagenes de nues a aplicación Web:
p in ("<bu on id='bo onCalib a ' onclick='calib a ();'><img s c='/TFG/imagenes/calib a .jpg'></bu on> n");
Mos amos una caja de ex o con iden i icado “cajaTex o” y alo p ede e minado “223.5”:
p in ("<inpu id='cajaTex o' ype=' ex ' alue='223.0'> n");
+
Finalmen e ce amos las e ique as “body” y “h ml”:
p in ("</body> n");
p in ("</h ml> n");

A aceli Ga cía G anados
105
Código C++ TFG/cgi/ ele.c de la Raspbe y
Es e es el p og ama que se llama á ía Ajax desde el código p incipal (/TFG/cgi-bin/ g). Su unción a a
se lee el da o que ae la llamada del ipo Pos . Si es “da a=uno” en ia á al A duino po el p o ocolo
se ie el ca ác e “1”, y si es “da a=ce o” en ia á al A duino el ca ác e “0”. El A duino, en unción del
ca ác e ecibido, ac i a á o desac i a á el elé a a és de su pin 53, espec i amen e.
Una ez esc i o el p og ama, lo compila emos con el comando:
g++ -o ele ele.c -lwi ingPi
Explicamos el código.
Decla amos las lib e ías que amos a necesi a :
//Lib e ías
#include <s dio.h> //pa a pode usa la unción p in ()
#include <wi ingSe ial.h> //pa a pode usa las unciones del pue o se ie
#include <unis d.h> //pa a pode usa la unción usleep()
#include <s dlib.h>
#include <s ing.h> //pa a pode usa la unción s cmp()
#de ine bpsUART 115200
in main ( oid){
cha inpu [50];
cha *lens ;
long len;
Ob enemos la cadena que con iene longi ud de la pe ición Pos :
lens = ge en ("CONTENT_LENGTH");
Asignamos a la a iable en e a “len” la longi ud de los da os en iados median e Pos :
i (lens != NULL && sscan (lens ,"%ld",&len)==1 && len <= 50){
Inicializamos el p o ocolo se ie a 115200bps:
in d;
i (( d=se ialOpen("/de / yACM0",bpsUART))<0){
p in ("No se puede ab i el disposi i o se ie yACM0 n");
e u n 0;
}
usleep(50);
Leemos los da os en iados median e Pos y los gua damos en la a iable “inpu ”:
ge s(inpu , len+1, s din);
Si “inpu ” es igual a “da a=uno”, en iamos po el pue o se ie al A duino el ca ác e “1” pa a que
p oceda a pone a “1” su pin 53 y así ac i e el elé:
i (s cmp(inpu ,"da a=uno")==0){
se ialPu cha ( d,'1');
}
Si “inpu ” es igual a “da a=ce o”, en iamos po el pue o se ie al A duino el ca ác e “0” pa a que
p oceda a pone a “0” su pin 53 y así desac i e el elé:
else i (s cmp(inpu ,"da a=ce o")==0){
se ialPu cha ( d,'0');
}
A aceli Ga cía G anados
106
se ialClose( d);
}
e u n 0 ;
}
A aceli Ga cía G anados
107
Código C++ TFG/cgi/calib a .c de la
Raspbe y
Es e es el p og ama que se llama á ía Ajax desde el código p incipal (/TFG/cgi-bin/ g). Su unción a a
se gua da en el iche o “da os. x ” es os cua o núme os:
1. mues a máxima de ensión (en e o en el ango 0-2^Nbi s-1).
2. mues a mínima de ensión (en e o en el ango 0-2^Nbi s-1).
3. mues a media de co ien e (decimal en el ango 0-2^Nbi s-1).
4. ensión e icaz (en ol ios) in oducida en la página web, apa ado de calib ación.
Es os cua o da os se los pasa el p og ama /TFG/cgi-bin/ g a /TFG/cgi-bin/calib a median e el mé odo
“pos ” ía “Ajax”.
Una ez esc i o el p og ama, lo compila emos con el comando:
g++ -o calib a calib a .c
Explicamos el código.
Incluimos las lib e ías necesa ias:
//Lib e ías
#include <s dio.h> //pa a pode usa la unción p in
#include <s ing.h> //pa a pode usa s len()
#include <ma h.h> //pa a pode usa la unción pow()
Incluimos el p o o ipo de la unción “lee Nume o”, que desc ibi emos más abajo:
loa lee Nume o(cha *cadena,in *n);
in main ( oid){
cha cadena[50];
cha *lens ;
long len;
Ab imos el iche o “da os. x ” en modo esc i u a. Debemos ene la p ecaución de cambia los pe misos
de es e iche o ya que se accede á a el ía web con el usua io “ omca 8” y si és e no iene pe miso de
esc i u a sob e el iche o, no lo pod á modi ica .
FILE * p= open("../../da os. x ","w"); //Ojo: chmod 777 da os. x
i ( p==NULL) {
p in ("No se puede ab i el iche o da os. x desde calib a n");
}
Ob enemos el alo de la a iable de en o no “CONTENT_LENGTH” que nos da á la longi ud de la
cadena de ex o ecibida po el mé odo “pos ” desde el ecu so /TFG/cgi-bin/ g:
lens = ge en ("CONTENT_LENGTH");
Comp obamos que dicha longi ud sea álida:
i (lens != NULL && sscan (lens ,"%ld",&len)==1 && len <= 50){
Ob enemos en la a iable “cadena” el ex o que nos en ía el ecu so /TFG/cgi-bin/ g:
ge s(cadena, len+1, s din); // ecogemos lo ecibido po Pos
A aceli Ga cía G anados
108
Leemos el p ime o núme o (lec u aVmax) que con iene “cadena” y lo gua damos en el iche o
“da os. x :
in i=0;
loa nume o=lee Nume o(cadena,&i);
p in ( p,"%.0 n",nume o);
Leemos el segundo núme o (lec u aVmin) que con iene “cadena” y lo gua damos en el iche o
“da os. x :
nume o=lee Nume o(cadena,&i);
p in ( p,"%.0 n",nume o);
Leemos el e ce núme o (lec u aImedia) que con iene “cadena” y lo gua damos en el iche o “da os. x :
nume o=lee Nume o(cadena,&i);
p in ( p,"%.1 n",nume o);
Leemos el cua o núme o (Ve ) que con iene “cadena” y lo gua damos en el iche o “da os. x :
nume o=lee Nume o(cadena,&i);
p in ( p,"%.1 n",nume o);
}
Ce amos el iche o “da os. x ” y e minamos:
close( p);
e u n 0 ;
}
Ru ina “lee Nume o”: de uel e el núme o que con iene la a iable “cadena” desde la posición “n”, y
ac ualizando la a iable “n” con la posición del siguien e núme o que apa ece en “cadena”. La a iable
cadena con iene 4 núme os sepa ados po un “&”:
//lee el núme o que hay en "cadena" desde la posición "n"
// Po ejemplo, cadena es "959&82&509.8&226.0"
loa lee Nume o(cha *cadena,in *n){
in i=*n;
in j=0;
loa nume o=0;
Mien as que el ca ac e leído sea un núme o…:
while (cadena[i]>='0' && cadena[i]<='9'){
Acumulamos en la a iable “núme o” el alo del ca ác e numé ico con su peso co espondien e. Po
ejemplo, si el núme o es 123.4 ha emos el cálculo nume o=1/10+2/100+3/1000+4/10000=0.1234
nume o=nume o+(cadena[i]-'0')/pow(10,i-(*n)+1);
i++;
j++;
}
Cuando el ca ác e sea un “.” No lo enemos en cuen a, inc emen ando el con ado “i”:
i (cadena[i]=='.'){
i++;
Seguimos inc emen ando el acumulado de la misma o ma que an es de encon a el “.”:
while (cadena[i]>='0' && cadena[i]<='9'){
nume o=nume o+(cadena[i]-'0')/pow(10,i-(*n));
i++;
}
}
A aceli Ga cía G anados
109
Seguimos inc emen ando el acumulado de la misma o ma que an es de encon a el “.”:
i++;
Ac ualizamos “n” pa a que apun e al siguien e núme o dado que aho a apun a a un “&”:
*n=i;
La a iable “j” con iene el núme o de ci as no decimales que iene el núme o que hemos leído. En el
caso del ejemplo, 123.4, son 3. Po an o, el núme o leído es 0.1234x1000=123.4
nume o=nume o*pow(10,j);
De ol emos el esul ado:
e u n nume o;
}

A aceli Ga cía G anados
110
Código C++ TFG/cgi/ egis o.c de la
Raspbe y
Es e p og ama pe mi i á que isualicemos ía web los accesos que se han ealizado a la aplicación, en
conc e o se isualiza án, pa a cada acceso:
Di ección IP de la máquina que ha usado la aplicación
Fecha y ho a en la que se ha accedido a la aplicación
Tensión e icaz medida
Co ien e e icaz medida
Po encia media
Inicialmen e decla amos las lib e ías que amos a usa :
#include < ime.h>
#include <s dlib.h>
#include <s dio.h>
#include <s ing.h>
Iniciamos la página web con el í ulo y decla ación de es ilos CSS:
in main(){
p in ("Con en -Type: ex /h ml n n");
p in ("<!DOCTYPE h ml> n");
p in ("<h ml> n");
p in ("<head> n");
p in ("<me a cha se ='u -8'> n");
p in ("< i le>Conexiones</ i le> n");
p in ("<s yle ype=' ex /css'> n");
p in ("p{ on -size:16px;colo :b own; on -s yle:i alic} n");
p in ("</s yle> n");
p in ("</head> n");
p in ("<body s yle='backg ound-colo :#FFF0C9;'> n");
Ab imos el iche o en modo lec u a:
FILE * p= open("../../ egis o. x "," "); //ab imos /TFG/da os. x como lec u a
i ( p==NULL) {
p in ("No se puede ab i el iche o egis o. x desde g n");
}
Iniciamos un elemen o “p”:
p in ("<p>");
Esc ibimos en el elemen o “p” cada ca ác e leído del iche o, has a llega al inal del iche o:
cha ca ac e =ge c( p);
while ( eo ( p)==0) {
i (ca ac e ==' n') p in ("</b >");
else p in ("%c",ca ac e );
ca ac e =ge c( p);
}
Ce amos el elemen o “p” y e minamos:
p in ("</p>");
p in ("</body> n");
p in ("</h ml> n");
e u n 0;
A aceli Ga cía G anados
111
}
El código se compila á con la ins ucción:
g++ -o egis o egis o.c
Pa a ejecu a el p og ama ía web in oduci emos en un na egado la di ección:
h p://analizado .ddns.ne :8080/TFG/cgi-bin/ egis o
A aceli Ga cía G anados
112
Código C++ TFG/cgi/ ese A duino.c de la
Raspbe y
Es e p og ama nos pe mi i á ese ea ía web la a je a A duino en caso de que se queda a bloqueada.
Hace uso del pin GPIO17 de la Raspbe y, que lo enemos conec ado al pin Rese del A duino DUE.
Veamos su código
Inicialmen e decla amos las lib e ías que amos a usa :
#include <s dio.h> //pa a pode usa la unción p in ()
#include <s dlib.h> //pa a pode usa la unción sys em()
#include <wi ingPi.h> //pa a pode usa la unción digi alW i e()
Iniciamos la página web con el í ulo:
in main ( oid){
p in ("Con en -Type: ex /h ml n n");
p in ("<!DOCTYPE h ml> n");
p in ("<h ml> n");
p in ("<head> n");
p in ("< i le>Rese A duino</ i le> n");
p in ("</head> n");
p in ("<body> n");
Con igu amos el pue o GPIO17 como de salida.
sys em("echo ou > /sys/class/gpio/gpio17/di ec ion"); //con igu amos el pue o GPI017 como de salida
Inicializamos el sis ema wi ingPi usando el sis ema BCM pa a nomb a los pue os GPIO::
wi ingPiSe upGpio(); //es e comando lo puede ejecu a un usua io no mal
Ponemos a “0” el pin GPIO17 du an e 1 segundo y luego lo ol emos a deja a “1”:
digi alW i e(17, LOW); //pin GPIO BCM 17 ó pin GPIO wi ingPi 0
delay(1000); //1s
digi alW i e(17, HIGH); // pin GPIO BCM 17 ó pin GPIO wi ingPi 0
Te minamos con:
p in ("Rese ada la placa A duino... n");
p in ("</body> n");
p in ("</h ml> n");
e u n 0 ;
}
El código se compila á con la ins ucción:
g++ -o ese A duino ese A duino.c -lwi ingPi
Pa a ejecu a el p og ama ía web in oduci emos en un na egado la di ección:
h p://analizado .ddns.ne :8080/TFG/cgi-bin/ ese A duino
07/02/2020
113
Capí ulo 3:
Manual de
uso y
calib ación
07/02/2020
120

07/02/2020
121
Capí ulo 4:
Medidas
07/02/2020
122
07/02/2020
123
En los siguien es apa ados some e emos al disposi i o a dis in os ipos de ca gas, lineales y no lineales,
y de e mina emos an o la exac i ud como la p ecisión pa a los alo es apo ados de ensión, co ien e y
po encia. Los da os co espondien es a los a mónicos los con as a emos con la unción FFT de Ma lab
pa a alida los.
Medidas sin ca ga
Los esul ados que hemos ob enido cuando la ca ga es á desconec ada son los siguien es:
Figu a 99: Medidas sin ca ga
Se ap ecia el uido que inco po a la señal de salida del senso de co ien e, con un alo de pico de
136mA y alo e icaz de 38mA, sin emba go la señal del senso de ensión es á limpia de uidos.
También se ap ecia que la onda de ensión es una unción p ác icamen e impa lo que p o oca que sus
componen es a mónicas pa es sean casi nulas.
Podemos compa a la onda de ensión del disposi i o con la salida de un osciloscopio conec ado a la ed
eléc ica pa a con i ma que es os de ec os no son gene ados po nues o p o o ipo. El esul ado es el
siguien e:
07/02/2020
124
Figu a 100: Onda de ensión medida con osciloscopio
Figu a 101: Onda de ensión medida con el p o o ipo
Las salidas son idén icas lo que alida la calidad g á ica que o ece el disposi i o.
07/02/2020
125
Medidas pa a una ca ga nominal de 60W
Vamos a some e al disposi i o a una ca ga nominal de 60W, conc e amen e una bombilla incandescen e.
Figu a 102: Medidas pa a una ca ga de 60W
Como e e encia pa ón pa a la compa ación oma emos los siguien es alo es ob enidos con un
mul íme o Fluke 77:
Tensión e icaz: 221V
Co ien e e icaz: 259.0mA
Po encia media: 221x0.2590=57.24W
Pa a pode de e mina an o la exac i ud como la p ecisión de apa a o oma emos 50 medidas
simul áneas de la misma ca ga. Las medias ob enidas nos pe mi i án conoce cuál es la exac i ud del
apa a o, y las des iaciones ípicas (o el coe icien e de a iación) nos indica á la p ecisión del mismo.
Los 50 alo es de las ensiones ob enidas han sido:
221.7,221.2,221.6,221.4,221.4,221.7,221.5,221.3,221.5,221.7,221.5,221.4,221.4,221.3,221.5,220.4,220.9,
221.2,221.5,221.5,221.3,221.4,221.6,221.6,221.9,221.7,221.8,221.5,220.7,221.2,221.4,221.4,221.1,221.7,
221.7,221.7,221.5,221.7,221.6,221.6,221.3,219.9,220.8,221.2,221.2,221.2,221.5,221.6,221.4,221.3

07/02/2020
126
, que a ojan una media mues al de
 

n
n
i
i
1
_
221.38V y cuyo es imado de la des iación ípica del
apa a o es












1
1
2
_
2
n
s
n
i
i
0.39V
Los 50 alo es de las co ien es medidas han sido:
0.258,0.257,0.258,0.258,0.258,0.259,0.258,0.257,0.259,0.259,0.258,0.258,0.259,0.259,0.259,0.257,0.258,
0.256,0.258,0.257,0.257,0.259,0.259,0.259,0.258,0.259,0.258,0.258,0.256,0.257,0.257,0.258,0.258,0.259,
0.257,0.258,0.259,0.258,0.259,0.259,0.259,0.258,0.259,0.256,0.258,0.259,0.259,0.257,0.259,0.259
, que co esponden a una media mues a de 0.2581A y un es imado de la des iación ípica de 0.00091A
Los 50 alo es de las po encias medidas han sido:
56.8,56.6,56.7,56.7,56.7,57.0,56.8,56.6,57.1,57.0,56.8,56.7,56.9,56.9,57.0,56.2,56.5,56.3,56.7,56.4,56.5,5
7.0,57.1,57.0,56.8,56.9,56.8,56.7,56.2,56.5,56.6,56.6,56.7,57.0,56.5,56.8,56.9,56.9,56.9,56.9,56.8,56.4,56
.7,56.1,56.7,56.9,56.9,56.6,56.8,56.8
, que co esponden a una media mues al de 56.73W un es imado de la des iación ípica de 0.23W
La p ecisión de un disposi i o es la ap i ud pa a da medidas muy p óximas du an e la aplicación
epe ida del mesu ando. Noso os la de e mina emos a a és del coe icien e de a iación, de inido como
la elación en e la des iación ípica y la media:
%16.0
38.221
39.0
100 
V
CV
%35.0
2581.0
00091.0
100 
I
CV
%41.0
73.56
23.0
100 
P
CV
La exac i ud de un disposi i o es la ap i ud pa a da medidas p óximas al alo e dade o. Noso os lo
de e minamos median e los e o es medios ela i os:
%17.0
221
22138.221
100 


V
e
%35.0
2590.0
2590.02581.0
100 


I
e
%89.0
24.57
24.5773.56
100 


P
e
Podemos conclui que nues o disposi i o, a es e ni el de ca ga, es muy p eciso y exac o, cumpliendo con
los obje i os que nos ma camos, in e io es al 1%.
07/02/2020
127
Medidas pa a una ca ga nominal de 700W
La ca ga que amos a u iliza es un adiado de acei e de unos 700W.
Figu a 103: Medidas pa a una ca ga de 700W
El uido ya lo podemos conside a desp eciable si lo compa amos con los ni eles de co ien e que
ci culan po la ca ga.
La medición omada en la ca ga con un mul íme o a oja es os alo es:
Tensión e icaz: 224V
Co ien e e icaz: 3.19A
Po encia media: 224x3.19=714.56W
Los 50 alo es de las ensiones medidas han sido:
222.1,222.0,222.3,222.3,222.4,222.6,223.0,222.8,222.8,223.0,222.6,222.8,222.6,222.6,222.8,223.0,223.1,
223.1,223.0,222.9,223.0,222.8,222.6,222.9,222.8,222.2,222.9,222.6,222.5,222.5,222.7,222.5,222.5,222.7,
222.5,222.4,222.7,222.8,222.7,222.9,222.9,223.0,223.0,223.1,223.1,223.1,223.3,223.0,222.8,223.0
, que co esponden a una media de 222.746V y una des iación ípica de 0.29V
Los 50 alo es de las co ien es medidas han sido:
07/02/2020
128
3.204,3.203,3.204,3.206,3.209,3.209,3.209,3.212,3.211,3.208,3.204,3.202,3.202,3.198,3.204,3.205,3.207,
3.204,3.208,3.208,3.204,3.201,3.202,3.204,3.205,3.196,3.205,3.198,3.193,3.201,3.199,3.196,3.192,3.201,
3.202,3.199,3.196,3.199,3.202,3.205,3.203,3.204,3.209,3.207,3.200,3.207,3.208,3.199,3.201,3.199
, que co esponden a una media de 3.2031A y una des iación ípica de 0.00451A
Los 50 alo es de las po encias medidas han sido:
711.5,710.8,712.1,712.5,713.5,714.2,715.5,715.6,715.3,715.1,712.9,713.3,712.6,711.8,713.7,714.9,715.3,
714.7,715.3,715.1,714.4,713.0,712.7,714.0,713.9,710.2,714.3,711.8,710.4,711.9,712.4,710.9,710.1,712.8,
712.2,711.3,711.5,712.5,713.1,714.2,714.0,714.2,715.5,715.5,713.9,715.2,716.2,713.4,713.0,713.3
, que co esponden a una media de 713.35W una des iación ípica de 1.60W
Coe icien es de a iación:
%13.0
746.221
29.0
100 
V
CV
%14.0
2031.3
00451.0
100 
I
CV
%22.0
35.713
60.1
100 
P
CV
E o es medios ela i os:
%56.0
224
224746.222
100 


V
e
%41.0
19.3
19.32031.3
100 


I
e
%17.0
56.714
56.71435.713
100 


P
e
Seguimos ob eniendo coe icien es de a iación y e o es po debajo del 1%, con i mando an o la
p ecisión como la exac i ud del apa a o.
07/02/2020
129
Medidas pa a una ca ga nominal de 1000W
La ca ga que amos a u iliza es una os ado a con una po encia nominal 1000W.
Figu a 104: Medidas pa a una ca ga de 1000W
La medición omada en la ca ga con un mul íme o a oja es os alo es:
Tensión e icaz: 222.0V
Co ien e e icaz: 4.06A
Po encia media: 222.0x4.06=901.3W
Los 50 alo es de las ensiones medidas han sido:
221.8,222.2,222.4,222.5,221.9,222.2,222.2,222.3,222.6,222.7,222.8,222.2,222.7,222.2,221.7,221.6,221.6,
221.5,221.2,221.2,221.2,221.6,221.8,221.7,221.5,221.8,221.7,221.0,221.4,221.3,221.4,221.1,221.3,221.1,
221.4,221.8,221.3,221.5,221.3,221.8,221.1,221.2,220.6,221.0,220.8,220.8,220.8,220.8,220.9,221.2
, que co esponden a una media de 221.594V y una des iación ípica de 0.57V
Los 50 alo es de las co ien es medidas han sido:
4.118,4.128,4.127,4.124,4.116,4.118,4.116,4.113,4.124,4.119,4.127,4.114,4.116,4.115,4.102,4.103,4.102,
4.106,4.100,4.094,4.096,4.095,4.097,4.102,4.093,4.094,4.093,4.088,4.087,4.093,4.095,4.088,4.079,4.083,
4.090,4.085,4.094,4.094,4.078,4.091,4.079,4.086,4.074,4.071,4.068,4.070,4.067,4.074,4.071,4.065
07/02/2020
136

07/02/2020
137
Capí ulo 5:
Conclusiones
y mejo as
07/02/2020
138
07/02/2020
139
De los ensayos ealizados podemos asegu a que el e o ela i o de nues o disposi i o es in e io al 1%
en cualquie a de las medidas de ensión, co ien e o po encia. Igualmen e hemos con as ado con Ma lab
que el cálculo de a mónicos ealizado po el disposi i o es co ec o.
Como ya indicábamos en el apa ado de las medidas, el disposi i o cons uido iene una limi ación en la
capacidad de medi co ien es. Es a limi ación es á condicionada an o po el senso de co ien e como
po el elé u ilizado. El senso de co ien e LEM LTS 6-NP puede medi ca gas de has a 19.2A mien as
que el elé sopo a in ensidades de unos 6A. De ambas limi aciones se deduce que es e ins umen o no es
ap o pa a ca gas de más de 6A, que a una ensión de 230VAC co esponde a una po encia de
230x6=1380W.
Es a limi ación de 6A en el elé se puede inc emen a has a los 19.2A sus i uyendo el T iac BTA16 po
uno supe io , po ejemplo BTA24 o BTA41, y posiblemen e ambién end emos que sus i ui el disipado
po uno de meno esis encia é mica. La po encia máxima en es e caso se ía de 230x19.2=4416W.
Pa a medi ca gas supe io es a 4.4kW ya end íamos que sus i ui an o el senso de co ien e como el
elé.
Si deseamos sus i ui el senso de co ien e debe emos modi ica la siguien e ins ucción del iche o
/TFG/cgi/ g.c asignando la sensibilidad co ec a del mismo (en ol ios/ampe io):
#de ine senSenso Co 0.0763
Respec o a la máxima ensión de ed que admi e el disposi i o, en el apa ado donde desc ibimos el
senso de ensión ob u imos que la señal a su salida es a elacionada con la ensión de la ed median e
la siguien e ecuación:
241
)(
65.1)(
i
C
, y como
V C3.3)( 
pa a no daña al A duino,
3.3
241
)(
65.1  i

V i398)( 
, luego la ensión e icaz de ed no debe supe a
V281
2
397 
. Las emp esas dis ibuido as de ene gía
ienen un ma gen del 10% espec o a una ensión e icaz de 230V, es deci ,
253207 V
, ensiones
in e io es al máximo pe mi ido po nues o disposi i o.
Una mejo a ap eciable hab ía sido adop a una dis ibución mas adecuada de los elemen os que
componen el disposi i o de o ma que se hubie an minimizado la longi ud del cableado. Con ello se
hubie a inc emen ado la inmunidad al uido del disposi i o y po an o un meno izado en la señal de
co ien e.
O a mejo a hab ía sido el implemen a el diseño, an o del elé como de los senso es de ensión y de
co ien e, en un mismo ci cui o imp eso (PCB), lo que hab ía supues o una mejo a en el espacio ocupado
así como la eliminación de cableado y educción de uido.
Aunque inalmen e se ha apan allado el cableado de salida de los senso es de co ien e y de ensión, es a
se ha ealizado de o ma “case a” usando papel de aluminio alimen a io conec andolo a ie a po uno
de los ex emos, cuando lo aconsejable hab ía sido u iliza cableado ya apan allado.
O a mejo a hab ía sido el diseña e implemen a las uen es de alimen ación an o de Raspbe y como
del A duino, habiéndolas in eg ado en el mismo ci cui o imp eso (PCB) que el es o de ci cui e ía. De
es a o ma el disposi i o es a ía o mado po únicamen e es a je as: Raspbe y, A duino y el es o de
elec ónica.
Finalmen e, hubie a sido aconsejable habe p o egido la aplicación web con con aseña de o ma que el
acceso hubie a es ado es ingido a usua ios au o izados.
07/02/2020
140
07/02/2020
141
Capí ulo 6:
P esupues o

07/02/2020
142
07/02/2020
143
En es e capí ulo se de alla á el p esupues o del p oyec o desglosado en ma e iales, mano de ob a, gas os
gene ales y bene icio indus ial. Los p ecios de los componen es son ap oximados dada la g an a iedad
de o e as en el me cado así como una con inua bajada de p ecios al que es án some idos.
Cos e de los ma e iales
Cos e de la mano de ob a
Cos e o al del p oyec o
07/02/2020
144
07/02/2020
145
Bibliog a ía