Sistema de abertura de porta de garagem baseado em Zigbee

Sistema de apertura de puertas de garaje basado en Zigbee

ZigBee es un estándar de red inalámbrica destinado a aplicaciones de sensores y control remoto, adecuado para su funcionamiento en entornos de radio hostiles y ubicaciones aisladas. Se basa en el estándar IEEE 802.15.4, que define las capas física y MAC. Además de eso, ZigBee define las especificaciones de la capa de seguridad y aplicación que permiten la interoperabilidad entre productos de diferentes fabricantes. De esta forma, ZigBee es un superconjunto de la especificación 802.15.4.

Con el rápido crecimiento de las aplicaciones de control y detección remota inalámbrica, se estima que el tamaño del mercado podría alcanzar cientos de millones de dólares ya en 2007. Esto hace de ZigBee una propuesta muy atractiva y que justifica la introducción de un estándar específico.

HARDWARE
MESA ABEJA FÁCIL 3
La placa EasyBee3 incluye el módulo MRF24J40MA que se utiliza para conectar fácilmente su placa de desarrollo a la red inalámbrica IEEE 802.15.4 de 2,4 GHz. El módulo se comunica con los microcontroladores a través de una interfaz periférica serie (SPI).
Sistema de apertura de puertas de garaje basado en Zigbee
Características principales
· Transceptor RF compatible con el estándar IEEE 802.15.4 ™
· Soporta ZigBee®, MiWi ™ , MiWi P2P y protocolos de red inalámbricos propietarios
· Circuito oscilador de cristal integrado de 20 MHz y 32,768 kHz
· Velocidad de datos: 250 kbps (IEEE 802.15.4); 625 kbps (modo Turbo)
· Interfaz periférica serie simple (SPI) de 4 hilos
· Bajo consumo de corriente
Tensión de funcionamiento
· La placa está diseñada para utilizar fuentes de alimentación de 3,3 V y 5 V. El voltaje se selecciona mediante el puente de selección de energía incorporado.
Principales beneficios
· Los traductores de voltaje incorporados permiten la compatibilidad con la mayoría de las placas de desarrollo.
· Mayor duración de la batería debido al bajo consumo de energía
· Compatible con todos los compiladores MikroE
· Los cables IDC10 con conectores permiten una fácil conexión a módulos periféricos.
· Los ejemplos listos para usar ahorran tiempo de desarrollo.
Formularios
EasyBee 3 es una excelente opción para la automatización y monitoreo de edificios, monitoreo industrial, lectura automatizada de medidores, seguridad, gestión de inventario y más.

Descripción de la placa EasyBee3

La placa EasyBee3 se utiliza para comunicación inalámbrica en distancias cortas y con bajo consumo de energía. La comunicación inalámbrica se habilita gracias a un módulo ZigBee MRF24J40MA proporcionado en la placa EasyBee3. La conexión entre la placa adicional y un microcontrolador se establece a través de un conector hembra de 2x5 proporcionado en la placa adicional y un conector macho de 2x5 en el sistema de desarrollo. La comunicación entre ellos se realiza a través de una interfaz periférica serie (SPI). Como el sistema adicional se puede conectar a diferentes sistemas de desarrollo, es necesario seleccionar los pines del microcontrolador apropiados que se utilizarán para la comunicación SPI. Para ello se utilizan los interruptores DIP SW1 y SW2 de la placa adicional. La parte inferior de la placa proporciona una tabla que indica qué interruptores en los interruptores DIP SW1 y SW2 deben usarse según el sistema de desarrollo.
Sistema de apertura de puertas de garaje basado en Zigbee
El módulo ZigBee requiere una tensión de alimentación de 3,3 V para su funcionamiento. Dado que diferentes sistemas de desarrollo requieren diferentes niveles de voltaje, es necesario ajustar el nivel de voltaje de la placa adicional al nivel de voltaje del sistema de desarrollo. Se realiza mediante un regulador de tensión previsto en una placa adicional. El puente J1 se utiliza para seleccionar el voltaje de suministro de la placa adicional. Si la placa está conectada al sistema de desarrollo de 5v, es necesario colocar el jumper J1 en la posición 5v. Para el sistema de desarrollo de 3,3 V, el puente J1 debe configurarse en la posición de 3,3 V. Además de ajustar el nivel de voltaje, también es necesario ajustar las señales de voltaje proporcionadas por el módulo ZigBee. La placa complementaria tiene transceptores 74LVCC3245 y 74LVC1T45 que sirven como traductores de nivel de voltaje.

Transceptor MRF24J40MA

Sistema de apertura de puertas de garaje basado en Zigbee
El transceptor MRF24J40MA tiene una antena PCB integrada y tiene un alcance de 40 metros para comunicación interna y 100 metros para línea de comunicación visual.
· Bajo consumo de corriente
. Modo RX: 19 mA
. Modo transmisión: 23 mA
. Dormir: 2 uA
. Voltaje de funcionamiento: 2,4-3,6 V
. Rango de temperatura: -40°C +85°C
. Banda ISM: 2,405 a 2,48 GHz
. Velocidad de datos: 250 Kbps
. Alcance: hasta 400 pies

Marco de desarrollo

Marco de desarrollo
· La salida que obtenemos del controlador PIC16F887 es de 5 V en su puerto de salida.
· Como se muestra en el diagrama del circuito, el puerto B tiene como finalidad la pantalla LCD para mostrar el estado de funcionamiento.
· Aquí los puertos A y C se utilizan para conectar la placa EasyBee3 con PIC16F887.
· Cuando se usa el puerto C para la placa EasyBeeb3, solo se usan 3 pines, por lo que para usar otros pines del puerto C tomamos otra salida del puerto C usando el bus y este puerto se usa para interconectar el circuito de aplicación externo.
· La siguiente figura muestra la placa de desarrollo desarrollada en el laboratorio durante el trabajo del proyecto.
Sistema de apertura de puertas de garaje basado en Zigbee
Circuito específico de la aplicación (controlador de motor)
· Como se muestra en el diagrama del circuito, utilizamos el controlador de motor IC L293D para controlar el motor de 5 V con fines de demostración.
· Este circuito se utiliza para conectar dos motores con capacidad de manejo de corriente de 600 mA a la placa de desarrollo.

Proceso de diseño de PCB

Sistema de apertura de puertas de garaje basado en Zigbee
FORMATO DE MENSAJE ZIGBEE
Un mensaje ZigBee consta de hasta 128 bytes en los siguientes campos:
· Encabezado MAC : este encabezado contiene, junto con otra información, las direcciones de origen y destino del mensaje a medida que se transmite. Tenga en cuenta que es posible que no refleje el origen real o el destino final del mensaje si el mensaje se está enrutando. La generación y el uso de este encabezado es transparente para el código de la aplicación y el código de la aplicación no necesitará acceder a estos campos.
· Encabezado NWK : este encabezado contiene, junto con otra información, el origen real y el destino final del mensaje. La generación y el uso de este encabezado son transparentes para el código de la aplicación, con la excepción de la dirección de origen. Se proporciona una macro para permitir que el código de la aplicación determine la dirección de red del dispositivo que envió el mensaje.
· Encabezado APS : este encabezado incluye el ID del perfil, el ID del clúster y el punto final de destino del mensaje actual. Se proporcionan macros para simplificar la creación de este encabezado al transmitir un mensaje. Cuando se recibe un mensaje, la pila procesa esta información automáticamente para determinar a qué punto final notificar.
· Carga útil de APS : este campo contiene el marco ZigBee para que la aplicación lo procese.

Formatos de marco Zigbee

