Ir al contenido principal

Configurando XBEE

Ambos Xbee se configura en modo end point o nodo, es decir, ninguno es concentrador, lo que permite una comunicación bidireccional y sin esperas.

Comandos AT:

ATID -> Corresponde al PanId o el número que engloba todos los dispositivos XBee de una misma red.
ATMY -> Es el valor individual para cada nodo.
ATDL -> Indica el número de nodo destino.
ATCE -> Tiene valor 1 o 0, dependiendo de si es concentrador o no.
ATRE -> Restaura valores de fábrica.
ATWR -> Almacena los valores de configuración en la memoria no volátil.
ATCN -> Sale del modo configuración.
ATBD -> Tasa de transmisión, por defecto 3= 9600.
ATAP -> API Mode. (Enable: 1, Disable: 0)

Ejecutar en un terminal la aplicación GtkTerm y configurar las siguientes opciones como muestra la figura seleccionando el ttyUSBx que corresponda:


Una vez configurado, introducir +++ y obtener OK de parte del XBee, configurar el Xbee con los siguientes parámetros:


ATIDATMYATDHATDLATCE
XBee120040
XBee224000

Para establecer comunicación, ejecutar la aplicación GtkTerm abriendo una consola al USB de uno de los XBee, y en otra terminal poner a escuchar al otro XBee con el comando cat:


Y otra opción es transmitir datos con el comando tee y escuchar con el comando cat:


En caso de configurar uno de los XBee como concentrador, la transmisión solo se transmitirá, en principio, del end point al concentrador. Aunque dependerá del estado del ATSM

Cambiar parámetros AT en el XBee mediante código python

Este ejemplo permite cambiar el valor del parámetro MY almacenado en una variable. De esta manera, se podrá cambiar cualquier otro parámetro de configuración desde python. Serán necesarias las librerías XBee-2.1.0 y, por supuesto, pySerial.

#! /usr/bin/python

from xbee import XBee
import serial

def main():

try:
        sn= '6'

        ser = serial.Serial('/dev/ttyUSB0', 9600)
        xbee = XBee(ser)
        
        xbee.send('at', frame_id='A', command='MY', parameter= chr(int('0x%s' %sn, 16)))
        response = xbee.wait_read_frame()
        print response

        #xbee.send('at', frame_id='D', command='CE', parameter= '\x00\x00') # m.nodo
        #xbee.send('at', frame_id='D', command='CE', parameter= '\x00\x01') # m.concentrador
        #response = xbee.wait_read_frame()
        #print response

        xbee.send('at', frame_id='B', command='RW')

except KeyboardInterrupt:
        pass
finally:
        ser.close()
    
if __name__ == '__main__':
    main()




Comentarios

Entradas populares de este blog

Servir aplicación Django con Cherokee

Estos son los pasos que he seguido para servir una aplicación Django en un servidor Cherokee con el módulo WSIGI . He usado este servidor de aplicaciones porque es más rápido y libiano que Apache. En este caso, he virtualizado un Ubuntu-sever con VirtualBox , por lo que parto de una instalación "pelada" del sistema operativo. Durante la instalación de la máquina virtual, el único paquete que he instalado ha sido el ssh-server, para evitar que me instale cualquier servidor que pueda confrontar con el cherokee. Después de actualizar el sistema operativo, he instalado los siguientes paquetes. Es importante señalar que estos comandos instalará los paquetes con la última release, lo que puede provocar incompatibilidades con la aplicación desarrollada. De ser necesaria alguna versión concreta, será necesario descargarlo e instalarlo a mano con las instrucciones del programador. Django: https://www.djangoproject.com/download/ Cherokee: http://www.cherokee-project.com/d...

jquery

Selectores: $("#myDiv")-> Id $("div")-> etiqueta (div, span, h1) $(".myClass")-> mi class $("*")-> cualquier etiqueta $("div,span,p.myClass")-> otra posibildad   $("div: has (p)") --> contiene una etiquta dentro de otra. $("div: contains ('John')")--> etiqueta que contiene la palabra dada $("td: empty ") --> etiqueta vacía $("td: parent ") --> eiqueta padre, es decir los primeros td de cada tr Filtros Básicos: $("tr: first ") --> Encuentra el primer elemento $("tr: last ") --> Encuentra el último elemento $("tr: even ") --> uno sí-otro no $("tr: odd ") --> y viceversa $("tr: eq(índice) ") --> encuentra el índice $("tr: gt(índice) ") --> a contar a partir del índice $("tr: lt(índice) ") --> a contar hasta el índice Atributos de selección $("div[id]"). on...