Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
08
Durante la presente capsula se vern los conceptos fundamentales del protocolo Zigbee especificamente usando los mdulos Xbee de Digi junto a la placa de desarrollo Arduino. Para realizar el tutorial se necesitar disponer de la mochila Xbee de Libelium.
Objetivos
Obtener un conocimiento general del protolo Zigbee implementado a travs de los mdulos Xbee Aprender a con gurar una red sensorial usando Xbee series 1 Como modi car el rmware de los modulos usando X-CTU y comandos AT Diferentes modos de con guracin de la electronica para uso en diferentes aplicaciones.
Hardware
Esquema de la mochila que se deber de conectar a la placa Arduino:
Modulo Xbee
Xbee es un modulo de Digi para comunicacin inalmbrica basado en protocolo Zigbee. Podemos usar dos modulos. Series 1 (punto a multipunto) y Series 2 ZB (red mess)
Descripcin de hardware: La mochila permite conectar un modulo Xbee estandard y a su vez deja libre varios puertos de Arduino para uso de senores, etc... Pines del modulo Xbee Accesibles externamente Jumpers de con guracion Modo USB/Xbee (con o sin AtMega)
Conexiones y funcionalidades: - Xbee funciona a 3.3V y se comunica por un puerto serie con Arduino. - 3 modelos de antenas: integrada, wire o externa. - Puertos integrados de entrada y salida digitales y analogicos
Circuito Basico
Aplicaciones Redes de comuniacion punto a punto, punto a multipunto o peer to peer. Tiene dos series de modulos disponibles. Los modulos series 2 permiten hacer redes Mesh, la serie 1 no.
Hangar Interaction Lab: Lu - Vi / 9h 14h Ju / 18 - 21h Ph: 93 30840 41 ex 28 Alex Posada (electronics): alex@hangar.org / Lluis Gomez (software): lluisgomez@hangar.org
Software
Introduccin Zigbee es un protocolo de comunicaciones inalmbrico basado en el estndar de comunicaciones para redes inalmbricas IEEE_802.15.4. Se realiza en banda libre de 2.4Ghz. La velocidad de transmisin es de hasta 256 Kbps y los modulos normales tienen un alcance entre 30m en interiores y 100m exteriores. Elementos de una red: - Coordinador: Es el nodo de la red que tiene la nica funcin de formar una red. - Routers: Es un nodo que crea y mantiene informacin sobre la red para determinar la mejor ruta para transmitir un paquete de informacin. - End devices: Los dispositivos finales no tienen capacidad de enrutar paquetes. MODO API Transmitir informacion a multiples destinatarios, Recibir estado de exito/falla de cada paquete RF transmitido. Identificar la direccion de origen de cada paquete recibido. Modos de operacion: Modo Modo Modo Modo transparente: Enlace serie entre dos modulos bajo consumo: Sleep mode para apagar por Pin. de comandos: Comandos AT de modem API: Modo mas complejo pero preciso al estilo TCP
COMANDOS AT
AT ASCII + + prefijo command espacio + Parametro + retorno carro
Ejemplo de uso: (cambio de red y grabado del parametro) +++ ATID<enter> ATWR<enter> OK<CR> 3332<CR> OK<CR>
Comandos comunes:
ID CH MY DH / DL BD WR Id de la red Canal del modulo Xbee Direccin de 16 bits Direccin de modulo destino Velocidad de comuniacion serie Grabacin de los parametros
XCTU X-CTU es una aplicacion para windows que permite programar el firmware del Xbee de una manera natural, facil y sencilla. PC-SETTINGS -> configuracin de puerto y velocidad serie RANGE TEST -> Envio de cadena de datos para test TERMINAL -> Emulacin de un terminal serie tipo hyperterminal MODEM -> Permite ver y grabar nueva configuracin del modem
A TENER EN CUENTA - Hay 16 canales disponibles, sin embargo, los valores se asignan desde el 11 hasta el 26 - La eleccion del canal debe ser cuidadosa, ya que otras tecnologias como WI-FI o Bluetooth utilizan el mismo espectro de frecuencias.
Ejemplos
codigo par transmisor
int count = 0; void setup() { Serial.begin(19200); } void loop() { Serial.print('A'); Serial.print(count); Serial.println(); delay(1000); Serial.print('B'); Serial.print(1024 - count); Serial.println(); delay(1000); count++; if (count == 1024) count = 0; } } int data = 0; int ledPin1 = 9; int ledPin2 = 7; void setup() { Serial.begin(19200); pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); } void loop() { if (Serial.available()) { data = Serial.read(); if(data == 'A') analogWrite(ledPin1, data/4); else if(data = 'B') analogWrite(ledPin2, data/4); }
Hangar Interaction Lab: Lu - Vi / 9h 14h Ju / 18 - 21h Ph: 93 30840 41 ex 28 Alex Posada (electronics): alex@hangar.org / Lluis Gomez (software): lluisgomez@hangar.org