Comunicação IoT entre dois dispositivos através do protocolo Zigbee: IoT Parte 37

Comunicación IoT entre dos dispositivos mediante protocolo Zigbee: IoT Parte 37

En el tutorial anterior, la comunicación entre dos PC se configuró mediante el protocolo Zigbee utilizando módulos Xbee y el software XCTU. En este tutorial, se diseñarán y configurarán dos dispositivos IoT basados ​​en módulos Xbee para comunicarse entre sí a través del protocolo Zigbee. Uno de estos dispositivos en la red Zigbee será un dispositivo Coordinador y el otro será un dispositivo Enrutador. El dispositivo coordinador controlará el LED conectado al dispositivo enrutador.
El protocolo Zigbee es uno de los estándares más populares para redes de sensores inalámbricos. Zigbee se usa comúnmente en aplicaciones industriales de IoT.
Los dispositivos Xbee se comunican entre sí de forma inalámbrica por aire. No disponen de ningún microcontrolador ni procesador propio, por lo que no pueden gestionar los datos recibidos o enviados. Simplemente pueden transferir la información que reciben. Pero se pueden interconectar con otros microcontroladores y procesadores como Arduino, Raspberry Pi o PC mediante interfaz serie.
Básicamente, los módulos Xbee son capaces de realizar dos tipos de comunicación: comunicación inalámbrica y comunicación en serie. La comunicación inalámbrica se produce entre dispositivos Xbee para que actúen como dispositivos de radiofrecuencia (RF). Para que los datos se transmitan y reciban de un módulo Xbee a otro, ambos dispositivos deben estar en la misma red. Los datos entre dos dispositivos se transmiten de forma inalámbrica. A través de comunicación serie (UART), los módulos Xbee pueden comunicarse con microcontroladores y procesadores.
Un microcontrolador, procesador o PC puede enviar datos a través de la interfaz serie al módulo Xbee (transmisor) y el módulo Xbee transmite los datos de forma inalámbrica a otro módulo Xbee (receptor). El módulo receptor Xbee transmite datos a través de la interfaz serie al controlador, procesador o PC al que está conectado. El controlador conectado al módulo Xbee procesa la información recibida por los dispositivos Xbee. De esta manera, los controladores pueden monitorear y controlar dispositivos remotos enviando mensajes a través de módulos Xbee locales.
Los módulos Xbee se comunican entre sí en dos modos: modo transparente y modo API (interfaz periférica de aplicación). Este proyecto se basa en el modo transparente. En modo transparente, los módulos Xbee actúan como sustituto de la línea serie. Todos los datos recibidos a través de la entrada en serie se transmiten inmediatamente por aire. Cuando otro módulo Xbee recibe datos de forma inalámbrica, los envía exactamente como los recibe a través de la interfaz serie y viceversa. A diferencia de esto, en el modo API, los datos se transmiten con información adicional.
En este proyecto, se interconectarán dos módulos Xbee con placas Arduino. Se configurarán para comunicar datos entre sí en modo transparente. Uno de los dispositivos Arduino tendrá interfaz con un LED y se configurará como un enrutador Zigbee. El otro dispositivo Arduino se configurará como Coordinador Zigbee. El dispositivo Coordinador controlará el LED conectado al dispositivo Enrutador, pasando mensajes a través del protocolo Zigbee. Los módulos Xbee interconectados en ambos dispositivos se configurarán como coordinador o enrutador mediante el software XCTU.
Componente requerido –
Lista de componentes necessários para comunicação IoT de dispositivo para dispositivo baseada em Zigbee
Fig. 1: Lista de componentes necesarios para la comunicación IoT de dispositivo a dispositivo basada en Zigbee
Software requerido –
• XCTU (6.3.1 o posterior) o XCTU heredado
• IDE de Arduino
Diagrama de bloques -
Diagrama de blocos de comunicação IoT de dispositivo para dispositivo baseado em Zigbee
Fig. 2: Diagrama de bloques de la comunicación IoT de dispositivo a dispositivo basada en Zigbee
Conexiones de circuito –
En este proyecto se utilizarán módulos Xbee Serie 2. El módulo X-Bee es un módulo de 20 pines con la siguiente configuración de pines:
Tabela de listagem de configuração de pinos do módulo Xbee Série 2
Tabela de listagem de conexões de circuito entre Arduino e módulo Xbee Série 2

Fig. 3: Tabla que enumera la configuración de pines del módulo Xbee Serie 2

