Sunteți pe pagina 1din 26

Comandar un PIC a travs de Internet

Biblioman Abril-2011

Comandar un PIC a travs de Internet

Introduccin
Conectar un Microcontrolador a una red Ethernet y recibir o enviarle instrucciones al PIC desde una pgina WEB a travs del protocolo HTTP no es nada novedoso a estas alturas. Para ello tenemos dos opciones; la primera es utilizar un controlador externo que implementa ya todo lo necesario para la comunicacin Ethernet, el Microcontrolador se conecta al mdulo Ethernet a travs de una interfaz como RS-232, SPI, etc. En este grupo se encuentran dispositivos como: ENC28J60, ENC624J600, Rabbit, EZ Web Lynx, SitePlayer, etc. La otra opcin es utilizar un Microcontrolador que lleve ya integrado el controlador Ethernet, Microchip dispone de varios PICs con estas caractersticas como el PIC18F67J60, PIC18f97J60, PIC32MX795FXXX, etc. Las ventajas y desventajas de utilizar una opcin u otra son hasta cierto punto obvias, en el caso de utilizar un mdulo externo puedes utilizar cualquier Microcontrolador para realizar una aplicacin que enve y reciba datos desde Internet, al estar todo lo referente a la comunicacin Ethernet en el mdulo externo, no necesitas implementar nada ms que t aplicacin en el Microcontrolador y las funciones necesarias para el envo de datos serie al controlador, con el consiguiente ahorro de recursos en el PIC, como inconveniente lgicamente est el que tienes que utilizar un componente Hardware ms en t circuito. Si se utiliza un Microcontrolador que incorpore el controlador Ethernet te ahorras el tener que utilizar un componente extra para la gestin de la comunicacin Ethernet, pero como inconvenientes tendrs que solo podrs utilizar un nmero reducido de PICs en tus proyectos y que lgicamente tendrs que incluirle a t cdigo el conjunto de libreras o Stack TCP/IP que suministre el desarrollador del compilador que utilices y como estars suponiendo, si es que no las conoces ya, no son nada livianas en cuanto a tamao , con el consiguiente consumo de recursos por parte del PIC. En realidad dada la complejidad del Stack lo que se hace es adaptar t aplicacin para que funcione dentro del conjunto de libreras TCP/IP. En mi opinin el uso de un controlador externo es una manera fcil y sencilla de conectar un Microcontrolador o cualquier otro dispositivo a una red Ethernet pero difiere bastante en cuanto al desarrollo del cdigo de la aplicacin si en vez de ello utilizamos un Microcontrolador con el controlador Ethernet incluido y por tanto no se puede comparar una cosa con la otra. En este artculo vamos a ver como utilizar un controlador Ethernet externo concretamente el SitePlayer SP1 que fabrica la empresa NetMedia. Algunas de sus caractersticas son las siguientes:

Biblioman

http://www.aquihayapuntes.com

Pgina 2

Comandar un PIC a travs de Internet

Caractersticas Principales
Servidor WEB completo en un mdulo de reducido tamao (22x33mm), cuyo cerebro es tan solo un Microcontrolador de 8 bits concretamente el 89C51 de Philips al que se le ha aadido una interfaz Ethernet. Dispone de un puerto de 8 pines que permite su conexin directa a circuitos de entrada y salida, tambin pueden configurarse cuatro PWMs o DACs de 8 bits, generadores de frecuencia, o contadores de eventos. El dispositivo cumple con el estndar 10BaseT con correccin automtica de la polaridad por hardware. 64 KBites de memoria flash de los cuales 48 KBites estn disponibles para albergar las pginas web, cuya carga se hace va Ethernet. El Firmware del dispositivo es actualizable va Ethernet. Soporte para los siguientes protocolos de comunicacin: ARP, ICPM, IP, UDP, TCP, DHCP. La IP del dispositivo la podemos configurar de forma esttica o de forma dinmica a travs de un servidor DHCP. Interfaz serie con un Baud Rate configurable entre 300 y 115.200 bits por segundo. Controles .OCX para facilitar la creacin de aplicaciones de escritorio en Visual Basic, Java, C C++ y para el monitoreo y control remoto del SitePlayer. 768 bytes para los SiteObjetos (veremos ms adelante lo que es esto), los cuales pueden ser del tipo bit, byte, integer, long y string. Las pginas web que posteriormente se alojarn en el SitePlayer deben de cumplir el estndar HTML y se pueden crear por medio del bloc de Notas o con cualquiera de los mltiples programas del tipo WYSIWYG que existen como FrontPage, Dreamweaver, etc. La conexin del dispositivo a una red Ethernet se realiza a travs de un conector RJ-45 apantallado con filtros para evitar interferencias.

Biblioman

http://www.aquihayapuntes.com

Pgina 3

Comandar un PIC a travs de Internet

Comenzando
Para empezar a trabajar con el SitePlayer lo primero que tenemos que tener adems de disponer del dispositivo en s, es bajarnos las aplicaciones de escritorio y la documentacin (muy completa) desde la pgina del fabricante NetMedia. Desde la seccin de descargas nos bajaremos la versin completa que incluye el Site Linker V1.1 Una vez instalado el paquete se nos habrn instalado varias aplicaciones, todas ellas muy sencillas de utilizar: SitePlayerPCDemo, SiteLinker, Serial Port Tester y UPDsendtest. Vamos hacer una pequea descripcin de cada una de ellas. Serial Port Tester: como su propio nombre indica es una aplicacin que nos permite testear la interfaz serie que incorpora el SitePlayer, adems desde ella podemos ajustar determinados parmetros de configuracin en el SitePlayer como la direccin IP del dispositivo, Obtener la direccin MAC, hacer un Reset, Obtener o cambiar el valor de determinadas posiciones de memoria, etc. La conexin al SitePlayer se realiza a travs de un puerto serie libre que tengamos en nuestro ordenador y un convertidor de niveles como el MAX232 para adaptar los niveles TTL en los que trabaja el SitePlayer a la norma RS232 requerida por el PC.

Biblioman

http://www.aquihayapuntes.com

Pgina 4

Comandar un PIC a travs de Internet

SitePlayerPCDemo: es un emulador software del SitePlayer y nos permite depurar nuestro proyecto, antes de descargarlo definitivamente en el SitePlayer. En si es un servidor WEB local que nos permite visualizar en el navegador las pginas tal y como si lo estuviramos haciendo realmente a travs del SitePlayer.

Biblioman

http://www.aquihayapuntes.com

Pgina 5

Comandar un PIC a travs de Internet

SiteLinker: un proyecto para el SitePlayer no consta slo de los archivos en html de las pginas que queremos cargar en l, adems hay que crear otra serie de archivos como el archivo de definiciones (.SPD) y otros, que veremos en un ejemplo ms adelante. Pues bien el SiteLinker tiene dos funciones, la primera es enlazar todos esos archivos en un solo archivo binario y que tendr de extensin (.SPB) este ser el archivo que hay que cargar en el SitePlayer y que se transferir a l va Ethernet a travs de este mismo programa.

Como se ve en la figura de arriba si hacemos clic sobre la pestaa Download tenemos tres opciones: o Make DownLoad: solamente har el linkado de los archivos y generar el archivo binario con extensin (.spb). o Download SitePlayer: enviar al SitePlayer va Ethernet el archivo binario que seleccionemos. o Make and DownLoad: har los dos pasos anteriores en uno, nos pedir que seleccionemos un archivo de definiciones (.SPD), generar el archivo binario (.spb) y lo cargar en el SitePlayer.

Biblioman

http://www.aquihayapuntes.com

Pgina 6

Comandar un PIC a travs de Internet

UDPsendtest: el SitePlayer tambin tiene la funcionalidad de poder enviar mensajes UDP a cualquier combinacin de direcciones MAC/IP que queramos. Est aplicacin permite visualizar los paquetes UDP enviados por el SitePlayer.

Hardware necesario
El SitePlayer aunque pocos, necesita componentes auxiliares para ponerlo en funcionamiento. Podemos adquirir una placa de demostracin ya hecha o hacerla nosotros mismos, tambin se puede realizar el montaje en una Proto-Board, yo he optado por la realizacin de una pequea placa modular.

Biblioman

http://www.aquihayapuntes.com

Pgina 7

Comandar un PIC a travs de Internet

Modulo principal:

Biblioman

http://www.aquihayapuntes.com

Pgina 8

Comandar un PIC a travs de Internet

PCB:

Montaje terminado:

Biblioman

http://www.aquihayapuntes.com

Pgina 9

Comandar un PIC a travs de Internet

Mdulo para la conexin serie a un PC:

Biblioman

http://www.aquihayapuntes.com

Pgina 10

Comandar un PIC a travs de Internet

Conexin serie del SitePlayer a un PC

Ejemplo N1
Ahora que ya tenemos nuestro SitePlayer montado y leda la documentacin del fabricante ya estamos listos para realizar el primer ejemplo. Que consistir en la realizacin de una pgina WEB realizada en HTML y que alojaremos en el SitePlayer, despus desde un navegador WEB instalado en un PC accederemos a dicha pgina, la cual permitir el control del puerto de I/O del SitePlayer. La aplicacin una vez terminada quedar segn se muestra en la figura de abajo.

Biblioman

http://www.aquihayapuntes.com

Pgina 11

Comandar un PIC a travs de Internet

Desde la pgina web mostrada a la izquierda de la imagen de arriba podremos poner a ON/OFF tres salidas digitales representadas por tres diodos Leds, tambin podremos visualizar el estado de los dos pulsadores colocados sobre la proto-Board. Para la realizacin de cualquier proyecto con el SitePlayer deberemos de realizar los siguientes pasos: 1) Crear el archivo de definiciones de nuestro proyecto (.SPD) con el bloc de Notas u otro editor de texto plano. 2) Crear la o las pginas WEBS usando un editor HTML (podis utilizar cualquiera, siempre que cumpla el estndar). 3) Ensamblar todo en nico archivo binario (.SPB) y descargarlo en el SitePlayer a travs del programa SiteLinker. 4) Acceder a la pgina cargada en el SitePlayer a travs de un navegador WEB.

Biblioman

http://www.aquihayapuntes.com

Pgina 12

Comandar un PIC a travs de Internet

Archivo de Definiciones El archivo de definiciones para nuestro primer ejemplo es el siguiente:


;Ejemplo1

;SECCIN DEFINICIONES
;Nombre o descripcin del dispositivo $Devicename "AquiHayApuntes.com" ;$DHCP on establece que el SitePlayer obtenga la IP a travs de un ;servidor DHCP $DHCP off ;$DownloadPassword password para poder descargar nuevas pginas y ;actualizaciones del firmware. $DownloadPassword "" ;$InitialIP Parmetro para configurar una IP fija $InitialIP "192.168.1.250" ;$PostIRQ on genera un nivel bajo (IRQ) en el pin 11. $PostIRQ off ;$Sitefile ruta donde se crear el archivo binario con extensin .SPB $Sitefile "C:\Program Files\SitePlayer\Ejemplo1.spb" ;$Sitepath Directorio raz donde est alojada la pgina WEB $Sitepath "C:\Program Files\SitePlayer\Ejemplo1" ;SECCIN DE OBJETOS org 0FF14h led1 ds 1 org led2 org led3 0FF15h ds 1 0FF16h ds 1

org 0FF17h pulsador1 ds 1 org 0FF18h ds 1

pulsador2
;SECCIN

EXPORTACIN DE FICHEROS

;No utilizada en este ejemplo.

Biblioman

http://www.aquihayapuntes.com

Pgina 13

Comandar un PIC a travs de Internet

Lo primero que observamos viendo el contenido del archivo es que se parece mucho a un cdigo escrito en ensamblador, lo que va detrs del ; son comentarios. El cdigo se puede dividir en tres secciones: seccin de definiciones, declaracin de Objetos y una seccin de exportacin de ficheros. En la seccin de definiciones se establecen los parmetros inciales del SitePlayer, hay muchas opciones de configuracin (estn todas explicadas en el manual de referencia), aqu vamos a comentar las utilizadas en este ejemplo:
;$Nombre o descripcin del dispositivo $Devicename "AquiHayApuntes.com"

Este parmetro es equivalente al nombre de un PC que le ponemos para identificarlo dentro de una red local. El nombre puede ser una cadena de hasta 64 caracteres.
;$DHCP on establece que el SitePlayer obtenga la IP a travs de un ;servidor DHCP $DHCP off

Si nuestro Router dispone de servidor DHCP entonces la IP del dispositivo se la dar el Rooter dentro de las que tenga libres en el rango definido por nosotros. Nota: la mayora de los Modem-Rooter que proporcionan gratuitamente los proveedores de servicios de Internet llevan incorporado este servicio).
;$DownloadPassword password para poder descargar nuevas pginas y ;actualizaciones del firmware. $DownloadPassword ""

En este caso la contrasea est en blanco, se puede especificar una contrasea de hasta 16 caracteres. Si tenemos establecida una contrasea el SiteLinker nos pedir la contrasea antes de poder cargar una nueva pgina.
;$InitialIP Parmetro para configurar una IP fija $InitialIP "192.168.1.250"

Si no utilizamos un servidor DHCP para obtener la direccin IP, con este parmetro asignaremos una IP fija a nuestro dispositivo. Si utilizamos la opcin del DHCP a ON, tambin deberemos configurar una IP inicial con este parmetro.
;$PostIRQ on genera un nivel bajo (IRQ) en el pin 11. $PostIRQ off

Esta opcin es muy til cuando utilizamos el SitePlayer junto con un Microcontrolador. Cada vez que desde la pgina WEB se modifique algn dato, el SitePlayer pondr a
Biblioman http://www.aquihayapuntes.com Pgina 14

Comandar un PIC a travs de Internet

nivel bajo el PIN 11 durante cinco microsegundos, cuando este parmetro lo configuremos a ON podremos conectar ese PIN a la patilla RB0 del PIC configurado como interrupcin externa, de esa manera el Microcontrolador no estar constantemente preguntando el valor de los datos al dispositivo, solo lo har cuando haya datos nuevos que leer en el SitePlayer.
;$Sitefile ruta donde se crear el archivo binario con extensin .SPB $Sitefile "C:\Program Files\SitePlayer\Ejemplo1.spb"

La ruta que pongamos aqu ser donde se crear el archivo binario Ejemplo1.spb despus de ensamblarlo con el programa SiteLinker.
;$Sitepath Directorio raz donde est alojada la pgina WEB $Sitepath "C:\Program Files\SitePlayer\Ejemplo1"

Tendremos que crear la carpeta Ejemplo1 en el directorio indicado y dentro de esa carpeta es donde tendremos que guardar nuestra pgina WEB que puede constar de varias pginas html unidas mediante enlaces. Seccin de Objetos Aqu es donde est el Kit de la cuestin. El SitePlayer dispone de unas direcciones de memoria que van desde la 0000h a 02FFh donde se pueden guardar objetos definidos por nosotros y acceder a su valor a travs de diferentes interfaces y protocolos. Nota: se puede hacer un smil entre lo que es una variable y el concepto de Objeto en el SitePlayer, pero como se ver ms adelante los SiteObjetos disponen de modificadores y propiedades que los hacen diferentes a lo que es en s el concepto de una variable. Por ejemplo, desde la pgina WEB utilizando el protocolo http puedo hacer una peticin de lectura o escritura de los objetos (variables) y desde la interfaz serie puedo tambin leer o escribir en esos objetos. Por ejemplo:
org led1 0FF14h ds 1

Declara el objeto led1 del tipo ds que es un tipo de dato que depende del espacio usado (parecido al tipo Variant en Basic) el 1 indica que es tipo byte., si fuera un dos sera de tipo Integer, etc. Este tipo de dato no admite un valor inicial para el objeto.

Biblioman

http://www.aquihayapuntes.com

Pgina 15

Comandar un PIC a travs de Internet

El org al igual que en ensamblador sirve para indicar a partir de que posicin de memoria empezarn a guardarse los Objetos. Veamos otro ejemplo:
org 00h led1 db 1 pulsador1

db 1