ZigBee define dos formatos de fotograma, el formato de fotograma de par clave-valor (KVP) y el formato de fotograma MSG. Ambos formatos de trama están asociados con una ID de clúster, pero las tramas KVP están diseñadas para transferir información asociada con un atributo mediante una estructura estricta, mientras que las tramas MSG transfieren información mediante una estructura de forma libre. El perfil de la aplicación especificará qué formatos de fotogramas se deben utilizar para transferir qué información y el formato de los fotogramas MSG. Debido a la diferencia en el formato de los cuadros, un clúster no puede contener cuadros KVP y cuadros MSG.
· Marcos KVP
Una trama KVP contiene la siguiente información, en orden:
• Número de secuencia de transacción
• Tipo de comando y tipo de datos de atributo
• ID de atributo
• Código de error (opcional)
• Datos de atributos (tamaño variable)
El tipo de comando indica qué debe hacer la aplicación con la información. Por ejemplo, el comando Establecer requiere que el destinatario establezca el valor del atributo indicado por ID de atributo en el valor de Datos de atributo, y el comando Obtener con reconocimiento requiere que el destinatario envíe el valor del atributo indicado por ID de atributo.
· Marcos de MSG
Un marco MSG contiene la siguiente información, en orden:
• Número de secuencia de transacción
• Duración de la transacción
• Datos de la transacción
DIRECCIÓN
Hay dos formas de direccionamiento de mensajes disponibles en ZigBee e IEEE 802.15.4.
· Unidifusión
En un mensaje Unicast, la dirección del nodo de destino se proporciona en el encabezado de la capa MAC del paquete (en nuestra aplicación solo se utiliza Unicast).
· Transmisión
En un paquete de difusión, la dirección de destino de la capa MAC es 0xFFFF. Cualquier transceptor habilitado para RX recibirá el mensaje. Esta forma de direccionamiento se utiliza al unirse a una red y al descubrir rutas en la red. ZigBee implementa lo que ellos llaman reconocimiento pasivo de paquetes de transmisión. Lo que se entiende por reconocimiento pasivo es que cuando un dispositivo origina o retransmite un paquete de difusión, escuchará a todos sus vecinos conocidos para retransmitir el paquete. Esperará a que todos los vecinos repliquen el mensaje o se agote el tiempo de espera después de nwkNetworkBroadcastDeliveryTime segundos.
Tenga en cuenta que nuestra pila limita la cantidad de paquetes de transmisión que un solo dispositivo puede manejar en un momento dado a 1 paquete por dispositivo. Al transmitir paquetes de difusión, considere lo que sucederá si otro dispositivo está fuera de línea cuando se transmite el paquete. El dispositivo de origen no siempre puede saber si otro dispositivo está fuera de línea y, por lo tanto, hace que un tercer dispositivo bloquee nuevos paquetes de transmisión hasta que caduque el paquete de transmisión anterior. Debido a esta limitación, una aplicación debe esperar hasta que hayan expirado los segundos de nwkNetworkBroadcastDeliveryTime antes de enviar otro paquete de difusión, incluso si todos los vecinos han respondido al paquete de difusión original. Si el radio de transmisión del paquete es 1, esta advertencia se puede ignorar.

Configuración de Mikroelektronika Satck

El Mikroelektronika Stack se configura a través de dos archivos fuente, Transmission.c (para configurar el transmisor) y Receiver.c (para configurar el receptor). Revise estos dos archivos con mucho cuidado para definir las opciones necesarias para su aplicación. Estos archivos están disponibles en el sitio web de Mikroelektronika.
Un aspecto importante de estos archivos es la sencilla tabla de llamadas para transmisor y receptor. Lo que nos permite entender cómo funciona este código. Esta tabla de llamadas para transmisor y receptor se muestra en la pestaña Código.
· Según la tabla de llamadas, la primera pila ZigBee detecta energía y busca otros dispositivos
· Si se encuentra algún dispositivo, envía la identificación de Mac y el procedimiento de estadísticas para vincular la red.
· Después de la conexión, ambos dispositivos pueden funcionar en modo full duplex.

Solicitud

· Ahora vayamos a la aplicación principal “abridor de puerta de garaje”.
· Aquí utilizamos controladores de CD para demostrar el propósito. Los controladores de CD actuarán como puertos.
· Para demostrarlo, estamos usando un coche de juguete inalámbrico, mantenemos el transmisor en él y haremos correr el coche a una distancia de 100 m.
· En el lado del receptor, el receptor interactúa con el circuito controlador del motor que accionará los motores del controlador de CD. Su figura se muestra a continuación.
APLICACIÓN.jpg
· Por lo tanto, cuando el automóvil esté dentro del alcance del receptor, las puertas se abrirán según el código.
· Aquí, si podemos ejecutar esta aplicación de 5 V, entonces podremos ejecutar con éxito el motor de CA de 230 V. Solo necesitamos el relé de interfaz en lugar del controlador del motor.
· Por lo tanto, podemos decir que podemos usarlo para aplicaciones en tiempo real, de modo que se logre el propósito de diseñar aplicaciones en tiempo real.

Código fuente del proyecto

Código fuente del proyecto

###


 

Tabla de llamadas para transmisor

· Es muy útil para estudiar el flujo del programa dado al archivo transmisor.c.

· Muestra las diferentes funciones utilizadas para fines de transmisión.

Transmisor.mcppi_callertable.txt

principal

_CC2DW

_DoICP

SPI1_Init_Avanzado

pin_reset

reinicio_software

escribir_ZIGBEE_short

SPI1_Escribir

reinicio_RF

Leer_ZIGBEE_short

SPI1_escritura

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_despertar_desde_pin

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZGBEE_short

SPI1_Escribir

Establecer_dirección_larga

Escribir_ZIGBEE_short

SPI1_Escribir

establecer_dirección_corta

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_PAN_ID

Escribir_ZIGBEE_short

SPI1_Escribir

