YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
  • 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


Related Documents