Sistema de abertura de porta de garagem baseado em Zigbee

Sistema de abertura de porta de garagem baseado em Zigbee

ZigBee é um padrão de rede sem fio voltado para aplicações de controle remoto e sensores, adequado para operação em ambientes de rádio hostis e em locais isolados. Ele se baseia no padrão IEEE 802.15.4, que define as camadas física e MAC. Acima disso, o ZigBee define as especificações da camada de aplicação e segurança que permitem a interoperabilidade entre produtos de diferentes fabricantes. Desta forma, o ZigBee é um superconjunto da especificação 802.15.4.

Com o rápido crescimento das aplicações para detecção e controle remoto sem fio, estima-se que o tamanho do mercado poderá atingir centenas de milhões de dólares já em 2007. Isso torna o ZigBee uma proposta muito atraente e que justifica a introdução de um padrão específico.

HARDWARE
TABELA EASY BEE 3
A placa EasyBee3 inclui o módulo MRF24J40MA usado para conectar facilmente sua placa de desenvolvimento à rede sem fio IEEE 802.15.4 de 2,4 GHz. O módulo se comunica com microcontroladores através de uma Interface Periférica Serial (SPI).
Sistema de abertura de porta de garagem baseado em Zigbee
Características principais
· Transceptor RF compatível com o padrão IEEE 802.15.4™
· Suporta ZigBee®, MiWi™, MiWi P2P e protocolos proprietários de rede sem fio
· Circuito oscilador de cristal integrado de 20 MHz e 32,768 kHz
· Taxa de dados: 250 kbps (IEEE 802.15.4); 625 kbps (modo Turbo)
· Interface periférica serial simples (SPI) de 4 fios
· Consumo de baixa corrente
Tensão operacional
· A placa foi projetada para usar fontes de alimentação de 3,3 V e 5 V. A tensão é selecionada usando o jumper de seleção de alimentação integrado.
Principais benefícios
· Os tradutores de tensão integrados permitem compatibilidade com a maioria das placas de desenvolvimento
· Vida útil prolongada da bateria devido ao baixo consumo de energia
· Suportado em todos os compiladores MikroE
· Os cabos IDC10 com conectores permitem fácil conexão com módulos periféricos.
· Exemplos prontos para uso economizam tempo de desenvolvimento.
Formulários
EasyBee 3 é uma ótima opção para automação e monitoramento predial, monitoramento industrial, leitura automatizada de medidores, segurança, gerenciamento de estoque e muito mais.

Descrição da placa EasyBee3

A placa EasyBee3 é usada para comunicação sem fio em distâncias curtas e com baixo consumo de energia. A comunicação sem fio é habilitada devido a um módulo ZigBee MRF24J40MA fornecido na placa EasyBee3. Conexão entre a placa adicional e um microcontrolador é estabelecido através de um conector fêmea 2×5 fornecido na placa adicional e um conector macho 2×5 no sistema de desenvolvimento. A comunicação entre eles é realizada via serial interface periférica (spi). Como o sistema adicional pode ser conectado a diferente sistema de desenvolvimento, é necessário selecionar os pinos apropriados do microcontrolador a serem usados ​​para comunicação SPI. Os interruptores DIP SW1 e SW2 na placa adicional são usados ​​para esta finalidade. A parte inferior da placa fornece uma tabela indicando quais chaves nas chaves DIP SW1 e SW2 devem ser usadas dependendo do sistema de desenvolvimento
Sistema de abertura de porta de garagem baseado em Zigbee
O módulo ZigBee requer tensão de alimentação de 3,3 V para seu funcionamento. Como diferentes sistemas de desenvolvimento exigem diferentes níveis de tensão, é necessário ajustar o nível de tensão da placa adicional ao nível de tensão do sistema de desenvolvimento. É realizado por um regulador de tensão fornecido em placa adicional. O jumper J1 é utilizado para selecionar a tensão de alimentação da placa adicional. Se a placa estiver conectada ao sistema de desenvolvimento 5v, é necessário colocar o jumper J1 na posição 5v. Para sistema de desenvolvimento de 3,3 V, o jumper J1 deve ser colocado na posição 3,3 V. Além do ajuste do nível de tensão, também é necessário ajustar os sinais de tensão fornecidos pelo módulo ZigBee. A placa adicional possui transceptores 74LVCC3245 e 74LVC1T45 que servem como tradutores de nível de tensão.

Transceptor MRF24J40MA

