Enviando dados seriais para o EZ Web Lynx

dados seriais para o EZ Web Lynx
Este post faz parte da série Módulo ETHERNET EZ WEB LYNX

Continuando sobre o assunto referente ao módulo ethernet ez web lynx, hoje iremos mostrar como receber dados provenientes de um microcontrolador, por exemplo, para o módulo ez web lynx. Futuramente falaremos sobre como transmitir dados via serial por este módulo.

O ez web lynx inclui um recurso que permite ao dispositivo capturar automaticamente um caractere de inicialização e um caractere de parada. Este recurso é útil quando você necessita que uma informação possa ter uma tag para indicar o início de uma transmissão serial e outra para indicar o término desta transmissão. Este recurso também é útil em um dispositivo serial onde a informação precisa ser processada com frequência ou que envia um código de erro de série específico que deve ser capturado.

Este caractere para inicialização é o “$” (sem aspas) e o caractere para finalização é o “*” (sem aspas). Este recurso já pertence tanto a IDE quanto ao próprio EZ WEB LYNX.

Porém o caractere $ apenas indica que a string a seguir será a responsável pela inicialização da recepção dos dados, assim como o caractere * apenas indica que a string a seguir será a finalizadora destes dados recebidos.

Vamos ver um exemplo!

Imagine que eu queira enviar as seguintes informações:

  1. Valor de tensão;
  2. Valor de corrente;
  3. Valor da potência;
  4. Valor de temperatura.

Essas informações serão provenientes de um microcontrolador PIC16F877A e serão enviadas pela serial ao módulo EZ WEB LYNX, utilizando os pinos RX e TX do mesmo.

Enviando dados seriais para o EZ Web Lynx
Figura 1 – Envio de informações do microcontrolador

Agora imagine que minha “cadeia” de informação será então composta assim:

Sequência de start + DADOS + sequência de stop

$ABC1222425.6*XYZ

Quebrando esta cadeia de dados temos:

  • $ = caractere que indica que a string a seguir será a inicializadora da recepção da string;
  • ABC = String de start;
  • 12 = Valor da tensão;
  • 2 = Valor da corrente;
  • 24 = Valor da potência;
  • 25.6 = Valor da temperatura;
  • * = caractere que indica que a próxima string é a finalizadora da recepção
  • XYZ = String de STOP.

Agora temos que converter ABC, XYZ para caracteres ASCII, ou seja, 0x41, 0x42, 0x43 (ABC) e 0x58, 0x59, 0x5A (XYZ).

A pagina dentro do ez web lynx ficaria assim:

</style></head><body>
  <p>
    <!--(EXEC SERIAL_START=0x41,0x42,0x43)-->
    <!--(EXEC SERIAL_END=0x58,0x59,0x5A)-->
  </p> 
  <p>
    <span style="font-size:18pt;"><b>Tensao Eletrica:</b></span> <!--(IF SERIAL_KBHIT > 0)-->
    <!--(SERIAL DATA 3 4)-->
    <!--(ELSE)--><b>NO SERIAL DATA!</b><!--(ENDIF)-->
  </p> 
  <p>
    <span style="font-size:18pt;"><b>Corrente Eletrica:</b></span>
    <!--(IF SERIAL_KBHIT > 0)-->
    <!--(SERIAL DATA 5 5)--> 
    <!--(ELSE)--><b>NO SERIAL DATA!</b><!--(ENDIF)-->
  </p> 
  <p>
    <span style="font-size:18pt;"><b>Potencia Eletrica:</b></span> <!--(IF SERIAL_KBHIT > 0)-->
    <!--(SERIAL DATA 6 7)-->
    <!--(ELSE)--><b>NO SERIAL DATA!</b><!--(ENDIF)-->
  </p> 
  <p>
    <span style="font-size:18pt;"><b>Temperatura:</b></span> <!--(IF SERIAL_KBHIT > 0)-->
    <!--(SERIAL DATA 8 11)-->
    <!--(ELSE)--><b>NO SERIAL DATA!</b><!--(ENDIF)-->
  </p> 
</body></html>

OBS: O comando SERIAL DATA irá enviar o dado cuja posição foi passada para o comando, exemplo: (SERIAL DATA 8 11) retornará pela página web a informação contida na oitava e decima primeira posição do frame de dados, ou seja, irá retornar o valor da temperatura que neste caso foi determinada em 25.6.

IDE do módulo EZ WEB LYNX
Figura 2 – IDE do módulo EZ WEB LYNX

Crie esta página web pela IDE do módulo EZ WEB LYNX utilizando a guia “HTML” da IDE.

Depois clique em Target e em seguida em Create Image para você gerar o arquivo data.cds, que será enviado para o módulo ez web lynx clicando no botão Upload Project. Irá então aparecer a tela de comando, indicando que o projeto está sendo compilado.

Tela de comando da IDE do módulo EZ WEB LYNX
Figura 3 – Tela de comando

Abaixo temos uma imagem de uma placa de desenvolvimento em PIC16F877A que desenvolvi rapidamente apenas para conectar ao módulo ez web lynx e logo a seguir temos a imagem da página web mostrando estes dados recebidos pelo módulo.

Circuito de teste montado
Figura 4 – Circuito de teste montado
Página de teste
Figura 5 – Página de teste

A seguir temos a pinagem do módulo ez web lynx:

Pinagem do módulo ez web lynx
Figura 6 – Pinagem do módulo ez web lynx

Código Fonte para o microcontrolador

Deixo a seguir o fonte do CCS C Compiler para o PIC16F877A:

#include <16f877a.h>
#fuses XT,NOWDT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
void main()
{
   	while(true)
  	 {
    	 	printf("$ABC1222425.6*XYZ");
  	 	delay_ms(1000);
   
  	 }

}

Código fonte para uso do Arduino:

String msg = "$ABC1222425.6,*XYZ";
void setup()
{
  
  	Serial.begin(9600);

}

void loop() // run over and over
{
 	Serial.println(msg);
        delay(1000);
}

Receber dados pela serial do módulo EZ WEB LYNX também se torna muito fácil, visto que o objetivo deste módulo é justamente este. Ou seja, trazer praticidade no desenvolvimento sem perder em qualidade no projeto, minimizando, com isto, o custo no tempo de desenvolvimento para uma solução embarcada conectada à Web.

Módulo ETHERNET EZ WEB LYNX

Conhecendo o módulo ETHERNET EZ WEB LYNX Enviando dados seriais para o EZ Web Lynx: Final
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Software » Enviando dados seriais para o EZ Web Lynx

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: