Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Comandarunpicatravsdeinternet 110408112636 Phpapp01
Comandarunpicatravsdeinternet 110408112636 Phpapp01
Internet
Biblioman
Abril-2011
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
Caractersticas Principales
Soporte para los siguientes protocolos de comunicacin: ARP, ICPM, IP, UDP,
TCP, DHCP.
Interfaz serie con un Baud Rate configurable entre 300 y 115.200 bits por
segundo.
768 bytes para los SiteObjetos (veremos ms adelante lo que es esto), los
cuales pueden ser del tipo bit, byte, integer, long y string.
Biblioman
http://www.aquihayapuntes.com
Pgina 3
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
Biblioman
http://www.aquihayapuntes.com
Pgina 5
Biblioman
http://www.aquihayapuntes.com
Pgina 6
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
Modulo principal:
Biblioman
http://www.aquihayapuntes.com
Pgina 8
PCB:
Montaje terminado:
Biblioman
http://www.aquihayapuntes.com
Pgina 9
Biblioman
http://www.aquihayapuntes.com
Pgina 10
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
Biblioman
http://www.aquihayapuntes.com
Pgina 12
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
0FF15h
ds 1
org
led3
0FF16h
ds 1
org
0FF17h
pulsador1
ds 1
org
0FF18h
pulsador2
;SECCIN
ds 1
EXPORTACIN DE FICHEROS
Biblioman
http://www.aquihayapuntes.com
Pgina 13
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"
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
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"
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
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
Biblioman
http://www.aquihayapuntes.com
Pgina 16
<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> <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> <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> <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
<p><strong>Pulsador 2 = ^pulsador2</strong></p></td>
</tr>
</table>
<p> </p>
<p> </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> <img src="led^led1.gif" width="40" height="20"
/></div>
Pulsador 2 = ^pulsador2
<cr><lf>
^pulsador2 ser sustituido por el valor que tenga en memoria el Objeto pulsador2.
Biblioman
http://www.aquihayapuntes.com
Pgina 18
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.
Biblioman
http://www.aquihayapuntes.com
Pgina 19
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
Biblioman
http://www.aquihayapuntes.com
Pgina 21
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
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>
Biblioman
http://www.aquihayapuntes.com
Pgina 23
Biblioman
http://www.aquihayapuntes.com
Pgina 24
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
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