Índice:
- Etapa 1: modificações do transmissor
- Etapa 2: Modificações do receptor: Adicionando LCD PIC16F887 e HD44780
- Etapa 3: algumas referências …
- Etapa 4: Conclusões e Trabalho Futuro
Vídeo: Comunicação sem fio usando módulos de RF de 433 MHz baratos e microcontroladores Pic. Parte 2: 4 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Na primeira parte deste instrutivo, demonstrei como programar um PIC12F1822 usando MPLAB IDE e compilador XC8, para enviar uma string simples sem fio usando módulos TX / RX 433MHz baratos.
O módulo receptor foi conectado por meio de um adaptador de cabo USB para UART TTL a um PC e os dados recebidos foram exibidos no RealTerm. A comunicação foi realizada a 1200 baud e o alcance máximo alcançado foi de cerca de 20 metros através das paredes. Meus testes mostraram que, para aplicações onde não há necessidade de alta taxa de dados e longo alcance, e para transmissão contínua, esses módulos tiveram um desempenho excepcionalmente bom.
A segunda parte deste projeto demonstra como adicionar um microcontrolador PIC16F887 e um módulo LCD de 16 × 2 caracteres no receptor. Além disso, no transmissor, um protocolo simples é seguido com a adição de alguns bytes de preâmbulo. Esses bytes são necessários para que o módulo RX ajuste seu ganho antes de obter a carga útil real. Do lado do receptor, o PIC é responsável por obter e validar os dados que são exibidos na tela LCD.
Etapa 1: modificações do transmissor
Na primeira parte, o transmissor estava enviando uma string simples a cada poucos ms usando oito bits de dados, um bit de início e um bit de parada a 1200 bits por segundo. Como a transmissão era quase contínua, o receptor não teve problemas para ajustar seu ganho aos dados recebidos. Na segunda parte, o firmware é modificado para que a transmissão seja realizada a cada 2,3 segundos. Isso é conseguido usando a interrupção do temporizador de watchdog (definida como 2.3s) para despertar o microcontrolador, que é colocado no modo de hibernação entre cada transmissão.
Para que o receptor tenha tempo de ajustar seu ganho, alguns bytes de preâmbulo com tempos de LO curtos "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" são enviados antes dos dados reais. A carga útil é então indicada por um byte inicial '&' e uma parada '*'.
Portanto, o protocolo simples é descrito da seguinte forma:
(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & Hello InstWorld! *
Além disso, um capacitor de tântalo de desacoplamento de 10uF é adicionado entre o V + e o GND do módulo de RF para eliminar a ondulação causada pelo módulo de step up DC-DC.
A taxa de bauds permaneceu a mesma, mas meus testes mostraram que a 2400 bauds também, a transmissão era eficiente.
Etapa 2: Modificações do receptor: Adicionando LCD PIC16F887 e HD44780
O design do receptor foi baseado no PIC16F887, mas você pode usar um PIC diferente com pequenas modificações. No meu projeto, usei esse μC de 40 pinos, pois precisarei de pinos extras para projetos futuros baseados neste design. A saída do módulo RF é conectada ao pino UART rx, enquanto um lcd de 16x2 caracteres (HD44780) é conectado através dos pinos PORTB b2-b7 para exibir os dados recebidos.
Como na Parte 1, os dados recebidos também são exibidos no RealTerm. Isso é obtido usando o pino UART tx, que é conectado por meio de um adaptador de cabo USB para UART TTL a um PC.
Olhando para o firmware, quando ocorre uma interrupção UART, o programa verifica se o byte recebido é um byte inicial ('&'). Se sim, ele começa a gravar os bytes subsequentes, até que um byte de parada seja capturado ('*'). Assim que a frase completa for obtida, e se estiver em conformidade com o protocolo simples descrito anteriormente, ela é enviada para a tela do lcd, bem como para a porta UART tx.
Antes de receber o byte inicial, o receptor já ajustou seu ganho usando os bytes do preâmbulo anteriores. Estes são críticos para o bom funcionamento do receptor. Uma verificação simples de erro de saturação e enquadramento é executada; no entanto, esta é apenas uma implementação básica de tratamento de erros UART.
Em termos de hardware, algumas peças são necessárias para o receptor:
1 x PIC16F887
1 x HD44780
1 x módulo RF Rx 433 MHz
1 x 10 μF capacitor de tântalo (desacoplamento)
1 x 10 K aparador (brilho da fonte LCD)
1 x 220 Ω resistor de 1/4 W (luz de fundo do LCD)
1 x 1 KΩ 1/4 W
1 x antena 433 MHz, 3dbi
Na prática, a recepção funcionou excepcionalmente bem em alcances de até 20 metros através de paredes.
Etapa 3: algumas referências …
Existem muitos blogs na web que fornecem dicas sobre programação PIC e solução de problemas, além do site oficial da Microschip. Achei o seguinte muito útil:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Etapa 4: Conclusões e Trabalho Futuro
Espero que este manual tenha ajudado você a entender como usar módulos RF e microcontroladores Pic. Você pode ajustar seu firmware às suas próprias necessidades e incluir CRC e criptografia. Se você deseja tornar seu projeto ainda mais sofisticado, você pode utilizar a tecnologia Keeloq da Microschip. No caso de sua aplicação precisar de dados bidirecionais, você precisaria ter um par de TX / RX em ambos os microcontroladores, ou você pode usar um transceptor mais sofisticado módulos. No entanto, usando este tipo de módulo barato de 433 MHz, apenas a comunicação half duplex pode ser realizada. Além disso, para tornar a comunicação mais confiável, você precisaria ter algum tipo de handshaking entre TX e RX.
No próximo instrutível, mostrarei uma aplicação prática onde um sensor ambiental com temperatura, pressão barométrica e umidade é adicionado ao transmissor. Aqui, os dados transmitidos incluirão crc e terão uma criptografia básica.
O sensor usará a porta i2c do PIC12F1822, enquanto a implementação do transmissor e do receptor será exposta por meio de esquemas e arquivos pcb. Obrigado por me ler!
Recomendado:
Robô Arduino sem fio usando módulo sem fio HC12: 7 etapas
Robô Arduino sem fio usando módulo sem fio HC12: Olá pessoal, bem-vindos de volta. Em meu post anterior, eu expliquei o que é um circuito de ponte H, L293D motor driver IC, pegando carona L293D Motor driver IC para dirigir drivers de motor de alta corrente e como você pode projetar e fazer sua própria placa de driver de motor L293D
Rede de sensores sem fio de baixo custo na banda de 433 MHz: 5 etapas (com imagens)
Rede de sensores sem fio de baixo custo na banda de 433 MHz: Muito obrigado a Teresa Rajba por gentilmente me dar sua aceitação em usar os dados de suas publicações neste artigo. * Na imagem acima - as cinco unidades de sensor remetente que usei para testar o que são sensores sem fio redes? Uma definição simples seria
Comunicação sem fio usando o módulo transceptor NRF24L01 para projetos baseados em Arduino: 5 etapas (com imagens)
Comunicação sem fio usando o módulo transceptor NRF24L01 para projetos baseados em Arduino: Este é meu segundo tutorial instrutível sobre robôs e microcontroladores. É realmente incrível ver seu robô vivo e funcionando como esperado e acredite, será mais divertido se você controlar seu robô ou outras coisas sem fio com rapidez e
Como medir corretamente o consumo de energia dos módulos de comunicação sem fio na era do baixo consumo de energia ?: 6 etapas
Como medir corretamente o consumo de energia dos módulos de comunicação sem fio na era do baixo consumo de energia ?: O baixo consumo de energia é um conceito extremamente importante na Internet das coisas. A maioria dos nós de IoT precisa ser alimentada por baterias. Somente medindo corretamente o consumo de energia do módulo sem fio podemos estimar com precisão a quantidade de bateria i
Sistema de semáforo de 4 vias usando 5 Arduinos e 5 módulos sem fio NRF24L01: 7 etapas (com imagens)
Sistema de semáforo de 4 vias usando 5 Arduinos e 5 módulos sem fio NRF24L01: Há pouco tempo criei um Instructable detalhando um único par de semáforos em uma placa de ensaio. Também criei outro Instructable mostrando a estrutura básica para usar um módulo sem fio NRF24L01. me fez pensar! Há muitos