- Requisitos de Hardware
- Configurando Módulos XBee usando XCTU
- Diagrama de Circuito para Parte do Receptor
- Configure o Raspberry Pi para comunicação serial
- Programando Raspberry Pi para comunicação XBee
- Testando a comunicação XBee sem fio usando Raspberry Pi
No tutorial anterior, fizemos a interface do módulo XBee com o Arduino Uno e os fizemos se comunicar sem fio usando o módulo XBee. Agora faremos a interface do módulo XBee com Raspberry Pi, que atuará como um receptor e fará com que ele se comunique sem fio com outro módulo XBee (placa XBee explorer) que está conectado em série com o laptop.
Requisitos de Hardware
- 1 x Raspberry Pi com Raspbian instalado nele
- 2 x módulos XBee Pro S2C (qualquer outro modelo pode ser usado)
- 1 x placa do explorador XBee (opcional)
- 1 x placa Breakout Xbee (opcional)
- Cabos USB
- LEDs
Presume-se que o seu Raspberry Pi já tenha um sistema operacional atualizado. Caso contrário, siga o tutorial Introdução ao Raspberry Pi antes de continuar. Aqui, estamos usando Rasbian Jessie instalado Raspberry Pi 3.
Aqui, o monitor externo usando o cabo HDMI é usado como monitor para conectar-se ao Raspberry Pi. Se você não tiver monitor, pode usar o cliente SSH (Putty) ou o servidor VNC para se conectar ao Raspberry pi usando um laptop ou computador. Saiba mais sobre como configurar o Raspberry Pi sem cabeça aqui.
Configurando Módulos XBee usando XCTU
Como aprendemos no tutorial anterior de Introdução ao ZigBee, que o módulo XBee pode atuar como um coordenador, roteador ou um dispositivo final, mas precisa ser configurado para funcionar no modo desejado. Portanto, antes de usar os módulos XBee com Raspberry Pi, temos que configurar esses módulos usando o software XCTU.
Para conectar o módulo XBee ao laptop, é usado um conversor USB para serial ou uma placa exploradora especificamente projetada. Basta conectar o módulo XBee à placa Explorer e conectá-lo ao laptop usando o cabo USB.
Se você não tiver nenhum conversor ou placa explorer, uma placa Arduino pode ser usada como um dispositivo USB para serial que pode se comunicar facilmente com o XBee e o laptop. Basta fazer o upload do esboço em branco na placa Arduino e agora ele pode se comportar como um conversor USB para serial.
Configurando Módulos XBee:
Aqui neste tutorial, uma placa Explorer é usada para configurar os módulos XBee.
Baixe o software XCTU deste link e instale-o. Depois de baixar e instalar o software XCTU, abra-o e verifique se o módulo XBee está conectado corretamente. Verifique a porta COM da placa Arduino no gerenciador de dispositivos.
1. Agora, clique no botão de pesquisa. Isso mostrará todos os dispositivos RF conectados ao seu laptop. No nosso caso, ele mostrará apenas um módulo XBee.
2. Selecione a porta serial da placa Explorer / Arduino e clique em Avançar.
3. Na próxima janela, defina os parâmetros da porta USB conforme mostrado abaixo e clique em Concluir.
4. Selecione o dispositivo descoberto e clique em Adicionar dispositivo selecionado . Este processo adicionará seu módulo XBee ao painel XCTU.
5. Agora, você pode configurar seu módulo XBee nesta janela. Você pode usar os comandos AT ou inserir os dados manualmente. Como você pode ver, há um R no painel esquerdo, o que significa que o XBee está no modo roteador. Temos que torná-lo Coordenador da parte transmissora.
Primeiro, atualize o Firmware clicando em Atualizar firmware.
6. Escolha a família de produtos do seu dispositivo que está disponível na parte traseira do seu módulo XBee. Selecione o conjunto de funções e a versão do firmware conforme destacado abaixo e clique em Atualizar.
7. Agora, você deve fornecer dados de ID, MY e DL para fazer a conexão com outro XBee. O ID permanece o mesmo para ambos os módulos. Apenas o intercâmbio de dados MY e DL, ou seja, MY para o receptor XBee torna-se DL do transmissor XBee (coordenador) e DL para o receptor XBee torna-se MY do transmissor XBee. Faça CE como Coordenador e, em seguida, clique no botão Escrever. Como mostrado abaixo.
ATDL |
EM MINHA |
||
Coordenador XBee 1 |
|||
Dispositivo final XBee 2 |
8. Depois de gravar os dados acima no transmissor, desconecte-o da placa do explorer e conecte o segundo módulo XBee nele. Repita o mesmo processo acima, apenas as alterações são DL, MY e CE. Como faremos o segundo XBee como dispositivo final, no menu suspenso CE, selecione o dispositivo final e aperte o botão Write.
9. Agora, nossos módulos XBee estão prontos para fazer interface com o Raspberry Pi. Vamos conectar o transmissor XBee ao laptop e o receptor XBee com o Raspberry Pi. Em seguida, dê comandos à parte receptora usando o laptop. computador portátil.
Diagrama de Circuito para Parte do Receptor
As conexões para fazer a interface do módulo ZigBee com o Raspberry PI são mostradas no diagrama de circuito.
Conexões:
- Tx (pino 2) de XBee -> Tx do pino Raspberry Pi
- Rx (pino 3) de XBee -> Rx de pino Raspberry Pi
- Gnd (pino 10) de XBee -> GND do pino Raspberry Pi
- Vcc (Pin1) de XBee -> 3,3v de pin Raspberry Pi
- Led está conectado ao GPIO 23
Configure o Raspberry Pi para comunicação serial
Agora, configuraremos o Raspberry Pi para a comunicação serial. Por padrão, a porta serial do hardware de Pi está desabilitada. Portanto, temos que habilitá-lo antes de iniciar a conexão.
1. No terminal, execute o comando raspi-config .
2. Vá para a opção 5 Opções de interface e pressione Enter. Agora, selecione a opção P6 Serial, ative-a e salve.
Saia do terminal e você está pronto para fazer a conexão entre o Raspberry Pi e o XBee. GPIO14 e 15 atuarão como Tx e Rx respectivamente e estão disponíveis em / dev / ttyS0 porta do raspberry pi.
Agora, escreveremos um script python para LIGAR o LED sempre que recebermos 'a' do lado do transmissor XBee.
Programando Raspberry Pi para comunicação XBee
O programa Python completo para fazer a interface do XBee com o Raspberry Pi é fornecido no final.
Primeiro, temos que importar as bibliotecas de tempo, serial e RPi.GPIO usando a função de importação.
import time import serial import RPi.GPIO as GPIO …
Agora, escreva as propriedades da conexão serial, defina a porta, a taxa de transmissão e as paridades conforme abaixo.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, paridade = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, tempo limite = 1 )
Escrever todo o envio e elementos de recepção no enquanto loop.
enquanto 1:
Você pode usar a função ser.write para enviar as mensagens para o lado do transmissor. Remova o comentário das linhas abaixo para enviar contagens.
# ser.write (str.encode ('Gravar contador:% d \ n'% (contador))) # time.sleep (1) #contador + = 1
Para receber as mensagens, temos que usar a função ser.readline () . Armazene a mensagem recebida em uma variável e verifique a condição. Se a mensagem recebida for 'a', LIGUE o LED por 3 segundos e depois desligue o LED.
x = ser.readline (). strip () print (x) se x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
O código Python completo com um vídeo de demonstração é fornecido no final do tutorial. Cole o código em qualquer editor de texto do Pi e salve. Execute o script no terminal usando sudo python script_name.py OU você pode usar Python IDE e Shell para executar o script.
Testando a comunicação XBee sem fio usando Raspberry Pi
Agora, estamos todos prontos para testar nosso transmissor e receptor XBee. Para dar o comando à parte do transmissor, usaremos o terminal do console do XCTU. Clique no ícone do console próximo à opção de configurações. Em seguida, clique no botão Abrir para conectar o XBee ao laptop.
Digite 'a' no log do console. Você verá que o LED acenderá por 3 segundos e depois apagará.
Desta forma, você também pode conectar o transmissor XBee à placa Arduino conforme descrito no tutorial anterior, e fazer com que o Raspberry Pi e o Arduino se comuniquem.