- Requisitos de hardware
- Configuración de módulos XBee mediante XCTU
- Diagrama de circuito para la parte del receptor
- Configurar Raspberry Pi para comunicación serial
- Programación de Raspberry Pi para comunicación XBee
- Prueba de la comunicación inalámbrica XBee con Raspberry Pi
En el tutorial anterior, interconectamos el módulo XBee con Arduino Uno y los hicimos comunicarse de forma inalámbrica mediante el módulo XBee. Ahora conectaremos el módulo XBee con Raspberry Pi, que actuará como receptor y hará que se comunique de forma inalámbrica con otro módulo XBee (placa exploradora XBee) que está conectado en serie con la computadora portátil.
Requisitos de hardware
- 1 x Raspberry Pi con Raspbian instalado en él
- 2 x módulos XBee Pro S2C (se puede utilizar cualquier otro modelo)
- 1 x tablero explorador XBee (opcional)
- 1 x tablero Xbee Breakout (opcional)
- Cables USB
- LEDs
Se supone que su Raspberry Pi ya está flasheado con un sistema operativo. De lo contrario, siga el tutorial Introducción a Raspberry Pi antes de continuar. Aquí estamos usando Rasbian Jessie instalado Raspberry Pi 3.
Aquí se utiliza un monitor externo con cable HDMI como pantalla para conectarse con Raspberry Pi. Si no tiene monitor, puede usar el cliente SSH (Putty) o el servidor VNC para conectarse a Raspberry pi usando una computadora portátil o computadora. Obtenga más información sobre cómo configurar Raspberry Pi sin cabeza aquí.
Configuración de módulos XBee mediante XCTU
Como hemos aprendido en el tutorial anterior de Introducción a ZigBee, el módulo XBee puede actuar como Coordinador, Enrutador o Dispositivo Final, pero debe configurarse para funcionar en el modo deseado. Entonces, antes de usar los módulos XBee con Raspberry Pi, tenemos que configurar estos módulos usando el software XCTU.
Para conectar el módulo XBee con la computadora portátil, se utiliza un convertidor de USB a serie o una placa exploradora diseñada específicamente. Simplemente conecte el módulo XBee a la placa Explorer y conéctelo a la computadora portátil mediante un cable USB.
Si no tiene ninguna placa convertidora o exploradora, puede usar una placa Arduino como un dispositivo USB a serie que puede comunicarse fácilmente con el XBee y la computadora portátil. Simplemente cargue un boceto en blanco en la placa Arduino y ahora puede comportarse como un convertidor de USB a serie.
Configuración de módulos XBee:
Aquí, en este tutorial, se utiliza una placa Explorer para configurar los módulos XBee.
Descargue el software XCTU desde este enlace e instálelo. Después de descargar e instalar el software XCTU, ábralo y asegúrese de que su módulo XBee esté conectado correctamente. Verifique el puerto COM de la placa Arduino en el administrador de dispositivos.
1. Ahora, haga clic en el botón de búsqueda. Esto le mostrará todos los dispositivos de RF conectados con su computadora portátil. En nuestro caso, solo mostrará un módulo XBee.
2. Seleccione el puerto serie de la placa Explorer / placa Arduino y haga clic en Siguiente.
3. En la siguiente ventana, configure los parámetros del puerto USB como se muestra a continuación y haga clic en Finalizar.
4. Seleccione el dispositivo descubierto y haga clic en Agregar dispositivo seleccionado . Este proceso agregará su módulo XBee al tablero de XCTU.
5. Ahora, puede configurar su módulo XBee en esta ventana. Puede usar comandos AT o poner los datos manualmente. Como puede ver, se muestra una R en el panel izquierdo, lo que significa que XBee está en modo enrutador. Tenemos que hacerlo Coordinador para la parte del transmisor.
Primero, actualice el firmware haciendo clic en Actualizar firmware.
6. Elija la familia de productos de su dispositivo que está disponible en la parte posterior de su módulo XBee. Seleccione el conjunto de funciones y la versión de firmware como se resalta a continuación y haga clic en Actualizar.
7. Ahora, debe proporcionar datos de ID, MY y DL para hacer la conexión con otros XBee. El ID sigue siendo el mismo para ambos módulos. Sólo el intercambio de datos MY y DL, es decir, MY para el receptor XBee se convierte en DL del transmisor XBee (coordinador) y DL para el receptor XBee se convierte en MY del transmisor XBee. Convierta a CE en Coordinador y luego presione el botón Escribir. Como se muestra abajo.
ATDL |
EN MI |
||
Coordinador de XBee 1 |
|||
Dispositivo final XBee 2 |
8. Después de escribir los datos anteriores en la parte del transmisor, desconéctelo de la placa del explorador y conecte el segundo módulo XBee. Repita el mismo proceso que el anterior, solo los cambios son DL, MY y CE. Como crearemos el segundo XBee como dispositivo final, en el menú desplegable CE, seleccione el dispositivo final y presione el botón Escribir.
9. Ahora, nuestros módulos XBee están listos para interactuar con Raspberry Pi. Vamos a conectar el transmisor a la XBee y el receptor portátil XBee con el Raspberry Pi. Luego, dé comandos a la parte del receptor usando una computadora portátil. ordenador portátil.
Diagrama de circuito para la parte del receptor
Las conexiones para interconectar el módulo ZigBee con Raspberry PI se muestran en el diagrama de circuito.
Conexiones:
- Tx (pin2) de XBee -> Tx de pin Raspberry Pi
- Rx (pin3) de XBee -> Rx del pin Raspberry Pi
- Gnd (pin10) de XBee -> GND del pin Raspberry Pi
- Vcc (Pin1) de XBee -> 3.3v de pin Raspberry Pi
- Led está conectado a GPIO 23
Configurar Raspberry Pi para comunicación serial
Ahora, configuraremos la Raspberry Pi para la comunicación serial. De forma predeterminada, el puerto serie de hardware de Pi está desactivado. Entonces, tenemos que habilitarlo antes de iniciar la conexión.
1. En la terminal, ejecute el comando raspi-config .
2. Vaya a la opción 5 Opciones de interfaz y presione Intro. Ahora, seleccione la opción Serie P6 y habilítela y luego guarde.
Salga de la terminal y estará listo para hacer la conexión entre Raspberry Pi y XBee. GPIO14 y 15 actuarán como Tx y Rx respectivamente y están disponibles en el puerto / dev / ttyS0 de raspberry pi.
Ahora, escribiremos un script de Python para ENCENDER el LED cada vez que recibamos 'a' del lado del transmisor XBee.
Programación de Raspberry Pi para comunicación XBee
El programa completo de Python para la interfaz de XBee con Raspberry Pi se proporciona al final.
Primero, tenemos que importar las bibliotecas de tiempo, serie y RPi.GPIO usando la función de importación.
import time import serial import RPi.GPIO como GPIO …
Ahora, escriba las propiedades de la conexión en serie, defina el puerto, la velocidad en baudios y las paridades como se muestra a continuación.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 1 )
Escribir todo el envío y elementos de recepción en el tiempo de bucle.
mientras que 1:
Puede utilizar la función ser.write para enviar los mensajes al lado del transmisor. Quite los comentarios de las siguientes líneas para enviar recuentos.
# ser.write (str.encode ('Contador de escritura:% d \ n'% (contador))) # time.sleep (1) #counter + = 1
Para recibir los mensajes tenemos que usar la función ser.readline () . Almacene el mensaje entrante en una variable y verifique la condición. Si el mensaje entrante es 'a', encienda el LED durante 3 segundos y luego apague el LED.
x = ser.readline (). strip () print (x) si x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
El código completo de Python con un video de demostración se proporciona al final del tutorial. Pegue el código en cualquier editor de texto del Pi y guárdelo. Ejecute el script en la terminal usando sudo python script_name.py O puede usar Python IDE y Shell para ejecutar el script.
Prueba de la comunicación inalámbrica XBee con Raspberry Pi
Ahora, todos estamos listos para probar nuestro transmisor y receptor XBee. Para dar mando a la parte transmisora, usaremos el terminal de consola de XCTU. Haga clic en el icono de la Consola cerca de la opción de configuración. Luego, haga clic en el botón Abrir para conectar el XBee a la computadora portátil.
Introduzca 'a' en el registro de la consola. Verá que el LED se encenderá durante 3 segundos y luego se apagará.
De esta forma también puedes conectar el transmisor XBee a la placa Arduino como se describe en el tutorial anterior, y hacer que Raspberry Pi y Arduino se comuniquen entre sí.