Sistema de abertura de porta de garagem baseado em Zigbee
O transceptor MRF24J40MA possui antena PCB integrada e possui faixa de 40 metros para comunicação interna e 100 metros para linha de comunicação visual.
· Baixo consumo de corrente
. Modo Rx: 19 mA
. Modo Tx: 23 mA
. Sono: 2 uA
. Tensão operacional: 2,4-3,6 V
. Faixa de temperatura: -40°C A +85°C
. Banda ISM: 2,405 a 2,48 GHz
. Taxa de dados: 250 Kbps
. Alcance: até 400 pés

Quadro de desenvolvimento

Quadro de desenvolvimento
· A saída que obtemos do controlador PIC16F887 é de 5V em sua porta de saída.
· Conforme mostrado no diagrama de circuito, a porta B é para LCD com finalidade de exibição para exibir o status da operação.
· Aqui as portas A e C são usadas para interface da placa EasyBee3 com PIC16F887.
· Ao usar a porta C para a placa EasyBeeb3, apenas 3 pinos são usados, portanto, para usar outros pinos da porta C, pegamos outra saída da porta C usando o barramento e essa porta é usada para fazer a interface do circuito de aplicação externo.
· A figura abaixo mostra a placa de desenvolvimento desenvolvida em laboratório durante o trabalho do projeto.
Sistema de abertura de porta de garagem baseado em Zigbee
Circuito específico da aplicação (driver do motor)
· Conforme mostrado no diagrama de circuito, usamos o IC do driver do motor L293D para acionar o motor de 5 V para fins de demonstração.
· Este circuito é usado para fazer a interface de dois motores com capacidade de tratamento de corrente de 600mA para a placa de desenvolvimento.

Processo de design de PCB

Sistema de abertura de porta de garagem baseado em Zigbee
FORMATO DE MENSAGEM ZIGBEE
Uma mensagem ZigBee consiste em até 128 bytes nos seguintes campos:
· Cabeçalho MAC – Este cabeçalho contém, com outras informações, os endereços de origem e destino da mensagem conforme ela está sendo transmitida. Observe que pode não refletir a origem real ou o destino final da mensagem se a mensagem estiver sendo roteada. A geração e utilização deste cabeçalho são transparentes para o código da aplicação, e o código da aplicação não precisará acessar esses campos.
· Cabeçalho NWK – Este cabeçalho contém, com outras informações, a origem real e o destino final da mensagem. A geração e uso deste cabeçalho são transparentes para o código da aplicação, com exceção do endereço fonte. Uma macro é fornecida para permitir que o código do aplicativo determine o endereço de rede do dispositivo que enviou a mensagem.
· Cabeçalho APS – Este cabeçalho inclui o ID do perfil, o ID do cluster e o terminal de destino da mensagem atual. Macros são fornecidas para simplificar a criação deste cabeçalho ao transmitir uma mensagem. Quando uma mensagem é recebida, a pilha processa essas informações automaticamente para determinar qual endpoint notificar.
· Carga útil APS – Este campo contém o quadro ZigBee para o aplicativo processar.

Formatos de quadro Zigbee