Para conectar el módulo a la PC para su configuración, primero coloque el Xbee en el Xbee Shield y conecte el módulo a un Arduino. El Arduino UNO o Arduino Mega actúa como un convertidor USB para módulos Xbee. Antes de utilizar el Arduino UNO con módulos Xbee, se debe cargar en él un boceto mínimo o retirar el microcontrolador Atmega de la placa. El módulo Xbee puede funcionar con una fuente de alimentación externa o con Arduino. El módulo Xbee y la placa Arduino deben comunicarse en serie. El módulo Xbee debe conectarse al Arduino de acuerdo con la siguiente tabla:
Tabela de listagem de parâmetros de configuração do módulo Xbee
Fig. 4: Tabla que enumera las conexiones del circuito entre Arduino y el módulo Xbee Serie 2
Ahora Arduino se puede conectar a la PC mediante un cable USB.
Después de conectar el módulo a la computadora, realice los siguientes pasos:
1) Abra el software XCTU. Asegúrese de que el software esté en modo de trabajo de configuración.
2) Haga clic en "Descubrir módulos de radio".
3) Haga clic en el puerto COM deseado al que está conectado el módulo.
4) Haga clic en Siguiente, en la ventana 'Establecer parámetros de puerto', cambie los valores según los requisitos y haga clic en Finalizar.
5) Cuando XCTU encuentre los módulos de radio después de la exploración completa, seleccione los módulos de radio haciendo clic en 'Agregar dispositivos seleccionados'. Los módulos de radio seleccionados ahora deberían aparecer en la ventana del módulo de radio.
Para transmitir o recibir datos en los módulos Xbee, deben estar configurados correctamente en la misma red. Según el protocolo Zigbee, un dispositivo debe estar en modo coordinador y el resto pueden ser enrutadores o dispositivos finales. En este caso, un dispositivo es el coordinador y el otro es el enrutador.
Ahora, restaure la configuración predeterminada de todos los módulos Xbee con el botón 'Cargar configuración de firmware predeterminada' en la parte superior de la sección de configuración de radio y use XCTU para configurar el siguiente parámetro:
Fig. 5: Tabla que enumera los parámetros de configuración del módulo Xbee
Mantenga el resto de los valores por defecto y escriba las configuraciones de todos los módulos Xbee con el botón 'escribir módulos de radio' en la parte superior de la configuración de radio. Una vez completada la configuración, haga clic en el botón descubrir módulos de radio en la misma red que cualquier módulo de radio. Ahora se pueden encontrar módulos de radio para la misma red.
Ahora los módulos Xbee se pueden conectar a dispositivos IoT basados ​​en Arduino.
Uno de estos dispositivos actuará como Coordinador Zigbee. Conecte el módulo Xbee configurado como coordinador en su circuito. El módulo Xbee puede comunicarse con Arduino a través de comunicación en serie. El serial del software Arduino se usa para leer datos del Xbee y el serial del hardware se usa para leer los datos seriales del controlador. Dado que Xbee opera a nivel lógico CMOS y Arduino opera a nivel lógico TTL, se necesita un convertidor de nivel lógico. Como convertidor de nivel lógico se utiliza un módulo convertidor de nivel de interfaz de nivel lógico IIC I2C de 5 V a 3,3 V para Arduino. El módulo Xbee puede alimentarse de una fuente externa o de Arduino. Para la comunicación en serie entre la placa Arduino y el módulo Xbee, el pin RX del Xbee está conectado al TX del Arduino y el pin TX del Xbee está conectado al RX del Arduino. El pin de tierra está conectado a tierra común.
El otro dispositivo funciona como un enrutador Zigbee. Conecte el módulo Xbee configurado como enrutador a su circuito. El módulo Xbee se conecta al Arduino de forma similar. Un LED interactúa con el Arduino en su pin PD2 (pin 4) a través de una resistencia pull-up de 220 ohmios.
Se deben tomar las siguientes precauciones al conectar módulos Xbee:
1) Los módulos Xbee funcionan a 3V3 con una corriente de 40 mA para transmitir y recibir datos. No suministre 5V desde Arduino.
2) Los módulos Xbee tienen una tolerancia de nivel de señal 3V3. Para proporcionar comunicación entre Arduino y Xbee, utilice un convertidor de nivel lógico CMOS a TTL (bidireccional).
3) A veces, al intentar descubrir Xbee, puede ocurrir un error como: 'No se pudo encontrar ningún dispositivo en el puerto COM6 > Para la cadena de entrada: "ERROR" o error al inicializar el parámetro del dispositivo = tiempo de espera de conexión o parámetro del dispositivo' no se pudo encontrar, entonces el error puede deberse a una velocidad de baudios incorrecta.
Para hacer esto, conecte el módem usando un cable FTDI a la PC, abra XCTU, seleccione el puerto COM y varias velocidades en baudios como 9600, 115200, 57600 y busque el módulo de radio y posiblemente allí se pueda encontrar el módulo de radio. Pero si no se encuentra, abra la XCTU heredada (versión anterior), seleccione la velocidad de baudios posible y en la ventana de configuración del módem seleccione el firmware/conjunto de funciones del módem correcto, habilite 'actualizar siempre el firmware' y seleccione grabar. Después de eso, cuando aparezca el cuadro de información (acción requerida), reinicie el Xbee conectando RST a GND o simplemente saque el Xbee y colóquelo nuevamente en el asiento. Ahora el cuadro de información desaparecerá. Entonces los módulos de radio volverán a parpadear automáticamente.
4) Si se produce un error de diferencia de velocidad en baudios, el error puede deberse a que la PC y el módulo de radio no están funcionando a la misma velocidad en baudios. En este caso, intente cambiar de PC y actualizar el firmware con otra PC. El módulo Xbee también se puede recuperar de esta forma.
5) Emita comandos correctamente cuando trabaje en modo AT.
Protótipo de coordenador e roteador Zigbee baseado em Xbee e Arduino
Fig. 6: Prototipo de enrutador y coordinador Zigbee basado en Xbee y Arduino

