- Componentes necessários:
- Módulo RF:
- Explicação de trabalho:
- Explicação do circuito:
- Instalando a biblioteca wiringPi no Raspberry Pi:
- Explicação de programação:
Nesta sessão iremos desenvolver um Controle Remoto RF usando Raspberry Pi, que pode ser usado para controlar os Dispositivos sem fio. Podemos ligar e desligar os dispositivos usando este controle remoto RF. Já desenvolvemos muitos projetos usando Módulo de RF como Robô Controlado por RF, Robô Controlado por Gestos Manuais etc.
Componentes necessários:
Lado do transmissor:
- Transmissor RF (Transmissor Híbrido ASK)
- HT12E IC
- 4 botões de pressão
- Resistor 750k
- Bateria de 9 volts
Lado do receptor:
- Raspberry Pi
- LCD 16x2
- 10K POT
- Tábua de pão
- Resistor 1K (cinco)
- Resistor 33K
- HT12D IC
- Receptor RF (Receptor Híbrido ASK)
- LEDs (cinco)
- Resistor de 10K (quatro)
- Fio de conexão
- Fonte de energia
Módulo RF:
Este é um módulo receptor e transmissor híbrido ASK opera na frequência de 433Mhz. Este módulo possui um oscilador estabilizado a cristal para manter o controle de frequência preciso para melhor alcance. Precisamos de apenas uma antena externa para este módulo.
Este módulo é muito econômico onde a comunicação RF de longo alcance é necessária. Este módulo não envia dados usando comunicação UART de PC ou microcontrolador diretamente porque há muito ruído nesta frequência e sua tecnologia analógica. Podemos usar este módulo com a ajuda de ICs codificadores e decodificadores que extraem dados do ruído.
O alcance do transmissor é de cerca de 100 metros na tensão de alimentação máxima e para 5 volts o alcance do transmissor é de cerca de 50-60 metros com o uso de um fio simples de uma antena de código único de 17 cm.
Recursos do transmissor de RF:
- Faixa de frequência: 433 Mhz
- Potência de saída: 4-16dBm
- Alimentação de entrada: 3 a 12 volts dc
Descrição do pino de RF Tx:
- GND - Fornecimento de terra
- Data In - Este pino aceita dados seriais do codificador
- Vcc - +5 Volt deve ser conectado a este pino
- Antena - Uma conexão envolvida a este pino para transmissão adequada de dados
Recursos do receptor de RF:
- Sensibilidade: -105dBm
- Freqüência IF: 1MHz
- Baixo consumo de energia
- 3,5 mA atual
- Tensão de alimentação: 5 volts
Descrição do pino de RF Rx:
- GND - Ground
- Data In - Este pino fornece dados seriais de saída para o decodificador
- Data In - Este pino fornece dados seriais de saída para o decodificador
- Vcc - +5 Volt deve ser conectado a este pino
- Vcc - +5 Volt deve ser conectado a este pino
- GND - Ground
- GND - Ground
- Antena - Uma conexão envolvida a este pino para recepção adequada de dados
Explicação de trabalho:
Trabalhar neste projeto é muito fácil. Neste projeto, usamos quatro botões no lado do transmissor (serve como remoto) para controlar os quatro LEDs na extremidade do receptor. Quando pressionamos qualquer um dos quatro botões, o Codificador IC codifica o sinal e o envia ao transmissor de RF e o Transmissor de RF o transmite no ambiente. Agora o receptor RF recebe o sinal transmitido e o decodifica usando o decodificador IC HT12D e envia sua saída de 4 bits para o Raspberry Pi. Em seguida, Raspberry Pi lê esses bits e executa a tarefa relacionada e acende o respectivo LED. Uma campainha soa por um segundo sempre que qualquer tecla é pressionada. Um LCD 16x2 também é usado para exibir o status 'LIGADO ou DESLIGADO' de todos os LEDs.
Neste projeto, usamos quatro LEDs apenas para fins de demonstração, podemos acionar qualquer tarefa pressionando o botão respectivo em 'RF Remote'. Como também podemos conectar aparelhos domésticos AC no lugar de LEDs, usando o relé e podemos controlar esses aparelhos usando o mesmo 'remoto RF' sem fio. Portanto, este mesmo circuito pode funcionar como um projeto de automação residencial baseado em RF usando Raspberry Pi. Já desenvolvemos diversos Projetos de Domótica controlados por Bluetooth, DTMF, GSM etc., você pode conferir todos aqui Projetos de Domótica.
Explicação do circuito:
O circuito deste Controle Remoto RF Raspberry Pi é simples e contém Placa Raspberry Pi, botão e LCD, Par RF e IC codificador / decodificador. Raspberry Pi controla o LCD, lê a entrada e envia a saída de acordo com a entrada. Usamos Raspberry Pi 3 aqui, mas qualquer modelo Raspberry deve funcionar. O circuito é dividido em duas partes, uma é o circuito do receptor de RF e a outra é o circuito do transmissor de RF. Ambos os circuitos são mostrados no diagrama abaixo.
Na parte do receptor, os pinos rs, en, d4, d5, d6, d7 do LCD são conectados no pino wiringPi GPIO 11, 10, 6, 5, 4, 1 no modo de 4 bits. O receptor de RF recebe o sinal do transmissor de RF e o HT12D IC o decodifica. D8, D9, D10, D11 do decodificador IC HT12D são conectados diretamente no pino 25, 24, 23 e 22 wiringPI GPIO. Os LEDs de saída são conectados no pino 26, 27, 28 e 29 do GPIO wiringPi. Um buzzer também é usado para alertar tecla pressionada em wiringPi GPIO 0.
O circuito do transmissor de RF contém o IC do codificador HT12E e 4 botões de pressão para controlar os 4 LEDs. No Codificador e no Decodificador IC todas as linhas de endereço são conectadas ao aterramento.
Instalando a biblioteca wiringPi no Raspberry Pi:
Como em Python, importamos RPi.GPIO de importação como arquivo de cabeçalho IO para usar os pinos GPIO do Raspberry Pi, aqui na linguagem C precisamos usar a biblioteca wiringPi para usar os pinos GPIO em nosso programa C. Podemos instalá-lo usando os comandos abaixo um por um, você pode executar este comando a partir do Terminal ou de alguns clientes SSH como o Putty (se você estiver usando o Windows). Vá até o nosso tutorial Introdução ao Raspberry Pi para saber mais sobre como manusear e configurar o Raspberry Pi.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Teste a instalação da biblioteca wiringPi, use os comandos abaixo:
gpio -v gpio readall
Explicação de programação:
Em primeiro lugar, incluímos arquivos de cabeçalho e definimos pinos para LCD, em seguida, inicializamos algumas variáveis e pinos para receber as indicações de entrada e LED.
#incluir
Depois disso, damos instruções a todos os pinos GPIO usados nas funções void setup () .
void setup () {if (wiringPiSetup () == -1) {clear (); print ("Impossível iniciar"); setCursor (0,1); imprimir ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
No código, usamos a função digitalRead para ler a saída do decodificador e digitalWrite para enviar a saída para o LED ou dispositivo.
…………….. while (1) {setCursor (0,0); imprimir ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Aqui estão mais algumas funções que foram usadas neste projeto.
A função void lcdcmd é usada para enviar comandos ao LCD e a função void write é usada para enviar dados ao LCD.
A função void clear () é usada para limpar o LCD, void setCursor é usado para definir a posição do cursor e void print para enviar string ao LCD.
A função void begin é usada para inicializar o LCD no modo de 4 bits e void buzzer () para emitir o bipe.
Verifique o código completo para este controle remoto RF Raspberry abaixo.