Aqu el valor del Objeto led1 se guardar en la direccin 0x00h y pulsador1 en la direccin 0x01h. El dato es de tipo byte (db) y el 1 tiene un significado diferente al ejemplo anterior, en este caso significa el valor inicial que tomar la variable. Seccin de Exportacin de Ficheros No utilizada en este ejemplo. Define cmo y dnde se exportar cualquier fichero durante el proceso de linkado. til cuando los datos se tienes que exportar a aplicaciones de escritorio hechas en Visual Basic, C, C++, etc. Nota: Una vez creado el archivo de definiciones lo guardamos con el nombre Ejemplo1.SPD, (no olvidarse de modificar la extensin del archivo). Creacin de la pgina WEB en html Como hemos comentado ya para crear la pgina WEB podemos utilizar un simple editor de texto plano como el bloc de notas o ayudarnos de un editor de pginas WEB ms avanzado como FrontPage, Dreamweaver u otro cualquiera, si utilizamos est ltima opcin hay que tener en cuenta que aunque estos IDES son de gran ayuda para el que no tiene mucha soltura en programar en este lenguaje de etiquetas como es el html siempre tendremos que editar el cdigo generado por el Wizard y modificar algunas cosas, vamos a ver que cosas son esas con el cdigo del ejemplo que estamos viendo.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin t&iacute;tulo</title></head>

Biblioman

http://www.aquihayapuntes.com

Pgina 16

Comandar un PIC a travs de Internet

<body> <div align="left"> <p><img src="logo.jpg" width="300" height="85" /></p> </div> <table width="309" border="1"> <tr> <th colspan="2" bgcolor="#0066FF" scope="col">Contol E/S Site Player</th> </tr> <tr> <td width="124" rowspan="3" bgcolor="#99CC00"><div align="center"><strong>Salidas Digitales</strong></div></td> <td bgcolor="#FFFFFF"><div align="center"><a href="Ejemplo1.SPI ?led1=led1~1">Toggle Led 1</a>&nbsp;&nbsp;<img src="led^led1.gif" width="40" height="20" /></div></td> </tr> <tr> <td bgcolor="#FFFFFF"><div align="center"><a href="Ejemplo1.SPI ?led2=led2~1">Toggle Led 2</a>&nbsp;&nbsp;<img src="led^led2.gif" width="40" height="20" /></div> <div align="center"></div></td> </tr> <tr> <td bgcolor="#FFFFFF"><div align="center"><a href="Ejemplo1.SPI ?led3=led3~1">Toggle Led 3</a> &nbsp;&nbsp;<img src="led^led3.gif" width="40" height="20" /></div> <div align="center"></div></td> </tr> <tr> <td bgcolor="#CCFF00"><p align="center"><strong>Entradas Digitales</strong></p> </td> <td><p><strong>estable/strong></p>

Biblioman

http://www.aquihayapuntes.com

Pgina 17

Comandar un PIC a travs de Internet

<p><strong>Pulsador 2 = ^pulsador2</strong></p></td> </tr> </table>

<p>&nbsp;</p> <p>&nbsp;</p> </body> </html>

De todo este cdigo y quitando el cdigo que le da formato a la pgina, lo que nos interesa son las lneas que lleven cdigo como este:
div align="center"><a href="Ejemplo1.SPI?led1=led1~1">Toggle Led 1</a>&nbsp;&nbsp;<img src="led^led1.gif" width="40" height="20" /></div> Pulsador 2 = ^pulsador2

El fabricante nos da la posibilidad de poder enviar o recibir datos al SitePlayer desde la pgina web de varias formas. Por ejemplo podemos utilizar el mtodo GET desde un formulario y tambin podemos como en este caso enviar o recibir datos a travs de un enlace. Para establecer un enlace en HTML necesitamos un destino en este caso el destino es el archivo Ejemplo1.SPI que tendremos que crear y guardar en el directorio raz que hayamos elegido en la creacin del proyecto. El contenido de este archivo es el siguiente:
HTTP/1.0 302 Found Location: /index.htm

<cr><lf>

Y para lo nico que sirve es para hacer un re direccionamiento a la pgina index.htm con la informacin actualizada. Es muy importante no olvidarse de dejar una lnea en blanco al final del fichero, si no lo hacemos no funcionar. Cmo accedo a los Objetos desde html? Pues debemos de poner el smbolo (^) seguido del nombre del Objeto, en el ejemplo:
Pulsador 2 = ^pulsador2

^pulsador2 ser sustituido por el valor que tenga en memoria el Objeto pulsador2.
Biblioman http://www.aquihayapuntes.com Pgina 18

Comandar un PIC a travs de Internet

Y la parte del cdigo html que modifica el valor de un Objeto es esta:


<a href="Ejemplo1.SPI?led1=led1~1">Toggle Led 1</a>

En este caso led1=led~1 le asigna al objeto led1 su valor negado, con lo que se consigue el efecto Toggle en el led.

Y ahora Que..?
Pues ya tenemos todos los archivos que componen nuestro proyecto creados, nos queda unificarlos en un nico archivo binario, para ello abrimos la aplicacin SiteLinker hacemos clic sobre File-> Open y seleccionamos el archivo de definiciones que habamos creado anteriormente (Ejemplo1.SPD). Una vez abierto hacemos clic sobre Download -> Make Download File. Si todo ha ido bien en el cuadro de texto de la aplicacin nos mostrar el tamao en bytes que ocupar el archivo en la memoria Flash del dispositivo y un mensaje de que el archivo binario (Ejemplo1.SPB) se ha creado correctamente.

Probando nuestro proyecto


En teora ya tenemos nuestro proyecto listo para cargarlo en el SitePlayer, pero no sabemos si funciona correctamente, para depurar nuestro programa de posibles errores disponemos del programa SitePlayerPCDemo que ya habamos visto anteriormente. Para ello abrimos la aplicacin y hacemos clic en File->Open y seleccionamos el archivo Ejemplo1.SPB, despus hacemos clic sobre Browser para que se nos habr el navegador y podamos probar nuestra aplicacin. Nota: si intentamos abrir directamente las pginas WEB creadas con el navegador, no se mostrarn correctamente, ya que el navegador no sabr interpretar los smbolos que son especficos y necesarios para el funcionamiento del servidor WEB del SitePlayer.

Cargando nuestra aplicacin en el SitePlayer


Una vez probada nuestra aplicacin en local solo nos queda transferir el archivo binario al SitePlayer, para ello abrimos de nuevo la aplicacin SiteLinker pulsamos sobre Download->Download SitePlayer y descargamos el archivo Ejemplo1.SPB a la memoria Flash del Site player. Si todo ha ido bien podremos abrir el navegador y

Biblioman

http://www.aquihayapuntes.com

Pgina 19

Comandar un PIC a travs de Internet

acceder a la pgina WEB a travs de la IP que hayamos definido previamente en el archivo de definiciones. Aqu tenis un vdeo de la aplicacin funcionando.

http://www.youtube.com/watch?v=617ngsnmBeg

Ejemplo N2
En este segundo ejemplo utilizaremos la interfaz serie para conectar un Microcontrolador (PIC18F4550) a una red Ethernet a travs del SitePlayer. El ejemplo consistir en un controlador de la temperatura ambiente. El Microcontrolador recibir los datos de la temperatura a travs de un sensor de temperatura (DS1631) conectado al PIC a travs de un bus I2C. El PIC enviar los datos al SitePlayer a travs de la interfaz serie y visualizaremos el resultado en una pgina 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:

Biblioman

http://www.aquihayapuntes.com

Pgina 20

Comandar un PIC a travs de Internet

Y la forma en la que quedara conectado el circuito a una red Ethernet sera la siguiente:

Biblioman

http://www.aquihayapuntes.com

Pgina 21

Comandar un PIC a travs de Internet

