Siguenos en ...

Google+facebooktwitter

youtubepinterest RSS aquihayapuntes

Últimos Tutoriales

Licencia

Creative Commons

 

Todo el contenido de este sitio está bajo una licencia de Creative Commons

 

Comandar un PIC a través de Internet

 

 

Ejemplo Nº2

 

En este segundo ejemplo utilizaremos la interfaz serie para conectar un Microcontrolador (PIC18F4550) a una red Ethernet a través del SitePlayer. El ejemplo consistirá en un controlador de la temperatura ambiente. El Microcontrolador recibirá los datos de la temperatura a través de un sensor de temperatura (DS1631) conectado al PIC a través de un bus I2C. El PIC enviará los datos al SitePlayer a través de la interfaz serie y visualizaremos el resultado en una página web a la cual accederemos desde un Navegador instalado en un PC externo a nuestra red local (LAN).

El montaje del circuito se muestra en la figura de abajo:

 

Ejemplo 2

 

Y la forma en la que quedaría conectado el circuito a una red Ethernet sería la siguiente:

 

Ejemplo Conexión WAN

 

Con respecto al ejemplo 1 este presenta dos novedades:

1) En el primer ejemplo accedíamos a la página WEB a través de la misma red Local en la que teníamos conectado el SitePlayer. Como se ve en la figura de arriba en esta ocasión se accede a través de un nombre  de dominio propio y por tanto podremos comandar el Microcontrolador desde cualquier lugar en donde tengamos un dispositivo capaz de conectarse a Internet y disponga de un navegador WEB y digo cualquier dispositivo porque no solo podremos hacerlo a través de un PC sino también a través de una PDA, un teléfono móvil, una consola de videojuegos etc. que en definitiva era lo que se pretendía.

2) En el primer ejemplo controlábamos el puerto de I/O del SitePlayer. En este ejemplo se establece un protocolo de comunicación entre el SitePlayer y el Microcontrolador a través de la interfaz serie.


En todo lo demás el procedimiento a seguir es el mismo que lo realizado para el ejemplo anterior.

 

Consideraciones a tener en cuenta

 

Para conectarnos al servidor web del SitePlayer desde Internet a través de una red externa a nuestra red local (LAN) es necesario hacerlo por medio de nuestra IP pública. Esta IP es la que nos asigna nuestro proveedor de servicios de internet (ISP). Puedes averiguar cuál es tú  IP pública a través de diferentes páginas como esta: http://www.adslayuda.com/ip.html


Otro problema que tendremos que resolver es que esa IP a no ser que la paguemos no es fija sino dinámica, es decir  cada vez que nuestra puerta de enlace (normalmente un rooter) se reinicie, nuestro ISP nos asignará una IP pública diferente. Afortunadamente la mayoría de los rooters  que nos “regalan” las empresas ISP cuando contratamos sus servicios nos dan la posibilidad de conectarnos a un servidor DNS dinámico gratuito como dyndns, No-IP, ect. Esto lo que hace es que una vez configurado el rooter, cada cierto tiempo envía nuestra IP pública al servidor DNS y este actualizará la IP asociada al nombre de dominio. A partir de ahora nosotros accederemos a la página a través del nombre de dominio y no tendremos que preocuparnos de que nuestra IP pública haya cambiado.  


A la hora de implementar el protocolo de comunicación entre el Microcontrolador y el SitePlayer a través de la interfaz serie, tenemos dos opciones:

  • Utilizar el objeto COM: es la forma más sencilla, la función de este objeto es el envío de cadenas de caracteres a través del puerto serie. Cuando desde la página WEB queremos enviar algún dato al Microcontrolador  a través del puerto serie llamamos al objeto COM  y este enviará los datos directamente al Microcontrolador a través del pin Tx de la interfaz serie sin guardar nada en la memoria RAM del SitePlayer.

Ejemplo:


<a href="/Ejemplo2.SPI?com=ON">Marcha</a>
<a href="/Ejemplo2.SPI?com=OFF">Parada</a>

 

Estos dos enlaces colocados en la página WEB enviaran por el puerto serie las cadenas  “ON” y “OFF” cuando pulsemos sobre los enlaces Marcha y Parada.

Si queremos enviar caracteres no imprimibles utilizaremos el siguiente formato:


<a href="/Ejemplo2.SPI?com=%01%03">envía Ctrl-A Ctrl-C</a>

 

Si hay dos dígitos después del símbolo (%) serán interpretados como caracteres Hexadecimales.

También podemos configurar el Baud Rate del puerto serie desde la página WEB:


<a href="/Ejemplo2.SPI?baud=65406">Haz clic para baud Rate = 9600 baudios</a>

 

Esto configurará la velocidad a 9600 baudios, la fórmula a emplear es:
65536- (1250000/baudrate)

En el manual de referencia hay una tabla con los valores comúnmente utilizados.


El inconveniente que tiene este método es que la comunicación es unidireccional, desde la página WEB hacía el PIC y no a la inversa ya que el objeto COM no modifica ni guarda ningún dato en la memoria RAM del SitePlayer.

 

  • A través de comandos: Para evitar el inconveniente anterior, podemos controlar la comunicación serie a través de los siguientes comandos:

 

Tabla Comandos Serie

 

De esta forma podemos leer el valor de un Objeto en memoria o modificar su valor; al almacenar los datos en memoria ya no hay ningún problema en establecer una comunicación bidireccional entre la página WEB y el Microcontrolador al igual que hicimos con el Ejemplo1.  

La forma de utilizar estos comandos utilizando el lenguaje C y el compilador de CCS es la siguiente:

Primeramente hay que inicializar el SitePlayer  para ello se envía 20 veces el comando NOP:


////////Función de inicialización SitePlayer ///////////
void inicio(){
int i;
for(i=0;i<20;i++){
putc(0);     
}
delay_ms(50);
}


Para enviar un dato al SitePlayer  se envía el comando de escritura (80h) seguido de la dirección del objeto y el valor que queremos asignarle:


putc(0x80);   
putc(0x00);
putc(0x01);

 

Esto escribirá el valor 1 en la dirección 0x00

Una petición de lectura al SitePlayer será similar salvo que el comando a enviar será el de lectura (C0h).  

Un vídeo del ejemplo 2 funcionando lo tenéis aquí:

 




Puedes comentar o seguir los avances sobre estos ejemplos en este hilo del foro de AquiHayApuntes.com

 

La versión en .pdf del artículo para su descarga la tienes aquí.

 

Fuentes de Información


http://www.netmedia.com/siteplayer/webserver/sp1.html
http://www.superrobotica.com/S310265.htm
CCS Custom Computer Services

Marcas registradas


Las marcas citadas en este artículo así como las imágenes procedentes de capturas de pantallas pertenecen a sus respectivos propietarios su utilización en este artículo es con fines divulgativos y sin ánimo de lucro.

© 2007-2017 AquiHayapuntes.com