Init_ZIGBEE_nonbeacon

Inicio_ZIGBEE_basic

Escribir_ZIGBEE_short

SPI1_Escribir

Escribir_ZIGBEE_long

SPI1_Escribir

Habilitar_PLL

Escribir_ZIGBEE_long

SPI1_Escribir

Establecer_CCA_modo

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_modo_RSSI

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

habilitar_interrupción

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_canal

Escribir_ZIGBEE_long

SPI1_Escribir

reinicio_RF

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_lectura

Escribir_ZIGBEE_short

SPI1_Escribir

reinicio_RF

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

Dispositivo_coordinador_pan_no-baliza

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_TX_power

Escribir_ZIGBEE_long

SPI1_escritura

Establecer_frame_format_filter

Leer_ZIGBEE_short

SPI1_escritura

SPI1_Lectura

Escritura_ZIGBEE_Short

SPI1_escritura

Establecer_modo_recepción

Leer_ZIGBEE_short

SPI1_escritura

SPI1_Lectura

Escritura_ZIGBEE_Short

SPI1_escritura

Pin_wake

Escritura_TX_normal_FIFO

Escribir_ZIGBEE_long

SPI1_escritura

Establecer_no_ACK

Leer_ZIGBEE_short

SPI1_escritura

SPI1_lectura

Escribir_ZIGBEE_short

SPI1_escritura

Establecer_no_encriptar

Read_ZGBEE_short

SPI1_escritura

SPI1_lectura

Escribir_ZIGBEE_short

SPI1_escritura

Inicio_transmisión

Leer_ZIGBEE_short

SPI1_escritura

SPI1_lectura

Escribir_ZIGBEE_short

SPI1_escritura

Tabla de llamador a receptor

· Aquí está la tabla de personas que llaman del archivo Receiver.c que permite al usuario comprender el código. Así que estúdialo detenidamente.

Receptor.mcppi_callertable.txt

principal

_CC2DW

_DoICP

SPI1_Init_Avanzado

pin_reset

reinicio_software

escribir_ZIGBEE_short

SPI1_Escribir

reinicio_RF

Leer_ZIGBEE_short

SPI1_escritura

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_despertar_desde_pin

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZGBEE_short

SPI1_Escribir

Establecer_dirección_larga

Escribir_ZIGBEE_short

SPI1_Escribir

establecer_dirección_corta

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_PAN_ID

Escribir_ZIGBEE_short

SPI1_Escribir

Init_ZIGBEE_nonbeacon

Inicio_ZIGBEE_basic

Escribir_ZIGBEE_short

SPI1_Escribir

Escribir_ZIGBEE_long

SPI1_Escribir

Habilitar_PLL

Escribir_ZIGBEE_long

SPI1_Escribir

Establecer_CCA_modo

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_modo_RSSI

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

habilitar_interrupción

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_canal

Escribir_ZIGBEE_long

SPI1_Escribir

reinicio_RF

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_lectura

Escribir_ZIGBEE_short

SPI1_Escribir

reinicio_RF

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

Dispositivo_coordinador_pan_no-baliza

Leer_ZIGBEE_short

SPI1_Escribir

SPI1_Lectura

Escribir_ZIGBEE_short

SPI1_Escribir

Establecer_TX_power

Escribir_ZIGBEE_long

SPI1_escritura

Establecer_frame_format_filter

Leer_ZIGBEE_short

SPI1_escritura

SPI1_Lectura

Escritura_ZIGBEE_Short

SPI1_escritura

Establecer_modo_recepción

Leer_ZIGBEE_short

SPI1_escritura

SPI1_Lectura

Escritura_ZIGBEE_Short

SPI1_escritura

Pin_wake

LCD_Init

Retraso_5500us

Retraso_1us

LCD_cmd

Retraso_1us

Retraso_5500us

Retraso_50us

salida_LCD

LCD_cmd

Retraso_1us

Retraso_5500us

Retraso_50us

BytetoStr

Div_8x8_U

Debauns_INTn

Leer_ZIGBEE_short

SPI1_escritura

SPI1_lectura

Lectura_RX_FIFO

Leer_ZIGBEE_short

SPI1_escritura

SPI1_lectura

Escribir_ZIGBEE_short

SPI1_escritura

Leyendo_ZIGBEE_long

SPI1_escritura

SPI1_lectura

LCD_chr

LCD_cmd

Retraso_1us

Retraso_5500us

Retraso_50us

###

Diagramas de circuito

Marco de desarrollo

Regresar al blog

Deja un comentario

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