Beruflich Dokumente
Kultur Dokumente
El modo API proporciona una interfaz estructurada donde los datos se comunican
a través de la interfaz en serie en paquetes organizados y en un orden
determinado. Esto le permite establecer comunicaciones complejas entre
dispositivos sin tener que definir su propio protocolo.
Por defecto, los dispositivos XBee están configurados para funcionar en modo
transparente: todos los datos recibidos a través de la entrada en serie se ponen en
cola para la transmisión de radio y los datos recibidos de forma inalámbrica se
envían a la salida serial exactamente como se reciben, sin información adicional.
Debido a este comportamiento, los dispositivos que funcionan en modo
transparente tienen algunas limitaciones:
3. El marco de API incluye el origen del mensaje, por lo que es fácil identificar
de dónde provienen los datos.
Nota MSB representa el byte más significativo, y LSB representa el byte menos
significativo.
Cualquier dato recibido a través de la interfaz serial antes del delimitador de inicio
es descartado silenciosamente por XBee. Si la trama no se recibe correctamente,
o si la suma de comprobación falla, los datos también se descartan y el módulo
indica la naturaleza de la falla respondiendo con otra trama.
Comenzar delimitador
El delimitador de inicio es el primer byte de un cuadro que consiste en una
secuencia especial de bits que indican el comienzo de un marco de datos. Su
valor es siempre 0x7E. Esto permite una detección fácil de un nuevo marco
entrante.
Longitud
El campo de longitud especifica el número total de bytes incluidos en el campo de
datos del marco. Su valor de dos bytes excluye el delimitador de inicio, la longitud
y la suma de comprobación.
Datos de marco
Este campo contiene la información recibida o que se transmitirá. Los datos del
cuadro están estructurados según el propósito del marco API:
Datos de marco
0x7E MSB LSB API Datos específicos del tipo de trama Soltero
marco byte
tipo
Nota MSB representa el byte más significativo, y LSB representa el byte menos
significativo.
Los datos contienen los datos en sí. La información incluida aquí y su orden
depende del tipo de marco definido en el campo Tipo de marco.
Checksum
Checksum es el último byte del marco y ayuda a probar la integridad de los
datos. Se calcula tomando la suma hash de todos los bytes de trama API que le
precedieron, excluyendo los primeros tres bytes (delimitador y longitud de inicio).
Nota Los marcos enviados a través de la interfaz serie con sumas de
comprobación incorrectas nunca serán procesados por el módulo y los datos
serán ignorados.
1. Agregue todos los bytes del paquete, excluyendo el delimitador de inicio 0x7E y la
longitud (el segundo y tercer bytes).
Tipo
Comenzar de
Delimitado Longitu marc Checksu
r d o Datos m
7E 00 0F 17 0 0 1 A 0 4 A 1 2 F F 0 4 4 -
1 0 3 2 0 0 D 4 E F E 2 4 2
Tipo
Comenzar de
Delimitado Longitu marc Checksu
r d o Datos m
7E 00 0F 17 0 0 1 A 0 4 A 1 2 F F 0 4 4 7E
1 0 3 2 0 0 D 4 E F E 2 4 2
2. Dado que los últimos dos dígitos de la extrema derecha de 4FF son FF, la suma
de comprobación es correcta.
Marcos admitidos
La compatibilidad con los tipos de marcos API depende del tipo de XBee que esté
utilizando. Los módulos 802.15.4 XBee incluidos en este kit son compatibles con
los siguientes marcos API:
Los marcos de datos de transmisión se envían a través de la entrada en serie, y
los datos se transmiten de forma inalámbrica a XBees remotos:
ID de
API Nombre del marco Descripción
0x08 Comando AT Consulta o establece parámetros en el XBee
local
0x09 Parámetro de cola de Consulta o establece parámetros en el XBee
comandos AT Valor local sin aplicar cambios
0x10 Solicitud de transmisión Transmite datos inalámbricos al destino
especificado
0x11 Marco de comando de Permite especificar campos de capa de
direccionamiento explícito aplicación de Zigbee (punto final y ID de
clúster) para una transmisión de datos
inalámbrica
0x17 Solicitud remota de Consulta o establece parámetros en el
comando AT módulo XBee remoto especificado
0x21 Crear ruta de origen Crea una ruta fuente en el módulo
0x94 Indicador de lectura del Envía la muestra del sensor recibido de forma
sensor XBee inalámbrica (desde un adaptador de sensor Digi de 1
cable) a la interfaz en serie
0x98 Estado extendido del Muestra lo que está sucediendo durante la asociación
módem cuando la unión detallada está habilitada (DC10)
0xA1 Indicador de registro del Muestra las esperanzas de ruta múltiple después de
enrutador un comando de registro de ruta Zigbee
0xA3 Indicador de solicitud de Indica que se recibe una solicitud de ruta de muchos
ruta muchos a uno a uno
Comenzar 0 0x7E
delímetro
LSB 2 0x13
0x000000000000FFFF - Dirección de
8 0x00
difusión
0xFFFFFFFFFFFFFFFF: dirección
9 0x40
desconocida si se desconoce la
dirección de 64 bits del destino
10 0xDA
11 0x9D
LSB 12 0x23
15 0x65
... 0x6C
Campos de cuadros Compensar Ejemplo Descripción
17 0x6C
LSB 18 0x6F
El módulo XBee que envió estos datos tiene una dirección de 64 bits de 00
13 A2 00 40 DA 9D 05 y una dirección de 16 bits de 00 00 .
Comenzar 0 0x7E
delimitador
Dirección de remitente de 64
Dirección MSB 4 0x00 bits
fuente de
64 bits Se establece en
5 0x13 0xFFFFFFFFFFFFFFFF
(dirección desconocida de 64
bits) si se desconoce la
6 0xA2 dirección de 64 bits del
remitente
7 0x00
8 0x40
9 0xDA
10 0x9D
LSB 11 0x05
17 0x11
19 0x05
0x01 - Paquete
reconocido
0x40 - Paquete
enviado con tiempo de
espera extendido
habilitado
Campos de cuadros Compensar Ejemplo Descripción
22 0x65
... 0x6C
24 0x6C
LSB 25 0x6F
Valor
Modo AP Descripción
La única diferencia entre API 1 y API 2 es que el modo operativo API 2 requiere
que los marcos usen caracteres de escape (bytes).
La configuración de la comunicación serial XBee, ya sea transparente, API no
escapada (API 1) o API escapada (API 2), no impide la comunicación inalámbrica
entre los módulos XBee. Dado que solo la porción de carga útil del marco API se
transmite por aire, los módulos XBee receptores alterarán la información del
paquete en función de su configuración AP , permitiendo que un módulo API no
escapado se comunique exitosamente con otros que trabajen en modo escapado
API o transparente.
0x11: XON
0x13: XOFF
El modo API 2 garantiza que todos los bytes 0x7E recibidos son delimitadores de
inicio: este carácter no puede formar parte de ninguno de los otros campos de
cuadro (longitud, datos o suma de comprobación), ya que debe escaparse.
Para escapar de un personaje:
Valor Efecto
PARAM
Define el identificador de nodo, un nombre amigable para el usuario para el
NI XBEE_A módulo.
de eliminar
El valor
el espacio
predeterminado
cuando cambie
de NI el
esvalor.
un espacio en blanco. Asegúrese
AP AP habilitado Habilita el modo API.
[1]
Paso 2: Abra la consola XCTU
VIDEO!!!!!
Ejemplo: Transmitir y recibir datos
Esta sección describe cómo transmitir datos a otro módulo XBee utilizando la
consola XCTU. Los pasos incluyen crear una trama de Solicitud de Transmisión
con el mensaje que desea transmitir al otro módulo y enviar el cuadro en serie al
módulo XBee local. A continuación, puede analizar las respuestas, tanto en el
módulo local como en el remoto.
Si te quedas atascado, mira Solución de problemas .
Paso 1: Configure los módulos XBee
Antes de crear y enviar el marco, configure los módulos XBee de la siguiente
manera:
cambie El
blanco. el valor predeterminado
Asegúrese
valor. de eliminar elde NI es un
espacio espacio en
cuando
AP API API habilitada Habilita el modo API.
habilitada [1]
[1]
Paso 2: Abra la consola XCTU
1. Cambia al modo de trabajo Consolas .
5.
Paso 3: Generar el marco de solicitud de transmisión
Este tema describe cómo generar una trama de solicitud de transmisión utilizando
la consola XCTU SENDER.
Recibir opciones :
VIDEO!!!!!
Bibliotecas
Digamos que desea escribir una aplicación para permitir que un dispositivo
inteligente monitoree y administre una red XBee. Puede escribir su propio código
para trabajar con el modo API, y también puede aprovechar las bibliotecas de
software existentes que ya analizan los marcos de la API. Dependiendo de su
lenguaje de programación preferido y del dispositivo inteligente conectado a la
interfaz en serie del XBee, puede elegir entre una variedad de bibliotecas
disponibles:
XBee mbed Library es una extensión de mbed lista para importar para
desarrollar proyectos XBee en las plataformas mbed. Para obtener más
información, vaya a https://developer.mbed.org/teams/Digi-International-
Inc/code/XBeeLib/ .
Noticias
18/11/15 El nuevo libro de Matthijs Kooijman, Building Wireless Sensor
Networks Using Arduino ya está disponible. Cubre los fundamentos del
trabajo con XBees en modo API, incluidos algunos temas avanzados (cifrado,
seguridad, suspensión), así como la creación de proyectos con esta
biblioteca.
15/09/15 Matthijs Kooijman ha contribuido con numerosas mejoras en la
biblioteca, incluidas devoluciones de llamada, depuración mejorada,
funciones adicionales y corrección de errores. Estos se pueden encontrar en
la versión 0.6.0.
28/02/15 El código está ahora en github ya que Googlecode se ha apagado
01/02/14 La versión 0.5 está disponible. Esta es esencialmente la versión 0.4
Software Serial con una corrección de errores o dos. Si se actualiza desde
una versión anterior a la 0.4, tenga en cuenta que el método para especificar
el puerto serie ha cambiado; ver Ver SoftwareSerialReleaseNotes. Junto con
este lanzamiento, he convertido el repositorio de Subversion a Git
10/15/12 La versión 0.4 (beta) está disponible. Paul Stoffregen (creador de
Teensy) ha contribuido con un parche que permite el uso de
SoftwareSerial. para la comunicación de XBee! Esto libera el puerto serie
para la depuración o para usar con otro hardware. Pruébelo e informe
cualquier problema en la página del grupo de Google. Importante: Consulte
SoftwareSerialReleaseNotes ya que fue necesario cambiar la API para admitir
esta característica.
21/12/11 La versión 0.3 ya está disponible. Esta versión incluye soporte para
Arduino 1.0 junto con algunas correcciones de errores y una nueva función
setSerial para usar puertos seriales alternativos (por ejemplo, Mega). Esta
versión también es compatible con versiones anteriores de Arduino.
4/3/11 Creé una wiki de XBeeUseCases en la API de XBee que describe
varios casos de uso para comunicarse con XBees.
14/11/09 La versión 0.2.1 está disponible. Esta versión contiene una
corrección de errores para Remote AT
26/10/09 XBee-Arduino 0.2 ya está disponible. Esta versión agrega soporte
para AT Command, Remote AT y paquetes de muestra de E / S (series 1 y
2). Junto con este lanzamiento, he creado varios ejemplos nuevos.
8/09/09 Lancé Droplet, una pantalla LCD inalámbrica / control remoto con
soporte para Twitter, Google Calendar, clima, etc. Utiliza este software para
enviar y recibir paquetes XBee.
19/04/2009 Versión 0.1.2: en este lanzamiento agregué algunos
constructores abreviados para crear solicitudes básicas y obtener /
establecer métodos para facilitar la reutilización de solicitudes
29/03/09 lanzamiento inicial
Documentación
La documentación de Doxygen API está disponible en las
descargas. Lamentablemente, ya no está disponible en línea, ya que Git no es
compatible con el tipo de mime html como lo hace Subversion.
Proyecto XBee API (Java) Aunque este proyecto es una implementación de Java,
contiene algunas wikis relevantes para este proyecto, incluida la configuración de
xbee y casos de uso.
Grupo de Google
Ejemplo
He creado varios bocetos de envío / recepción de paquetes con radios XBee Series
1 y 2. Puedes encontrarlos en la carpeta de ejemplos. Aquí hay un ejemplo de
cómo enviar un paquete con una radio de la Serie 2:
// Create a TX Request
ZBTxRequest zbTx = ZBTxRequest(addr64, payload, sizeof(payload));
Aprendizaje / Libros
Vea estos libros para aprender más sobre Arduino y XBee:
Hardware
Para el desarrollo y las modificaciones generales, recomiendo usar un Arduino que
tenga 2 puertos seriales, como el Arduino Leonardo. La razón es que el XBee
requiere acceso de puerto serie y es útil tener otro puerto en serie disponible para
la depuración a través de la consola serie de Arduino.
Las radios XBee vienen en dos modelos: Serie 1 (S1) y Serie 2 (S2). La serie 1 es la
mejor opción para la mayoría de las personas, ya que son las más fáciles de
configurar. Las radios XBee de la serie 2 tienen ZigBee y requieren una
actualización de firmware para usar este software. Las Series 1 y 2 no son
compatibles entre sí.
Serie XBee 1
Serie XBee 2 (ZigBee)
Instalación
Arduino 1.5 y posterior
Carga de bocetos
Cargar bocetos con un Leonardo es tan simple como conectar el Arduino a su
computadora y cargarlo. Cuando se utiliza un solo puerto serie Arduino, como el
UNO, los puentes en el XBee Shield deben configurarse en USB. Luego, después de
la carga, regrese a la posición XBee para que el XBee tenga acceso al puerto
serie. Recuerde siempre apagar el Arduino antes de mover los puentes.
Configuración
Para utilizar esta biblioteca, su Xbee debe configurarse en modo API (AP = 2). Eche
un vistazo a esto para obtener información sobre la configuración de sus radios
para formar una red.
Preguntas / Comentarios
Las preguntas sobre este proyecto deben publicarse
en http://groups.google.com/group/xbee-api?pli=1 Asegúrese de proporcionar
tantos detalles como sea posible (por ejemplo, qué radios s1 o s2, versiones de
firmware, configuración y código). )