Issuu on Google+

MANUAL DE USUARIO HARDWARE ‐ TCP/IP STACK  /

MCE WebServer WI‐FI Telemetría y Control remoto a  t é d Eth través de Ethernet. t

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

mc electronics l t i

1


mc electronics

INTRODUCCIÓN El MCE WebServer es una herramienta de desarrollo que se puede controlar a través de  Internet. Permite monitorear parámetros a distancia (como la temperatura y humedad  de una sala, la apertura de una puerta,  la velocidad de un rotor, etc).  Además cuenta con 10 salidas digitales para controlar dispositivos externos. Por  Además cuenta con 10 salidas digitales para controlar dispositivos externos. Por ejemplo se puede encender un motor,  activar una alarma, cerrar una compuerta,  apagar una luz, etc.  El usuario final accede a una dirección web  del tipo (http://) donde puede controlar la  placa desde una interface gráfica.   Esta nueva versión incorpora las siguientes características:

WI‐FI: Permite conectar el MCE WebServer a una red WI‐FI. MAC Address Chip: dd hi Asigna a la placa una dirección MAC pregrabada y única. Header de Expansión ampliado: Se incorporaron 8 salidas (incluido un puerto completo preconfigurado). En total el  header posee 28 pines entre entradas y salidas digitales, entradas analógicas y salidas  de fuente de fuente. Test Points: Puntos de prueba para conectar una fuente de laboratorio.

Información actualizada on‐line: http://www.mcelectronics.com.ar/wifi

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

mc electronics

2


mc electronics

CONEXIÓN A LA RED CON CABLES Se conecta directamente a un modem o a un router con un cable cat. 5e. recto.  En este caso, se habilita DHCP (cliente) para obtener una dirección IP automáticamente.  También soporta conexión a PC mediante  un cable cat. 5e. cruzado.   El micro debe tener cargado el firmware: mce_dev.hex

Conexión a PC:  Conectar un cable UTP/STP cruzado  al terminar RJ45. Conexión a Router: Conectar un cable UTP/STP  recto al terminar RJ45. En el explorador Web poner http://mcewebserver o  la IP: 169.254.1.1 en el caso de conexión directa a la  PC. Si se utiliza un router con DHCP activo, la IP  aparece en el display.

Información actualizada on‐line: http://www.mcelectronics.com.ar/wifi

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

mc electronics

3


mc electronics

CONEXIÓN A LA RED WI‐FI El MCE WebServer viene preparado de fábrica para obtener una dirección IP de una red  Wireless con las siguientes características: El micro debe tener cargado el firmware: mce_wifi.hex

Internet

Router WI‐FI

MCE WebServer WI‐FI

80 m

SSID:  MCEWebServerAP Canal: 6 Seguridad: NO

E i Es importante que el router tenga la configuración antes mencionada, de otra forma la placa  l l fi ió i d d f l l no se va a conectar. Sin embargo no siempre es posible cambiar las opciones de seguridad  de una red. En la web citada al pie hay tutoriales para cambiar la configuración del router y  la configuración de la placa, para que esta se adapte a la red existente. En el explorador Web ingresar a http://mcewebserver o la IP asignada por el router. La PC y el placa deben estar conectadas a la misma red WI‐FI.

Tutoriales on‐line: http://www.mcelectronics.com.ar/wifi

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

mc electronics

4


mc electronics

CONEXIÓN A LA RED WI‐FI Si no es posible cambiar la configuración de la red para que se adapte al MCE WebServer  WI‐FI, debemos reprogramar el micro con los parámetros de la red actual y así podremos  establecer la conexión. Para que el MCE WebServer sea visto dentro de la red, debe tener el SSID de la red y las  Para que el MCE WebServer sea visto dentro de la red debe tener el SSID de la red y las mismas opciones de seguridad.  En el siguiente ejemplo el MCE WebServer se conecta a una red WI‐FI generada por un  router Linksys con SSID: mobile y Seguridad: WEP 64 bits En primer lugar ejecutamos el Microchip TCP/IP Configuration Wizard  (ver tutorial en  video para mas información) y modificamos el SSID: MCEWebServerAP por mobile

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

5


mc electronics

CONEXIÓN A LA RED WI‐FI Ahora debemos cambiar las opciones de seguridad para que coincidan con las de la red. En este ejemplo el router utiliza seguridad WEP de 64 bits. La clave está compuesta por  10 dígitos en hexadecimal, en este caso: BFB635FE84 Como se ve en la imagen estamos utilizando la clave 1 (equivale a la clave cero en el  Como se ve en la imagen estamos utilizando la clave 1 (equivale a la clave cero en el Stack de Microchip)

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

6


mc electronics

CONEXIÓN A LA RED WI‐FI Debemos ingresar la clave BFB635FE84 en el Microchip TCP/IP Configuration Wizard y  seleccionar el índice de clave 0.

Por último compilamos el proyecto en MPLAB y generamos el .hex para cargar en el  Por último compilamos el proyecto en MPLAB y generamos el hex para cargar en el micro. En el display deberá aparecer la dirección IP asignada dinámicamente por el  router. 

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

7


mc electronics

CARGAR UN NUEVO FIRMWARE Firmware hace referencia un programa ya compilado, es decir un archivo .hex Por ejemplo mce_dev.hex y mce_wifi.hex Para cargar un nuevo firmware al micro necesitamos un programador como el MCE PDX  USB que sea compatible con ICSP y soporte al PIC18F97J60 Además vamos a utilizar el USB, que sea compatible con ICSP y soporte al PIC18F97J60. Además vamos a utilizar el  MPLAB 8.X de Microchip. Una vez instalado el MPLAB que se incluye en el CD, debemos ejecutarlo y seleccionar el  programador, el dispositivo a utilizar e importar el firmware que vamos a grabar en el  micro.

En el MPLAB seleccionamos PICKIT2 como programador (si se está utilizando el MCE PDX  USB).

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

8


mc electronics

CARGAR UN NUEVO FIRMWARE El segundo paso es seleccionar el PIC a programar desde: Configure > Select Device. En este caso es el PIC18F97J60.

Por ultimo importamos el archivo .hex desde el menú: File > Import El MCE WebServer WI‐FI incluye dos versiones: mce_dev.hex  ‐ Practica con cable de red. Se puede conectar directamente a una PC. mce_wifi.hex  ‐ Practica con WI‐FI, toma la IP de un router con DHCP habilitado. Ambos están dentro de la carpeta firmware en el CD que acompaña la placa. Ambos están dentro de la carpeta firmware en el CD que acompaña la placa Una vez importado el firmware, hacemos click en el icono: Program Target Device.

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

9


mc electronics

LAYOUT DE COMPONENTES WEBDEV 2.0 ‐ WIFI READY REV 250110

Módulo WI‐FI ZeroG ZG2100M No obstruir el área circundante a la antena con  superficies metálicas.

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

10


mc electronics

LAYOUT DE COMPONENTES  WEBDEV 2.0 ‐ WIFI READY REV 250110

Conector RJ45 Sensor de  Temperatura TC1047

Memoria SPI  de 1 Mbit 25LC1024 Módulo WI‐FI  ZeroG ZG2100M

RJ11 para  ICSP

RS232 (a la PC)

MAC Address  MAC Add Chip Header de  Expansión

9V DC ‐ 500mA

RJ11 para ICSP  (pin‐out)

Salida por Relay  hasta 6A

Pulsadores (simulan  entradas dig.)

1‐VPP 2‐VDD 3‐GND 4‐PGD 5‐PGC 6‐NC

Tabla de Jumpers

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

JP0 JP1 JP3 JP4 JP5

Habilita S2 (cerrado) Habilita S3 (cerrado) Habilita sensor temp. (cerrado) Enciende Backlight (cerrado) Activa los leds (cerrado)

11


mc electronics

MÓDULO WI‐FI ZG2100M

El módulo WI‐FI de ZeroG se conecta al PIC a través del protocolo SPI (SDO1, SCK1 y  SDI1).  Para activar el  módulo y poder conectar la placa a un router WI‐FI el micro debe  tener cargado el firmware: mce_wifi.hex

Información actualizada on‐line: http://www.mcelectronics.com.ar/wifi

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

mc electronics

12


mc electronics

NUEVAS SALIDAS POR RELAY El MCE WebServer WI‐FI cuenta con dos salidas por relay  protegidas con diodos y  controladas con transistores. Se activan con un 1 lógico en RF3 o RF4. La corriente  máxima soportada por las pistas a la salida de cada relay es de 6A

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

13


mc electronics

TCP/IP STACK ‐ INTRODUCCIÓN Esta versión modificada está basada en la distribución original:  Microchip TCP/IP stack v4.18. La idea era hacerla compatible con el MCE WebServer para que acepte  memorias de 1 Mbit como la 25LC1024. Hay que tener en cuenta que se puede compilar el stack Hay que tener en cuenta que se puede compilar el stack para ser usado en micros que  para ser usado en micros que no tienen controlador ethernet  como el 18F4620 (en este caso hay que agregarle un  ENC28J60 de Microchip) y para aquellos que si traen un controlador integrado como el  18F97J60.

QUE NECESITO ? Para comenzar a trabajar con el stack necesitas instalar estos programas (incluidos en  el DVD).

Microchip MPLAB 8.4 Microchip C18 Student Edition. Microchip MPFS. MCE TCP/IP Stack 5.20 (Incluye el WebSite)

Todos los ejemplos del sitio están compilados con el C18 para el PIC18F9J60 que  utiliza el MCE WebServer. Dentro del MCE TCP/IP Stack abrir la carpeta TCPIP Demo App que contiene el proyecto   TCPIP Demo App‐C18 TCPIP Demo App C18 Este es el proyecto general que contiene los encabezados y los archivos .c del stack, a  continuación enumeramos los archivos principales.

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

14


mc electronics

TCPIPConfig.h El archivo TCPIPConfig.h se utiliza para habilitar o deshabilitar funciones del stack como  DNS, FTP, SNTP, SSL y UART dependiendo de las características de nuestra aplicación y la  memoria disponible en el micro. Por ejemplo, para habilitar el cliente NTP, debemos  incluir la sentencia:  #define STACK_USE_SNTP_CLIENT  Dentro de TCPIPConfig.h es posible especificar si la pagina web va a estar en la memoria  de programa o en la memoria EEPROM externa. Si el website va a estar alojado en la memoria de programa debemos comentar la  sentencia: #define MPFS_USE_EEPROM e incluir el archivo MPFSImg2.c en el proyecto.  Ver Microchip MPFS. También se puede definir la dirección MAC a través de MY_DEFAULT_MAC_BYTE5 y el  nombre de la placa mediante MY_DEFAULT_HOST_NAME (ej: http://mcewebserver).

MainDemo.c En el archivo MainDemo.c encontramos el mapeo de puertos, la configuración de los  registros de la USART, los ADC y la inicialización de la placa. Por ejemplo ADCON0=0x0D; //  Línea 1471‐ Para seleccionar AN3 como entrada analógica.

CustomHTTPApp.c Por último, el tercer archivo que necesitamos para una aplicación básica es  úl i l hi i li ió bá i CustomHTTPApp.c, en el cual se encuentran las funciones callback, es decir aquellas que  interactúan con la pagina web. Ver Funciones.

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

15


mc electronics

FUNCIONES En esta sección vamos a ver como interactuar con el micro desde la pagina web. Voy a  desarrollar un ejemplo para monitorear el estado de un puerto y luego le vamos a agregar  control remoto, es decir, cambiar el estado del puerto desde la interface web.

Monitoreo a distancia: Para monitorear el estado de un puerto desde la web necesitamos hacer tres cosas: Mapear e inicializar el puerto en el micro. (HardwareProfile.h, MainDemo.c) Crear una función callback. (CustomHTTPApp.c) Insertar una variable dinámica en la pagina web (status xml index html) Insertar una variable dinámica en la pagina web. (status.xml, index.html)

Luego compilamos el sitio web con MPFS2.exe, compilamos el proyecto con C18 desde el  MPLAB y por último grabamos el firmware y la web en la memoria externa.

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

16


mc electronics

HardwareProfile.h En este archivo simplemente asociamos un puerto con un nombre fácil de recordar, por  ejemplo si colocamos un LED en RF3 (pin 22 del PIC18F97J60):                             #define LED_TRIS #define LES IO #define LES_IO

(TRISFbits.TRISF3) (PORTFbits RF3) (PORTFbits.RF3)

MainDemo.c Vamos a definir RF3 como salida e inicializarlo en cero. Este proceso está fuera del loop  principal, por lo que solo se va a ejecutar al reiniciar el micro: static void InitializeBoard(void) { LED_TRIS = 0; LED_IO = 0; //Continua la inicialización de los otros puertos. }

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

17


mc electronics

CustomHTTPApp.c La función callback contiene el nombre y el valor de la variable dinámica ( led ) que va a ser  mostrada en la web. Un error muy común es enviar directamente al buffer ethernet el estado del led mediante la  variable int LED IO variable int LED_IO. Hay que tener en cuenta que SOLO SE PUEDEN ENVIAR STRINGS POR ETHERNET, por lo que  en numerosas ocasiones usamos itoa o ftoa para convertir los tipos de dato. ROM BYTE ESTADO_LED_UP[] = “ON"; ROM BYTE ESTADO_LED_DOWN[] = “OFF"; void HTTPPrint_led(void) {     TCPPutROMString(sktHTTP, (LED_IO?ESTADO_LED_UP:ESTADO_LED_DOWN)); } En este caso, en lugar de usar los conversores de tipo, creamos dos variables auxiliares  ESTADO_LED_UP y ESTADO_LED_DOWN para mostrar el estado del led mediante ON, OFF.

status, index.html Hay que incluir en el sitio web la variable dinámica led, para esto vamos a modificar  status.xml e index.html: status.xml contiene todas las variables dinámicas que se actualizan (leds, temperatura y  pulsadores). pulsadores) Agregamos la línea correspondiente a la nueva variable dinámica: <led>~led~</led>

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

18


mc electronics

status, index.html (cont.) Entre <> se indica el nombre del divisor que se va a utilizar en el index para definir la  posición de la variable. Index.html finalmente es el archivo que ve el usuario final. Donde aparezca <“led”> el  webserver lo va a reemplazar con ON, OFF según el valor de LED_IO. lo va a reemplazar con ON OFF según el valor de LED IO <span id=”led">?</span> &nbsp; Es importante detacar que este ejemplo utiliza AJAX para actualizar la información sin tener  que apretar F5 en el explorador. Por lo tanto debemos agregar la siguiente sentencia al final  del index: del index: document.getElementById(’led').innerHTML = getXMLValue(xmlData, ’led'); 

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

19


mc electronics

MPFS Microchip PIC File System es el sistema de archivos que utiliza el micro para leer la pagina  web. Una vez que tenemos nuestro site terminado con los archivos html, jpg o gif debemos convertirlos al sistema MPFS para luego, poder cargarlos en el micro. 

La aplicación MPFS.exe convierte el conjunto de archivos que componen la pagina web a  dos formatos posibles: .bin (para cargar el website en la memoria EEPROM externa) .c (para cargar el website en la memoria de programa)  Es importante tener en cuenta que al agregar o quitar variables de nuestra web, se  modifica el archivo HTTPPrint.h difi l hi HTTPP i t h por lo que hay que volver a compilar el proyecto antes de  l h l il l t t d cargar la aplicación en el micro.

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

20


mc electronics

MPFSUPLOAD Hay dos formas de almacenar la pagina web: 1 ‐ En la EEPROM, mediante mpfsupload. Para esto ejecutamos en el explorador de  internet: http://mcewebserver/mpfsupload o bien http://169.254.1.1/mpfsupload y  cargamos el archivo MPFSImg2.bin generado previamente con MPFS.exe l hi MPFSI 2 bi d i t MPFS

2 ‐ En la memoria de programa, para esto necesitamos compilar todo el proyecto  nuevamente (a menos que tengamos un bootloader).  Debemos incluir en el proyecto el archivo MPFSImg2.c generado con MPFS.exe y comentar  la sentencia #define MPFS_USE_EEPROM en el archivo TCPIPConfig.h. De esta forma estaríamos presidiendo de la memoria EEPROM externa con el consecuente  ahorro de dinero y espacio físico en la placa. Sin embargo sólo es posible con paginas web  pequeñas ya que la memoria de programa del 18F97J60 queda prácticamente completa  con todas las funciones del stack habilitadas.

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

21


mc electronics

SMTP Para poder enviar emails desde el MCE WebServer debemos habilitar el cliente SMTP,  dejando de comentar la sentencia  STACK_USE_SMTP_CLIENT en el archivo TCPIPConfig.h. El proceso se puede invocar en cualquier momento, por ejemplo si sube la temperatura, si se  presiona un pulsador, etc. El mail del ejemplo envía el estado de todas las variables a la  presiona un pulsador etc El mail del ejemplo envía el estado de todas las variables a la dirección que se especifique.

Antes de intentar enviar un mail con la función SMTPSendMail() debemos verificar si no hay  Antes de intentar enviar un mail con la función SMTPSendMail() debemos verificar si no hay otro mail en proceso, para eso utilizamos en primer término SMTPBeginUsage() como indica  el diagrama. Si nuestro servidor de correo saliente requiere autorización, utilizamos SMTPClient.Server,  SMTPClient.Username y SMTPClient.Password para setear los parámetros.

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

22


mc electronics

SMTP (cont.) Por ultimo incluimos los campos “De”, “Para”, “Asunto” y “Mensaje” antes de llamar a  SMTPSendMail().

Ejemplo completo: Ejemplo completo: if(SMTPBeginUsage()) { static BYTE RAMStringTo[] = "soporte@mcelectronics.com.ar"; static BYTE RAMStringBody[] = "Mensaje generado por el MCE WebServer" VERSION "  \r\n\r\nBotones: ";; \r\n\r\nBotones:  RAMStringBody[sizeof(RAMStringBody)‐2] = '0' + BUTTON0_IO; RAMStringBody[sizeof(RAMStringBody)‐3] = '0' + BUTTON1_IO; RAMStringBody[sizeof(RAMStringBody)‐4] = '0' + BUTTON2_IO; RAMStringBody[sizeof(RAMStringBody)‐5] = '0' + BUTTON3_IO; SMTPClient.Server.szROM = (ROM BYTE*)"mail.mcelectronics.com.ar"; SMTPClient.ROMPointers.Server = 1; SMTPClient.Username.szROM = (ROM BYTE*)"info@mcelectronics.com.ar"; SMTPClient.ROMPointers.Username = 1; SMTPClient.Password.szROM = (ROM BYTE*)"123456"; SMTPClient.ROMPointers.Password = 1; SMTPClient.To.szRAM = RAMStringTo; SMTPClient.From.szROM = (ROM BYTE*)"\"SMTP Service\" <info@mcelectronics.com.ar>"; \ \ SMTPClient.ROMPointers.From = 1; SMTPClient.Subject.szROM = (ROM BYTE*)"Mensaje de prueba"; SMTPClient.ROMPointers.Subject = 1; SMTPClient.Body.szRAM = RAMStringBody; SMTPSendMail(); MailState++; }

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

23


mc electronics Impreso en papel reciclado. Buenos Aires  ‐ Argentina Febrero 2010 MCE WebServer WI‐FI Manual REV: 250210H l

Austria 1760  ‐ OF 8 Ciudad de Buenos Aires (1425). BA. Argentina. (011) 6091‐4922/4581 www.mcelectronics.com.ar l info@mcelectronics.com.ar

Impreso MCE250210H

MCE WebServer WI‐FI ‐ Hardware y TCP/IP Stack.

24


MCE WebServer WI-FI