ZigBee define dois formatos de quadro, o formato de quadro Key Value Pair (KVP) e o formato de quadro MSG. Ambos os formatos de quadro estão associados a um ID de cluster, mas os quadros KVP são projetados para transferir uma informação associada a um atributo usando uma estrutura estrita, enquanto os quadros MSG transferem informações usando um forma livre estrutura. O perfil do aplicativo especificará quais formatos de quadro devem ser usados ​​para transferir quais informações e o formato de quaisquer quadros MSG. Devido à diferença no formato do quadro, um cluster não pode conter quadros KVP e quadros MSG.
· Quadros KVP
Um quadro KVP contém as seguintes informações, em ordem:
• Número de sequência de transação
• Tipo de comando e tipo de dados de atributo
• ID do atributo
• Código de erro (opcional)
• Dados de atributos (tamanho variável)
O Tipo de Comando indica o que o aplicativo deve fazer com as informações. Por exemplo, o comando Set exige que o destinatário defina o valor do atributo indicado por Attribute ID para o valor em Attribute Data, e o comando Get with Acknowledge exige que o destinatário envie o valor do atributo indicado por Attribute ID.
· Quadros MSG
Um quadro MSG contém as seguintes informações, em ordem:
• Número de sequência de transação
• Duração da transação
• Dados de transação
ENDEREÇO
Existem duas formas de endereçamento de mensagens disponíveis em ZigBee e IEEE 802.15.4.
· Unicast
Em uma mensagem Unicast, o endereço do nó de destino é fornecido no cabeçalho da camada MAC do pacote (em nossa aplicação apenas o Unicast é usado).
· Transmissão
Em um pacote de broadcast, o endereço de destino da camada MAC é 0xFFFF. Qualquer transceptor habilitado para RX receberá a mensagem. Esta forma de endereçamento é usada ao ingressar em uma rede e ao descobrir rotas na rede. O ZigBee implementa o que eles chamam de reconhecimento passivo de pacotes de transmissão. O que se entende por reconhecimento passivo é que quando um dispositivo origina ou retransmite um pacote de transmissão, ele escutará todos os seus vizinhos conhecidos para retransmitir o pacote. Ele irá esperar que todos os vizinhos repliquem a mensagem ou atingir o tempo limite após nwkNetworkBroadcastDeliveryTime segundos.
Observe que nossa pilha limita o número de pacotes de transmissão que um único dispositivo pode manipular em um determinado momento a 1 pacote por dispositivo. Ao transmitir pacotes de difusão, considere o que acontecerá se outro dispositivo estiver off-line quando o pacote for transmitido. O dispositivo de origem nem sempre consegue saber se outro dispositivo está off-line e, portanto, faz com que um terceiro dispositivo bloqueie novos pacotes de transmissão até que o pacote de transmissão anterior expire. Devido a esta limitação, um aplicativo deve esperar até nwkNetworkBroadcastDeliveryTime segundos expiraram antes de enviar outro pacote de transmissão, mesmo que todos os vizinhos tenham respondido ao pacote de transmissão original. Se o raio de transmissão do pacote for 1, esse aviso poderá ser ignorado.

Configurando Mikroelektronika Satck

O Mikroelektronika Stack é configurado por meio de dois arquivos de origem, Transmitter.c (para configurar o transmissor) e Receiver.c (para configurar o receptor). Percorra esses dois arquivos com muito cuidado para definir as opções necessárias para sua aplicação estes arquivos estão disponíveis em local na rede Internet da Mikroelektronika.
Um aspecto importante desses arquivos é a tabela de chamadores simples para transmissor e receptor. O que nos permite entender como esse código funciona. Esta tabela de chamadores para transmissor e receptor é mostrada na guia Código.
· De acordo com a tabela do chamador, a primeira pilha ZigBee detecta a energia e procura outros dispositivos
· Se algum dispositivo for encontrado, ele envia o procedimento mac id & stat para vincular a rede
· Após a ligação, ambos os dispositivos podem funcionar no modo full duplex.

Aplicativo

· Agora vamos para a aplicação principal “sistema de abertura de porta de garagem”
· Aqui estamos usando drivers de CD para demonstrar o propósito. Os drivers de CD funcionarão como portas
· Para demonstrar, estamos usando um carro de brinquedo sem fio e mantivemos o transmissor nele e rodaremos o carro a uma distância de 100 m
· No lado do receptor, o receptor faz interface com o circuito do driver do motor que acionará os motores do driver de CD. Sua figura é mostrada abaixo.
APLICATIVO.jpg
· Portanto, quando o carro estiver ao alcance do receptor, os portões serão abertos de acordo com o código.
· Aqui, se pudermos executar esta aplicação de 5 V, então poderemos operar com sucesso o motor de CA 230 V, só precisamos do relé de interface em vez do driver do motor
· Portanto, podemos dizer que podemos usá-lo para aplicações em tempo real, de modo que o objetivo de projetar aplicações em tempo real seja alcançado.

Código-fonte do projeto

 

Código-fonte do projeto

###


Tabela de chamadores para transmissor

· É muito útil para estudar o fluxo do programa fornecido para o arquivo transmissor.c.

· Mostra as diferentes funções utilizadas para fins de transmissão.

Transmissor.mcppi_callertable.txt

principal

_CC2DW

_DoICP

SPI1_Init_Advanced

pin_reset

software_reset

write_ZIGBEE_short

SPI1_Write

RF_redefinir

Read_ZIGBEE_short

SPI1_write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Definir_wake_from_pin

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZGBEE_short

SPI1_Write

Definir_long_address

Write_ZIGBEE_short

SPI1_Write

Definir_endereço_curto

Write_ZIGBEE_short

SPI1_Write

Conjunto_PAN_ID

Write_ZIGBEE_short

SPI1_Write

Init_ZIGBEE_nonbeacon