Con respecto al ejemplo 1 este presenta dos novedades: 1) En el primer ejemplo accedamos a la pgina WEB a travs de la misma red Local en la que tenamos conectado el SitePlayer. Como se ve en la figura de arriba en esta ocasin se accede a travs 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 travs de un PC sino tambin a travs de una PDA, un telfono mvil, una consola de videojuegos etc. que en definitiva era lo que se pretenda. 2) En el primer ejemplo controlbamos el puerto de I/O del SitePlayer. En este ejemplo se establece un protocolo de comunicacin entre el SitePlayer y el Microcontrolador a travs de la interfaz serie. En todo lo dems 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 travs de una red externa a nuestra red local (LAN) es necesario hacerlo por medio de nuestra IP pblica. Esta IP es la que nos asigna nuestro proveedor de servicios de internet (ISP). Puedes averiguar cul es t IP pblica a travs de diferentes pginas 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 dinmica, es decir cada vez que nuestra puerta de enlace (normalmente un rooter) se reinicie, nuestro ISP nos asignar una IP pblica diferente. Afortunadamente la mayora de los rooters que nos regalan las empresas ISP cuando contratamos sus servicios nos dan la posibilidad de conectarnos a un servidor DNS dinmico gratuito como dyndns, No-IP, ect. Esto lo que hace es que una vez configurado el rooter cada cierto tiempo enva nuestra IP pblica al servidor DNS y este actualizar la IP asociada al nombre de dominio. A partir de ahora nosotros accederemos a la pgina a travs del nombre de dominio y no tendremos que preocuparnos de que nuestra IP pblica haya cambiado.

Biblioman

http://www.aquihayapuntes.com

Pgina 22

Comandar un PIC a travs de Internet

A la hora de implementar el protocolo de comunicacin entre el Microcontrolador y el SitePlayer a travs de la interfaz serie, tenemos dos opciones: o Utilizar el objeto COM: es la forma ms sencilla, la funcin de este objeto es el envo de cadenas de caracteres a travs del puerto serie. Cuando desde la pgina WEB queremos enviar algn dato al Microcontrolador a travs del puerto serie llamamos al objeto COM y este enviar los datos directamente al Microcontrolador a travs 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 pgina 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">enva Ctrl-A Ctrl-C</a>

Si hay dos dgitos despus del smbolo (%) sern interpretados como caracteres Hexadecimales. Tambin podemos configurar el Baud Rate del puerto serie desde la pgina WEB:
<a href="Ejemplo2.SPI?baud=65406">Haz clic para baud Rate = 9600 baudios</a>

Esto configurar la velocidad a 9600 baudios, la frmula a emplear es: 65536- (1250000/baudrate) En el manual de referencia hay una tabla con los valores comnmente utilizados. El inconveniente que tiene este mtodo es que la comunicacin es unidireccional, desde la pgina WEB haca el PIC y no a la inversa ya que el objeto COM no modifica ni guarda ningn dato en la memoria RAM del SitePlayer.

Biblioman

http://www.aquihayapuntes.com

Pgina 23

Comandar un PIC a travs de Internet

Para evitar el inconveniente anterior, podemos controlar la comunicacin serie a travs de los siguientes comandos:

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 ningn problema en establecer una comunicacin bidireccional entre la pgina 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 enva 20 veces el comando NOP:

////////Funcin de inicializacin SitePlayer /////////// void inicio(){ int i; for(i=0;i<20;i++){ putc(0); } delay_ms(50); }

Para enviar un dato al SitePlayer se enva el comando de escritura (80h) seguido de la direccin del objeto y el valor que queremos asignarle:
putc(0x80); putc(0x00); putc(0x01);

Esto escribir el valor 1 en la direccin 0x00

Biblioman

http://www.aquihayapuntes.com

Pgina 24

Comandar un PIC a travs de Internet

Una peticin de lectura al SitePlayer ser similar salvo que el comando a enviar ser el de lectura (C0h).

Un vdeo del ejemplo 2 funcionando lo tenis aqu:

http://www.youtube.com/watch?v=5Tz3a68AK94 Puedes comentar o seguir los avances sobre estos ejemplos en este hilo del foro de AquiHayApuntes.com

Fuentes de Informacin
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 artculo as como las imgenes procedentes de capturas de pantallas pertenecen a sus respectivos propietarios su utilizacin en este artculo es con fines divulgativos y sin nimo de lucro.

Biblioman

http://www.aquihayapuntes.com

Pgina 25

Comandar un PIC a travs de Internet

Licencia
Autor de este artculo: Biblioman Versin: 1.0.0 Pgina Web: http:\\www.aquihayapuntes.com Email: email.Biblioman@gmail.com Este artculo esta bajo una licencia Creative Commons: Reconocimiento-No ComercialCompartir bajo la misma licencia.

Biblioman

http://www.aquihayapuntes.com

Pgina 26

S-ar putea să vă placă și