Proyecto Arduino PHP Hostinger Salidas 2
-
Upload
anonymous-ak6ibn9 -
Category
Documents
-
view
228 -
download
1
Transcript of Proyecto Arduino PHP Hostinger Salidas 2
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
1/34
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
2/34
Conce*to WebClient y Servidor PHP
n la +gura se "uestra un WebClient, ue en nuestro caso ser4 Arduino no
con el S'ield Wi.net/100, el cual genera *eticiones PHP al Servidor aloado en
un Hosting gratuito, en "i caso utilic- Hostinger , el cual res*onder4 a nuestro
WebClient con un c!digo H7:) donde ir4 ;incrustada< la res*uesta )a
siguiente +gura "uestra la intervenci!n del usuario
http://www.hostinger.com.ar/http://www.hostinger.com.ar/
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
3/34
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
4/34
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
5/34
)a cadena guardada en el arc'ivo del sitio tEt ser4 de la 5or"aI
#a( sal1J1sal2J1salKJ1sal&J0F ?A)3AF Cada ve. ue el usuario
e5ect>e un ca"bio
#b( sal1J0sal2J1salKJ1sal&J0?A)3AF=2016=01=0% L 02I&I21 LCada ve. ue
el cliente realice el ca"bio
l Webclient, nuestro Arduino al leer la cadena entonces sabe lo ue debe
'acer , o no 'acer ue es el caso de la cadena #b(, o debe "odi+car y noti+car
el ca"bio reali.ado en el caso de la cadena #a(
3"*le"entaci!n de P4ginas en el Hosting
A continuaci!n se colocan las *4ginas en PHP ue se van a utili.ar en el
*royecto y co"o se van lla"ando desde nuestro navegador al Hosting
l 'osting creado 5ue en 'tt*IMMDDD'ostingerco"arM y el sitio
DDDguscir'oles o entrare"os en detalle de c!"o generarse un sitio
gratuito ya ue 'ay eEcelentes tutoriales en internet y real"ente es "uy 54cil
)o i"*ortante es ue gratuita"ente tene"os casi todo *ara ad"inistrar un
sitio, incluido servidores P'* co"o A*ac'e y :ySl *ara crear nuestras bases
de datos en el sitio, ade"4s de otros servicios co"o cuentas de :ail o es el
obetivo enseNar P'* , *ara auel ue no lo conoce eEisten "uc'os tutoriales
en la red, *ero debo incluir las *4ginas *ara auel ue conoce de P'* y *4ginas
din4"icas y desea "odi+car, o i"*le"entar sus *ro*ios diseNos
Salidas*'*
P4gina *rinci*al del sitio donde va a acceder el usuario desde cualuier
dis*ositivo, "ediante 'tt*IMMDDDguscir'olesMsalidas*'* All se *uede ver
una inter5ace co"e estaI
P
agina Hosting ue ve usuario , no el WebClient
http://www.hostinger.com.ar/http://www.guscir.hol.es/http://www.guscir.hol.es/salidas.phphttp://www.hostinger.com.ar/http://www.guscir.hol.es/http://www.guscir.hol.es/salidas.php
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
6/34
P
agina Hosting suario
)a est-tica la deo *ara otro "o"ento ya ue no es i"*ortante colocar
"auetado, estilos, colores, etc o obstante 'e agregado un arc'ivo estilocss*ara dar algo de color a la tabla de estas & salidas
PHP
1
2
K
&
/
6
%
8
9
10
O't"l
MM Con Hostinger acceder co"o 'tt*IMMDDDguscir'olesMsalidas*'*
O'ead
Olin@ relJstyles'eet ty*eJQteEtMcssQ 're5Jestilocss
OM'ead
Obody
OR*'*
arJ5o*en#Qarc'ivocontroltEtQ,QrQ( or
die#Qo se *udo abrir el arc'ivoQ(T
// Con Hostinger acceder como
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
7/34
11
12
1K
1&
1/
16
1%
18
19
20
21
22
2K
2&
2/
26
2%
28
29
K0
K1
K2
KK
K&
K/
K6
MMlineaJQQT Ftra "anera
D'ile #U5eo5#ar((
V
MM lineaJlinea5gets#ar(QObrQT MM va concatenando linea a linea yagrega un salto a cada linea
MMec'o lineaT
lineaJ5gets#ar(T
MMec'o lineaT
5close#ar(T
MM n linea tengo el estado de las salidas en una cadena debo
*rocesarla
estado1J substr#linea,/,1(T
MMec'o estado1T
estado2J substr#linea,11,1(T
MMec'o estado2T
estadoKJ substr#linea,1%,1(T
MMec'o estadoKT
estado&J substr#linea,2K,1(T
MMec'o estado&T
idca"bioJ0T
ca"bioJQo reali.adoQT
cantidadJ strlen#linea(T
MMec'o cantidadT
i5#cantidad2&( MM 'ay datos de con+r"acion
V
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
8/34
K%
K8
K9
&0
&1
&2
&K
&&
&/
&6
&%
&8
&9
/0
/1
/2
/K
/&
//
/6
/%
/8
/9
60
61
62
con+r"aJsubstr#linea,2&,1(T
MMec'o con+r"aT
i5#con+r"aJJQ?Q( MM Ca"bio reali.ado actuali.ado *or el cliente
Vca"bioJQCa"bio reali.adoQT
idca"bioJ1T
5ec'aJ substr#linea,K&(T MM ca*ta la 5ec'a y 'ora del ca"bio
e5ectuado *or el cliente
R
O*O'KCF7?F) SA)3ASOM'KOM*
O5or" na"eJQsalidasQ "et'odJQ*ostQ actionJQArc'ivoControl*'*Q
Otable borderJ1 bordercolorJblue
Otr
OR*'* i5 #estado1JJ1(
V
ec'o QOtd classJcolO'&SA)3AX1OM'&Oin*ut ty*eJYQc'ec@boEYQ
na"eJYQsal1YQ valueJYQ1YQ c'ec@ed OMtdQT
elseV
ec'o QOtd classJcolO'&SA)3AX1OM'&Oin*ut ty*eJYQc'ec@boEYQ
na"eJYQsal1YQ valueJYQ1YQ OMtdQT
i5 #estado2JJ1(
V
ec'o QOtd classJcolO'&SA)3AX2OM'&Oin*ut ty*eJYQc'ec@boEYQ
na"eJYQsal2YQ valueJYQ1YQ c'ec@ed OMtdQT
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
9/34
6K
6&
6/
66
6%
68
69
%0
%1
%2
%K
%&
%/
%6
%%
%8
%9
80
81
82
8K
8&
8/
86
8%
88
elseV
ec'o QOtd classJcolO'&SA)3AX2OM'&Oin*ut ty*eJYQc'ec@boEYQ
na"eJYQsal2YQ valueJYQ1YQ OMtdQT
i5 #estadoKJJ1(
V
ec'o QOtd classJcolO'&SA)3AXKOM'&Oin*ut ty*eJYQc'ec@boEYQ
na"eJYQsalKYQ valueJYQ1YQ c'ec@ed OMtdQT
elseV
ec'o QOtd classJcolO'&SA)3AXKOM'&Oin*ut ty*eJYQc'ec@boEYQ
na"eJYQsalKYQ valueJYQ1YQ OMtdQT
i5 #estado&JJ1(
V
ec'o QOtd classJcolO'&SA)3A=&OM'&Oin*ut ty*eJYQc'ec@boEYQ
na"eJYQsal&YQ valueJYQ1YQ c'ec@ed OMtdQT
elseV
ec'o QOtd classJcolO'&SA)3AX&OM'&Oin*ut ty*eJYQc'ec@boEYQ
na"eJYQsal&YQ valueJYQ1YQ OMtdQT
R
OMtr
OtrOMtrOtrOMtr
OMtable
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
10/34
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
11/34
)o ue 'ace este c!digo P'* es leer el arc'ivocontroltEt #co"o ya 'e"os
"encionado( donde se aloa la cadena y en 5unci!n de esta, va a "ostrar los
c'ec@boEBs tildados o no, de acuerdo a lo ue dicte la cadena sta es la ra.!n
de ser una *4gina P'* y no H7:), ya ue su contenido ca"bia seg>n la cadena
de teEto del arc'ivo sto *er"ite ue los ca"bios reali.ados sean reZeados
en la "is"a *4gina 7a"bi-n anali.a si en la cadena a*arece el ;o reali.ado<o el ;?eali.ado concatenado con la 5ec'a y 'ora
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
12/34
1
1
1
2
1K
1
&
1
/
1
6
1
%
1
8
1
9
2
0
2
1
2
2
2
K
2
&
2
/
2
6
2
i5 #isset#X?\S7]^sal1^_((
V
estado1JX?\S7]^sal1^_T
i5 #isset#X?\S7]^sal2^_((
V
estado2JX?\S7]^sal2^_T
i5 #isset#X?\S7]^salK^_((
V
estadoKJX?\S7]^salK^_T
i5 #isset#X?\S7]^sal&^_((
V
estado&JX?\S7]^sal&^_T
cadenaJQsal1JQestado1Qsal2JQestado2QsalKJQestadoKQsal&JQ
estado&QF ?A)3AFQT
MM l servidor adunta F ?A)3AF *ara ue el cliente se*a ue es una
nueva "odi+cacion en las salidas
MMec'o cadenaT
arJ5o*en#Qarc'ivocontroltEtQ,QDQ( or
die#QProble"as en la creacionQ(T
5*uts#ar,cadena(T
MM5*uts#ar,QbrQ(T
5close#ar(T
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
13/34
%
2
8
2
9
K
0
K
1
K
2
KK
K
&
K
/
K
6
K%
K
8
K
9
&
0
&1
&
2
&
ec'o Q
QT
ec'o Q
QT
ec'o Q)os datos se cargaron correcta"enteQT
ec'o Q
QT
ec'o Q
QT
R
Oa 're5JQsalidas*'*Q$olverOMa
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
14/34
K
&
&
&
/
&
6
&
%
&
8
sta *4gina Arc'ivosControl*'* si"*le"ente detecta las variables *asadas
*or "-todo PFS7 desde la *4gina anterior y saber cu4les salidas se 'an
tildado, o destildado y de esta "anera rescribir el arc'ivocontroltEt , *ara
actuali.ar la cadena nueva concatenado a'ora con ;F ?A)3AF< ya ue la
cadena 'a ca"biado y el Webclient #Arduino(, debe saber de esta "anera, al
'acer su consulta, ue debe e5ectuar sus "odi+caciones
l bot!n )eerstado es redundante y no 'ara 5alta *ero lo ue 'ace es lla"ar a
otra *4gina )ecturaArc'ivo*'*
O5or" na"eJ
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
15/34
$ista Salidas
PHP
1
2
K
&
/
6
%
8
9
10
11
12
1K
1&
1/
)ecturaArc'ivo*'*
O't"l
O'ead
OM'ead
Obody
OR*'*
arJ5o*en#Qarc'ivocontroltEtQ,QrQ( or
die#Qo se *udo abrir el arc'ivoQ(T
D'ile #U5eo5#ar((
V
lineaJ5gets#ar(T
5close#ar(T
LecturaArchivo.php
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
16/34
16
1%
18
19
20
21
22
2K
2&
2/
26
2%
28
29
K0
K1
K2
KK
K&
K/
K6
K%
K8
K9
MMec'o lineaT
ec'o ^^T
ec'o ^^T
estado1J substr#linea,/,1(T
MMec'o estado1T
estado2J substr#linea,11,1(T
MMec'o estado2T
estadoKJ substr#linea,1%,1(T
MMec'o estadoKT
estado&J substr#linea,2K,1(T
MMec'o estado&T
est1JQesactivadaQT
est2JQesactivadaQT
estKJQesactivadaQT
est&JQesactivadaQT
i5#estado1JJ1(
Vest1JQActivadaQT
i5#estado2JJ1(
Vest2JQActivadaQT
i5#estadoKJJ1(
VestKJQActivadaQT
i5#estado&JJ1(
Vest&JQActivadaQT
R
reueri"iento*'*
sta *4gina no est4 accesible al usuario y es la *4gina ue va a consultar el
WebClient #Arduino( "ediante *eticiones del ti*o G7
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
17/34
PHP
1
2
K
&
/
6
%
8
9
1
0
1
1
1
2
1
K
1
&
1
/
1
6
1
%
OM'ead
Obody
OR*'*
MM 'tt*IMMDDDguscir'olesMreueri"iento*'*RconsultaJ2 se lla"a de
esta "anera
MM o necesaria"ente 'abra ue *edir con una variable, *uede ue solo el
servidor res*onda sin necesidad de *asarle una variable, seg>n sea la
necesidad
MM 'tt*IMMDDDguscir'olesMreueri"iento*'*
arJ5o*en#Qarc'ivocontroltEtQ,QrQ( or
die#Qo se *udo abrir el arc'ivoQ(T
D'ile #U5eo5#ar((
V
lineaJ5gets#ar(T
5close#ar(T
i5#Ue"*ty#XG7]^consulta^_( `` XG7]^consulta^_JJ1( MM l cliente *ide
consulta de las salidas, su estado
V
ec'o lineaT
i5#Ue"*ty#XG7]^consulta^_( `` XG7]^consulta^_JJ2( MM l cliente
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
18/34
1
8
1
9
20
2
1
2
2
2
K
2
&
2
/
2
6
2
%
2
8
2
9
K
0
K
1
K
2
K
K
K
uiere logear algo o con+r"ar algo en el server, en este caso validar el
ca"bio de las salidas
MM en el cliente de acuerdo al nuevo estado de las salidas Aui *ode"os
"andar un :ail o actuali.ar un obeto o ele"ento en la *agina
MM *ara ue al entrar nueva"ente el usuario se de cuenta ue su ca"biose reali.!, en este caso el cliente reZeo el ca"bio de las salidas
V
lineaJsubstr#linea,0,2&(T MM Ca*tura el estado de las salidas *ara
+ltrar el F ?A)3AF
arJ5o*en#Qarc'ivocontroltEtQ,QDQ( or
die#QProble"as en la creacionQ(T
dateXde5aultXti"e.oneXset#^A"ericaMArgentinaMCordoba^(T MM Actuali.a a.ona 'oraria A"erica ya ue sino devuelve 'ora s*aNa
ti"e J date#Q="=d L 'IIs LQ, ti"e#( ( T
5*uts#ar,lineaQ?A)3AFQQ=Qti"e(T MM ?eescribe arc'ivo con la
indicaci!n de reali.ado
MM5*uts#ar,QbrQ(T
5close#ar(T
ec'o Qo@eyQT
R
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
19/34
&
K
/
K
6
K
%
Peticiones WebClient
l cliente acceder4 a esta *4gina "edianteI
'tt*IMMDDDguscir'olesMreueri"iento*'*RconsultaJ1
Si observa"os bien, el *ar4"etro ue *asa el WebClient a la *4gina es
consulta con un valor de 1, en este casoConsultaJ1, le indicar4 a la *4ginaP'* ue solo debe leer el arc'ivo arc'ivocontroltEt *ara eEtraer la cadena de
salida
1
2
K
&
i5#Ue"*ty#XG7]^consulta^_( `` XG7]^consulta^_JJ1( MM l cliente *ide
consulta de las salidas, su estado
V
ec'o lineaT MM ?$3A )A CAA CF:F ?SPS7A
)a cadena de res*uesta *uede ser del ti*o #a( o #b( co"o ya vi"os )a *4gina
enva la cadena co"o res*uesta "ediante el co"ando ec'o
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
20/34
sal1J1sal2J1salKJ0sal&J0?A)3AF=2016=01=0% L 0/I&I21 L ti*o #b(
l Webclient sabr4 ue el ca"bio ya 5ue reali.ado y no tendr4 ue "odi+car
las salidas
#Porci!n de c!digo de reueri"iento*'* ya *ublicado(
PHP
1
2
K
&
/
6
%
8
9
1
0
1
1
1
2
i5#Ue"*ty#XG7]^consulta^_( `` XG7]^consulta^_JJ2( MM l cliente uiere
logear algo o con+r"ar algo en el server, en este caso validar el ca"bio
de las salidas
MM en el cliente de acuerdo al nuevo estado de las salidas Aui *ode"os
"andar un :ail o actuali.ar un obeto o ele"ento en la *agina
MM *ara ue al entrar nueva"ente el usuario se de cuenta ue su ca"bio
se reali.!, en este caso el cliente reZeo el ca"bio de las salidas
V lineaJsubstr#linea,0,2&(T MM Ca*tura el estado de las salidas *ara
+ltrar el F ?A)3AF
arJ5o*en#Qarc'ivocontroltEtQ,QDQ( or
die#QProble"as en la creacionQ(T
dateXde5aultXti"e.oneXset#^A"ericaMArgentinaMCordoba^(T MM Actuali.a a
.ona 'oraria A"erica ya ue sino devuelve 'ora s*aNa ti"e J date#Q=
"=d L 'IIs LQ, ti"e#( ( T
5*uts#ar,lineaQ?A)3AFQQ=Qti"e(T MM ?eescribe arc'ivo con la
indicaci!n de reali.ado
MM5*uts#ar,QbrQ(T
5close#ar(T
ec'o Qo@eyQT
C!digo Arduino con S'ield Wi.net W/100
if( empty(!"#$%&'consulta') **
// en el cliente de acuerdo al nu
// para 2ue al entrar nuevamen
+ !linea3substr(!linea45467),
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
21/34
A los e5ectos de si"*licidad, se "ostrar4n *or el *uerto serial las cadenas
recibidas desde el servidor, co"o +ltrar las subcadenas de cada salida *ara
des*u-s a*licarlas a los *ines ue desea el usuario Hay ue tener en cuenta
ue la *laca Wi.net /100 utili.a los *ines &,10,11,12 y 1K *ara co"unicarse
con A?3F 1, *or lo ue debe evitarse su uso *ara nuestras a*licaciones l
& Se utili.a *ara la S card del s'ield, si es ue se usa
10 Habilitaci!n 7CH de la *laca t'ernet
11,12,y 1K son co"unicaci!n SP3 con la *laca # :osi, :iso,Cl@(
l c!digo est4 "uy bien docu"entado y 'e o*tado *or si"ular las salidas
digitales, es decir ue el estado de las salidas saldr4 i"*reso *or la ter"inal de
consola de Arduino y las cadenas de res*uesta debida"ente +ltradas n la
consola de Arduino se ver4n no solo las res*uestas co"*letas del servidor, sino
ta"bi-n los inicios de coneEi!n, los intentos 5allidos, las cadenas +ltradas de
res*uesta y ta"bi-n la si"ulaci!n de cada salida
C
1
2
K
&
/
6
%
8
9
10
11
12
M
Web client
Peticiones G7 a Hosting gratuito
:odi+ca el estado de & salidas digitales en 5or"a di5erida
M
include OSP3'
include Ot'ernet'
MM nter a :AC address 5or your controller beloD
MM eDer t'ernet s'ields 'ave a :AC address *rinted on a stic@er on t'e
s'ield
/8
9eb client
:eticiones #$% a Hosting gratu
;odifica el estado de 7 salidas
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
22/34
1K
1&
1/
16
1%
18
19
20
21
22
2K
2&
2/
26
2%
28
29
K0
K1
K2
KK
K&
K/
K6
K%
K8
byte "ac]_ J V 0E, 0EA, 0E, 0E, 0E, 0E T
c'ar server]_ JQDDDguscir'olesQT
MM Set t'e static 3P address to use i5 t'e HCP 5ails to assign
3PAddress :yi*#192, 168, 1, 1%%(T
MM 3nitiali.e t'e t'ernet client library
MM Dit' t'e 3P address and *ort o5 t'e server
MM t'at you Dant to connect to #*ort 80 is de5ault 5or H77P(I
t'ernetClient clientT
unsigned long startJ"illis#(T
unsigned long *eriodoConeEionJK0000T MM K0 segundos cada 1M2 "inuto
el Cliente lla"a al server
boolean ZagConJ0T MM lag de coneEi!n de coneEi!n v4lida servidor
boolean Zag:odJ0T MM lag de "odi+caci!n de salidas digitales
reali.adas
String cadConsultaJ QG7 Mreueri"iento*'*RconsultaJ1 H77PM11QT
String cad?es*uestaJQG7 Mreueri"iento*'*RconsultaJ2 H77PM11QT
String cadenaJQQT
boolean 'tt*?euest #String cad (T MM unci!n ue se encarga de
conectar al servidor Hosting y devuelve true o 5alse si se conecto o no
void res*uesta#(T MM uncion de es*erar la res*uesta y recibir la cadena
H7:) co"*leta ue res*onde el servidor
void "odi+carSalida#String cade(T MM 5uncion ue *rocesa el estado de las
salidas, las se*ara y actua sobre las salidas
void setu*#( V
MM F*en serial co""unications and Dait 5or *ort to o*enI
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
23/34
K9
&0
&1
&2
&K
&&
&/
&6
&%
&8
&9
/0
/1
/2
/K
/&
//
/6
/%
/8
/9
60
61
62
6K
6&
Serialbegin#9600(T
MM start t'e t'ernet connectionI Pri"ero intenta"os *or CHP sino
va"os con :yi* ue es +a
i5 #t'ernetbegin#"ac( JJ 0( V
Serial*rintln#Qailed to con+gure t'ernet using HCPQ(T
MM no *oint in carrying on, so do not'ing 5orever"oreI
MM try to congi5ure using 3P address instead o5 HCPI
t'ernetbegin#"ac, :yi*(T
MM give t'e t'ernet s'ield a second to initiali.eI
delay#1000(T
cadena J cadConsultaT
MM setu*
void loo*#(
V
MM i5 t'ere are inco"ing bytes available
MM 5ro" t'e server, read t'e" and *rint t'e"I
i5#"illis#(=startJ*eriodoConeEion(
V
startJ"illis#(T
i5#Zag:odJJ1( MM 'ay ue enviar un G7 consultaJ2 *ara noti+carue se 'i.o el ca"bio
V cadena J cad?es*uestaT
Serial*rintln#Qnviando con+r"aci!n ca"bio reali.adoQ(T
Serial*rintln#cadena(T
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
24/34
6/
66
6%
68
69
%0
%1
%2
%K
%&
%/
%6
%%
%8
%9
80
81
82
8K
8&
8/
86
8%
88
89
90
Zag:odJ0T MM Se *one a 0 *ara ue no vuelva a noti+car y de
a'ora en "as solo enve G7 con consultaJ1
MM l *roEi"o Get noti+car4 al servidor la "odi+caci!n a la *4gina
y el usuario asi *odr4 saber
else V
cadena J cadConsultaT
Serial*rintln#Qnviando connsultaQ(T
Serial*rintln#cadena(T
i5#'tt*?euest#cadena(JJ1(
V
res*uesta#(T
MM "illis
boolean 'tt*?euest#String cad(
V
ZagConJ0T MM lo *one"os *or de5ault a 0J5alse
Serial*rintln#QconnectingQ(T
MM i5 you get a connection, re*ort bac@ via serialI
i5 #clientconnect#server, 80(( V MM CFC7A:FS A) S?$?
Serial*rintln#QconnectedQ(T
ZagConJ1T
MM :a@e a H77P reuestI
MMclient*rintln#QG7 Mreueri"iento*'*RconsultaJ1 H77PM11Q(T s de
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
25/34
91
92
9K
9&
9/
96
9%
98
99
100
10
1
10
2
10
K
10&
10
/
10
6
10
%
108
10
9
11
esta 5or"a
client*rintln#cad(T
MMclient*rintln#QG7 Msearc'RJarduino H77PM11Q(T
MMclient*rintln#QHostI DDDgoogleco"Q(T
client*rintln#QHostI DDDguscir'olesQ(T
client*rintln#QConnectionI closeQ(T MM este es co"o un +n de consulta
de G7
client*rintln#(T
else V
MM @5 you didn^t get a connection to t'e serverI
Serial*rintln#Qconnection 5ailedQ(T
Serial*rintln#QdesconectandoQ(T
clientsto*#(T
ZagConJ0T
delay#2000(T MM da"os tie"*o
return ZagConT
void res*uesta#( MM lee la res*uesta del servidor ue lo recibi"os igual
ue la 5unci!n serial
V c'ar cT
String rE T MM Cadena de datos recibidos
String subE T MM subcadena +ltrada
MM )ee"os la res*uesta 't"l del servidor, aca viene todo
D'ile #clientavailable#(0(
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
26/34
0
11
1
11
2
11
K
11
&
11
/
116
11
%
11
8
11
9
120
12
1
12
2
12
K
12&
12
/
12
6
V
c J clientread#(T
rEJcT MM Concatena"os
Serial*rint#c(TMM A su ve. va"os viendo en el "onitor todo lo ue
recibi"os caracter *or ve.
MM D'ile
clientsto*#(T MM etene"os el cliente , es decir cerra"os la coneEi!n del
cliente cuando ter"ina la res*uesta
MM Si no se 'ace esto y se vuelve a intentar conectar da A))A
MM AA)3A:FS )A CAA ?SPS7A
MM
MMint longitudJ rElengt'#(T MM to"a"os longitud de la cadena
int *osT MM Posici!n de inicio de subcadena sal1J , *or G7 consultaJ1
int *oso@T MM Posicion de inicio de subcadena o@ey *or G7 consultaJ2
*osJrEindeEF5#Qsal1JQ(T MM 7o"o la *osici!n del inicio de la subcadena
*oso@JrEindeEF5#Qo@eyQ(T
MMSerial*rint#Q*osicion de sal IQ(T
MMSerial*rintln#*os(T
MM )o ue "e interesa son los 2& caracteres a *artir de la *osici!n
detectada ue incluye la de no reali.ado y la ? de reali.ado
i5#*osUJ=1( MM indica ue encontro subcadena sal1J
V
subEJrEsubstring#*os,*os2/(T MM el *ara"etro 7F es no inclusivo,
*or eso es 2/ y no *os2&
Serial*rint#Q)a subcadena +ltrada de interes es IQ(T
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
27/34
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
28/34
K
1&
&
1&
/
1&
6
1&
%
1&
8
1&9
1/
0
1/
1
1/
2
1/K
1/
&
1/
/
1/
6
1/%
1/
8
1/
nuestra a*licaci!n
ue se 'an obviado y solo se reali.ar4 el *rocesa"iento deando a su
ellecci!n la a*licaci!n
M
int salida1,salida2,salidaK,salida&T
salida1Jcadec'arAt#/(=^0^T
salida2Jcadec'arAt#11(=^0^T
salidaKJcadec'arAt#1%(=^0^T
salida&Jcadec'arAt#2K(=^0^T
Serial*rint#QSA)3A 1I Q(T
Serial*rintln#salida1(T
Serial*rint#QSA)3A 2I Q(T
Serial*rintln#salida2(T
Serial*rint#QSA)3A KI Q(T
Serial*rintln#salidaK(T
Serial*rint#QSA)3A &I Q(T
Serial*rintln#salida&(T
Zag:odJ1T
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
29/34
9
16
0
16
1
16
2
16
K
16
&
16/
16
6
16
%
16
8
169
1%
0
1%
1
1%
2
1%K
Caracteristicas del So5tDare
boolean 'tt*?euest #String cad ( s una 5unci!n ue se encarga de reali.ar la
coneEi!n al servidor y reali.ar las consultas G7 ue *ueden ser, co"o vi"os ,
de dos ti*osI
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
30/34
String cadConsultaJ ;G7 Mreueri"iento*'*RconsultaJ1 H77PM11tily eEtrae el 1 o el 0 de cada salida, y en este caso, saca *or consola el estado
de cada salida
Si"*li+cando el 5unciona"iento se vera de la siguiente "aneraI
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
31/34
sue"a A*licacion WebClient
Ca*turas en el :onitor serie de Arduino WebClient
Consulta WebClient, donde o 'ay :odi+caciones
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
32/34
Consulta
Petici!n con valorJ1
Consulta WebClient, donde 'ay :odi+caciones ue reali.ar
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
33/34
Consulta con
$alorJ1 y cadena "odi+cada *or suario
Consulta WebClient de Con+r"aci!n y acuse de recibo
-
8/18/2019 Proyecto Arduino PHP Hostinger Salidas 2
34/34
ConsultaJ2 acuse recibo
s*ero ue les sea de utilidad, )os c!digos de eE*usieron *ara su an4lisis n
*articular el c!digo Arduino *resenta en su "onitor serial toda la in5or"aci!n
*ara el ebugger del "is"o s de notar ue si el Arduino se a*aga *or alguna
ra.!n y luego e"ite su consulta va a recibir ue ya esta ?eali.ado y no"odi+car4 el stado de sus salidas sto se *uede solucionar de varias
"aneras, incluso el Arduino *uede no basarse en el resultado de
?A)3AFMF ?A)3AF *ara actuar sobre las salidas, es decir *uede actuar
sie"*re inde*endiente de este estado, es decir cada ve. ue recibe la cadena
de salidas *uede lla"ar a la 5unci!n de "odi+carSalidas#( y ;re5rescarlas