Init_ZIGBEE_basic

Write_ZIGBEE_short

SPI1_Write

Write_ZIGBEE_long

SPI1_Write

Habilitar_PLL

Write_ZIGBEE_long

SPI1_Write

Definir_CCA_mode

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Definir_RSSI_mode

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Habilitar_interrupção

Write_ZIGBEE_short

SPI1_Write

Definir_canal

Write_ZIGBEE_long

SPI1_Write

RF_redefinir

Read_ZIGBEE_short

SPI1_Write

SPI1_leitura

Write_ZIGBEE_short

SPI1_Write

RF_redefinir

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Nonbeacon_PAN_coordinator_device

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Definir_TX_potência

Write_ZIGBEE_long

SPI1_write

Set_frame_formate_filter

Read_ZIGBEE_short

SPI1_write

SPI1_Leitura

Write_ZIGBEE_Short

SPI1_write

Definir_modo_de_recepção

Read_ZIGBEE_short

SPI1_write

SPI1_Leitura

Write_ZIGBEE_Short

SPI1_write

Pin_wake

Write_TX_normal_FIFO

Write_ZIGBEE_long

SPI1_write

Definir_não_ACK

Read_ZIGBEE_short

SPI1_write

SPI1_leitura

Escreva_ZIGBEE_short

SPI1_write

Set_not_encrypt

Read_ZGBEE_short

SPI1_write

SPI1_leitura

Write_ZIGBEE_short

SPI1_write

Iniciar_transmitir

Read_ZIGBEE_short

SPI1_write

SPI1_leitura

Write_ZIGBEE_short

SPI1_write

Tabela de chamadores para receptor

· Aqui está a tabela de chamadores do arquivo receiver.c que permite ao usuário entender o código. Portanto, estude-o com atenção.

Receiver.mcppi_callertable.txt

principal

_CC2DW

_DoICP

SPI1_Init_Advanced

pin_reset

software_reset

write_ZIGBEE_short

SPI1_Write

RF_redefinir

Read_ZIGBEE_short

SPI1_write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Definir_wake_from_pin

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZGBEE_short

SPI1_Write

Definir_long_address

Write_ZIGBEE_short

SPI1_Write

Definir_endereço_curto

Write_ZIGBEE_short

SPI1_Write

Conjunto_PAN_ID

Write_ZIGBEE_short

SPI1_Write

Init_ZIGBEE_nonbeacon

Init_ZIGBEE_basic

Write_ZIGBEE_short

SPI1_Write

Write_ZIGBEE_long

SPI1_Write

Habilitar_PLL

Write_ZIGBEE_long

SPI1_Write

Definir_CCA_mode

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Definir_RSSI_mode

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Habilitar_interrupção

Write_ZIGBEE_short

SPI1_Write

Definir_canal

Write_ZIGBEE_long

SPI1_Write

RF_redefinir

Read_ZIGBEE_short

SPI1_Write

SPI1_leitura

Write_ZIGBEE_short

SPI1_Write

RF_redefinir

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Nonbeacon_PAN_coordinator_device

Read_ZIGBEE_short

SPI1_Write

SPI1_Leitura

Write_ZIGBEE_short

SPI1_Write

Definir_TX_potência

Write_ZIGBEE_long

SPI1_write

Set_frame_formate_filter

Read_ZIGBEE_short

SPI1_write

SPI1_Leitura

Write_ZIGBEE_Short

SPI1_write

Definir_modo_de_recepção

Read_ZIGBEE_short

SPI1_write

SPI1_Leitura

Write_ZIGBEE_Short

SPI1_write

Pin_wake

LCD_Init

Atraso_5500us

Atraso_1us

LCD_cmd

Atraso_1us

Atraso_5500us

Atraso_50us

LCD_out

LCD_cmd

Atraso_1us

Atraso_5500us

Atraso_50us

BytetoStr

Div_8x8_U

Debauns_INTn

Read_ZIGBEE_short

SPI1_write

SPI1_leitura

Leitura_RX_FIFO

Read_ZIGBEE_short

SPI1_write

SPI1_leitura

Write_ZIGBEE_short

SPI1_write

Leitura_ZIGBEE_longa

SPI1_write

SPI1_leitura

LCD_chr

LCD_cmd

Atraso_1us

Atraso_5500us

Atraso_50us

###

Diagramas de circuito

Quadro de desenvolvimento

返回網誌

發表留言

請注意,留言須先通過審核才能發佈。