Cómo funciona el circuito –

El coordinador Xbee controla el LED en el enrutador Xbee. Los módulos Xbee interactúan con placas Arduino que están programadas para comunicar mensajes específicos. Primero, la abeja coordinadora escucha continuamente cualquier mensaje en serie. La placa Arduino en el Coordinador Xbee emite comandos 0 o 1 a través del monitor en serie al coordinador Xbee. El enrutador Xbee escucha continuamente cualquier mensaje de radio inalámbrico. El coordinador Xbee pasa la misma información (0 o 1) al enrutador Xbee en modo inalámbrico. Ahora el enrutador Xbee pasa en serie la misma información, sin datos adicionales, a la placa Arduino conectada a él.
El serial Arduino verifica si la información recibida es 0 o 1. Si es 1, significa que el LED conectado a la placa debe encenderse, poniendo el pin conectado del LED en ALTO. Si es 0, significa que el LED conectado a la placa debe dejar de brillar, configurando el pin conectado del LED en BAJO.
El siguiente código en el receptor Arduino controla el LED según el mensaje recibido mediante el protocolo Zigbee.
if(xbee_s2c.available >0) //¿Xbee recibió algo?
{
entrada = Serial.write(xbee_s2c.read); //enviar al serial Arduino
si (entrada == '0')
{digitalWrite(2, ALTO);}
si (entrada == '1')
{digitalWrite(2, ABAJO); }
}
Consulte los bocetos de Arduino para ver cómo se comunican con los módulos Xbee utilizando software en serie, transmiten y reciben mensajes específicos (codificados en el firmware) y controlan el LED para comunicar mensajes específicos entre sí. Esta es una demostración sencilla de la comunicación IoT entre dos dispositivos a través del protocolo Zigbee.
En el siguiente tutorial, aprenderá a diseñar un controlador de luz LED sobre Zigbee utilizando módulos Xbee.

Código fuente del proyecto

 ###



 //Programa para


 /*

 @Aplicación: Arduino_sends_data_to_xbee


 @Hardware utilizado:

 Arduino UNO

 Módulo xbee sirenas 2

 Fuente de alimentación externa


 @Conexión:

 Xbee VCC- Fuente de alimentación externa 3v3

 Xbee GND-Fuente de alimentación externa GND

 Xbee TX-Pin digital Arduino 11

 Xbee RX-Arduino digital pin 10

 Fuente de alimentación externa GND - Arduino GND


 @Breve introducción:

 Lado del transmisor:

 El serial Arduino envía los datos al serial Xbee.
 
Y si xbee recibe algunos datos de forma inalámbrica de otros xbee

 luego envía al serial arduino

 Para obtener más detalles, consulte nuestro artículo.

 */


 //incluye software serial para comunicarse con Xbee

 #incluir


 //Crear una instancia para el software serial

 SoftwareSerial xbee(10,11); //Pin digital 10- Xbee RX, Pin digital 11- Xbee TX


 configuración nula {

 // Inicializa la comunicación en serie,

 //configuramos nuestros dispositivos XBEE para 9600 bps.

 Serie.begin(9600);

 xbee.begin(9600);

 }


 bucle vacío {

 //Comprueba si el serial tiene algo que enviar o no

 si(Serie.disponible >0)

 {

 //Si el serial tiene datos para escribir, entonces pasa esos datos a Xbee

 xbee.write(Serial.read);

 }


 //Compruebe si Xbee recibió algo o no en el puerto serie del software.

 de lo contrario si (xbee.disponible >0)

 {

 //Si recibió algo, páselo al serial Arduino

 Serie.write(xbee.read);

 }


 }


 ###

Diagramas de circuito

Diagrama de circuito-Comunicación-IoT-entre-dos-dispositivos-Zigbee-Protocolo-IOT-Parte-37

Vídeo del proyecto

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.