Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Comunicación con Arduino a través de un servidor PHP




Enviado por Cesar Martin




    Comunicación con Arduino a través de un
    servidor PHPMonografias.com

    Comunicación con Arduino a
    través de un servidor PHP

    Vamos a explicar un apartado que por lo que
    se ve da muchos problemas de cabeza, como es la solución
    que hemos adoptado en el sistema functiodomo para
    comunicarnos con las placas Arduino a mediante órdenes
    escritas en PHP.

    Antes de nada hay que explicar que como ya
    hemos indicado en algún artículo anterior, la
    transmisión de los datos en nuestro sistema la realizamos
    sobre una red Zigbee. Es muy importante saber que esta red es de
    tipo mallado, estos es, todos los datos que se transmiten por esa
    red pasan por TODOS los nodos de la misma. La comunicación
    entre cualquier nodo y el router se hace enviando el paquete de
    datos desde el router al nodo más cercano,
    transmitiéndolo éste a todos los nodos de su
    alrededor, y volviendo a repetir cada uno de estos nuevos nodos
    la misma operación, así hasta llegar al nodo
    destino.

    Otros tipos de redes con topología
    infraestructura, como pueden ser las redes WIFI necesitan que
    cada uno de los nodos tenga "línea directa" con el router
    principal. 

    Para una mejor explicación de estos
    tipos de red recomiendo la lectura del siguiente
    enlace: 

    http://es.wikipedia.org/wiki/Red_inalámbrica_mallada 

    Ésta diferencia en el método
    de realizar la comunicación conlleva las siguiente
    consecuencias:

    En las redes con topología
    infraestructura necesitamos en el paquete de datos a transmitir 2
    elementos: los datos a transmitir propiamente (la
    instrucción) y los datos del nodo al que se lo vamos a
    transmitir (la dirección de red).

    En las redes malladas (además de la
    metodología anterior) como todos los paquetes llegan a
    todos los nodos, podemos transmitir paquetes SÓLO con los
    datos (la instrucción), pues dentro de la red seguro que
    van a llegar al nodo que nos interese.

    La selección del nodo que recibe los
    datos la podemos programar en nuestra placa Arduino, siendo la
    placa Arduino la que determine si la orden enviada le afecta a
    ella como nodo o corresponde a otra.

    Este comportamiento es equivalente a tener
    una comunicación a través serie con el ordenador,
    pero teniendo todas las placas Arduino (nodos) conectadas en
    "paralelo".

    Lamento haber sido tan extenso en esta
    introducción, pero son importantes entender los conceptos
    anteriores para poder explicar cómo realizamos la
    comunicación mediante ordenes escritas en PHP.

    Ahora viene el código que utilizamos
    en el lado del servidor (recuerdo servidor LAMP, ésto
    Linux; en teoría debe funcionar igual sobre Windows, pero
    sinceramente no lo hemos probado):

    Monografias.com

     Detalles
    importantes:

    El puerto serie tiene que tener los
    permisos de usuario habilitados para que el servidor Apache pueda
    utilizarlo. Yo utilizo en la instrucción en la
    línea de comandos: $ chmod 666 /dev/ttyUSB0

    Simplemente, conectando la placa Arduino en
    el puerto USB del ordenador, con el programa anterior ya recibe a
    través del puerto serie la instrucción
    "aM".

    Si desconectamos el cable USB y lo volvemos
    a conectar, puede ser que nos cambie el puerto USB a
    través del que se comunica Arduino (que pase del USB0 al
    USB1). Esto se puede comprobar en el entorno de
    programación de Arduino.

    Para la comunicación
    inalámbrica, en el puerto serie conectamos el router
    Zigbee que es tan sencillo como una placa Arduino sin el chip
    ATMEGA328 con el Xbee shield y su correspondiente chip Zigbee
    programado como router.

    En el caso de las órdenes
    anteriores, el código necesario en Arduino para leer la
    orden y realizar una acción es tan sencillo como
    sigue:

    Monografias.com
    Monografias.com
    Monografias.com

     

    Con esta metodología hay que hacer
    notar que las placas Arduino deben estar siempre activas, pues
    son ellas las que hacen las selección del nodo a ejecutar
    las ordenes, pero en el caso de la domótica, aunque
    energéticamente sea menos eficiente, no es un problema
    mayor pues las placas no están alimentadas por
    batería.

    El código escrito en Aduino es
    transparente al medio a través del cual se transmite la
    señal (aire, cable), siempre y cuando esta pueda llegar a
    través del puerto serie.

     Por último comentar que como
    supongo que algunas cosas no estarán suficientemente bien
    explicadas, añado las páginas web de donde
    obtuvimos toda la información para comunicar las
    placas:

    Control de Arduino utilizando
    PHP:

    http://www.arduinoprojects.com/?q=node/10

    http://www.mydarkmaterials.co.uk/2008/11/30/interfacing-php-with-the-arduino/

    Configuración de Zigbee:

    http://ladyada.net/make/xbee/arduino.html

    Software de configuración de los
    chips Xbee:

    http://www.digi.com/support/productdetail?pid=3352&osvid=0&type=utilities

    Algunos ejemplos más que he
    encontrado sobre conexión de PHP y Arduino:

    http://mcielectronics.com/blog/?p=495

    http://blog.bsoares.com.br/php/controlling-arduino-with-php

     

     

    Autor:

    Cesar Martin

     

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter