Como projetar uma fechadura operada por smartphone

Neste projeto, projetaremos uma fechadura de porta exclusiva que pode ser operada sem cartão-chave, senha de entrada ou identificação biométrica. Um smartphone é a chave para trancar e destrancar a porta via Bluetooth.

Esta porta usa uma fechadura solenóide, que depende de uma trava para travamento e destravamento elétrico. Também possui LEDs para indicar se a porta está trancada ou destrancada e aciona uma campainha para notificações sonoras. Um sensor de vibração produz um sinal de alerta, protegendo a porta contra acesso não autorizado ou forçado.

Usaremos uma placa Arduino NANO e precisaremos de um smartphone com conectividade Bluetooth para este projeto. Vamos começar com o diagrama de blocos, seguido pelo diagrama de circuitos.

Diagrama de blocos do sistema
Os principais blocos de construção do sistema incluem:

  • Uma placa Arduino NANO
  • O Módulo Bluetooth HC05
  • Um relé
  • Uma fechadura solenóide
  • Uma campainha de 12 V.

Também usaremos alguns outros blocos, com:

  • LEDs
  • Uma mini campainha
  • Sensores de vibração

Um diagrama de blocos da fechadura operada por smartphone.

1. O Smartphone com conectividade Bluetooth para transmitir comandos através do telefone para trancar ou destrancar a porta.

2. O módulo Bluetooth envia comandos do smartphone do usuário para trancar ou destrancar a porta. O aplicativo Bluetooth envia esses sinais para a placa Arduino por meio de comunicação serial.

3. Um sensor de vibração é usado para detectar movimento ou vibrações na porta quando ela está trancada. Caso o sensor detecte vibrações fortes, ele envia um alerta para a placa Arduino.

4. Os relés: O relé 1 ativa (energiza) a trava solenóide. São necessários 12 V para alimentar a bobina interna do solenóide. O relé 2 também usa 12 V, mas é usado para alimentar a campainha grande.

5. A trava solenóide é usado para trancar a porta

6. A grande campainha de 12 V gera um alerta caso alguém tente abrir a porta à força quando trancada (sem usar o smartphone).

7. A mini campainha alertas sempre que a porta é trancada ou destrancada, gerando um sinal sonoro longo ou curto, respectivamente.

8. LEDs: LEDs verdes e vermelhos indicam se a porta está travada ou destravada.

Componentes necessários:

A fechadura solenóide.

O Módulo Bluetooth HC05.

A placa Arduino NANO.

A grande campainha (12 V).

A mini campainha (5 V).

O relé – montagem em PCB de 12 V.

O módulo sensor de vibração.

Diagrama esquemático:

O diagrama de circuito completo da fechadura operada por smartphone.

Conexões do circuito:
O Módulo Bluetooth HC05 possui quatro conexões de pinos: VCC, GND, Tx e Rx.

  • Arduino fornece o pino VCC com 5 V
  • O pino GND se conecta ao terra do circuito comum
  • Os pinos Tx e Rx se conectam aos pinos digitais D11 e D12 do Arduino, respectivamente
  • Os LEDs vermelho e verde se conectam aos pinos IO digitais D9 e D10
  • Os pinos IO digitais, D7 e D8, acionam as bobinas do Relé 1 e do Relé 2 através dos transistores
  • Ambos os transistores NPN BC547 são conectados em configuração de chave e sua saída de coletor aciona a bobina do relé
  • A saída do Relé 1 NA aciona as campainhas. A saída do Relé 2 NA energiza a bobina solenóide
  • Os terminais comuns (C) de ambos os relés são alimentados com 12 V (que é fornecido tanto para a campainha quanto para a trava solenóide)
  • A mini campainha de 5V se conecta ao pino digital D5

O módulo do sensor de vibração possui três conexões de pinos: VCC, GND e D0.

  • Arduino fornece o pino VCC com 5 V
  • O pino GND se conecta ao terra do circuito comum
  • O pino D0 se conecta ao pino digital D6 do Arduino
  • O pino VIN do Arduino recebe 12 V de entrada, gerando assim 5 V usando seu regulador de tensão de 5 V integrado. Esses 5V são então fornecidos aos outros módulos.

Operação do circuito:
O funcionamento do circuito inicia quando ele é alimentado com 12 V. Inicialmente, o solenóide fica na posição travada e a luz vermelha acende para indicar que a porta está travada.

Para começar, abra o aplicativo Bluetooth em seu smartphone e emparelhe-o com o módulo HC05 (insira a senha padrão, 1234). Depois de concluído, o módulo HC05 pisca lentamente e está pronto para receber comandos.

Em seguida, envie o comando “ULCK” para destravar a porta a partir do aplicativo Bluetooth do seu smartphone. O módulo HC05 receberá este comando e o transmitirá serialmente ao Arduino através dos pinos Tx-Rx.

Ao receber o comando, o Arduino enviará a Lógica 1 para o pino D8, ligando o Relé 2. Isso ativa o solenóide e a porta destrava. Ao mesmo tempo, o Arduino envia:

  • Lógica 1 ao pino D9, acendendo o LED verde, sinalizando que a porta está destravada
  • Lógica 0 ao pino D10, apagando o LED vermelho (usado somente quando a porta está travada)
  • Lógica 1 ao pino D5 por um segundo, indicando para o mini buzzer gerar um bipe longo, sinalizando que a porta está destravada

Para trancar a porta, envie o comando “LOCK”. O módulo HC05 receberá este comando e o passará para o Arduino. O Arduino então desliga o Relé 2 enviando o Logic 0 para o pino D8, que desativa o solenóide e trava a porta.

Arduino também envia:

  • Lógica 1 ao pino D5 por meio segundo, o que gera um bipe curto da mini campainha, indicando que a porta está trancada. Apaga o verde liderado por
  • Lógica 1 ao pino D10, acendendo o LED vermelho, sinalizando que a porta está travada
  • Lógica 0 ao pino D9, apagando o LED verde (usado somente quando a porta está destravada)

Quando a porta está trancada e o sensor de vibração detecta qualquer tipo de choque, força ou vibração, ele fornece um sinal de alerta via Logic 1 para o Arduino. Uma vez recebido, o Arduino enviará a Lógica 1 para o pino D7, que liga o Relé 1, produzindo um alarme a partir da campainha grande de 12 V,

Este funcionamento do circuito funciona por causa do programa que é baixado no FLASH interno do ATMega328 do Arduino. O programa é escrito em linguagem C/C++ e compilado no software Arduino IDE.

O arquivo (código) do programa deve ser baixado (upload) na memória de programa de 32 KB (FLASH) do ATMega328.

Programa de software:

#include
SoftwareSerial BT_serial(11,12);
char recved_code(5);
char código_bloqueio(5) = “BLOQUEIO”;
char unlock_code(5) = “ULCK”;
int i=0,sirene_rly=7,buz=5;
int lock_rly=8,lock_led=10,unbloqueio_led=9;
int porta_vibr_sensor=6;
int lock_flag=0,unlock_flag=1;
configuração nula
{
// coloque seu código de configuração aqui, para executar uma vez:
BT_serial.begin(9600);
Serial.begin(9600);
pinMode(sirene_rly,SAÍDA);
pinMode(buz,SAÍDA);
pinMode(lock_led,SAÍDA);
pinMode(lock_rly,SAÍDA);
pinMode(unlock_led,SAÍDA);
pinMode(door_vibr_sensor,INPUT);

digitalWrite(lock_rly,LOW);
digitalWrite(desbloqueio_led,BAIXO);
digitalWrite(lock_led,1);
digitalWrite(buz,0);
digitalWrite(sirene_rly,LOW);

}

loop vazio
{
int porta_vib_sensor_stat,lock_sensor_stat;
porta_vib_sensor_stat = digitalRead(door_vibr_sensor);

if((door_vib_sensor_stat==0) && (lock_flag==1))
{
digitalWrite(sirene_rly,ALTO);
Serial.println(“tentativa de arrombar a porta”);
}

if(BT_serial.disponível )
{
recved_code(i) = BT_serial.read ;
Serial.print(recved_code(i));
eu++;
}
se(eu==4)
{
Serial.print(recved_code);
if(strcmp(lock_code,recved_code)==0)
{
digitalWrite(lock_rly,LOW);
digitalWrite(buz,1);
atraso(1000);
digitalWrite(buz,0);
lock_flag=1;
desbloquear_flag=0;
BT_serial.print(“Porta trancada”);
digitalWrite(lock_led,ALTO);
digitalWrite(desbloqueio_led,BAIXO);
}
if(strcmp(desbloqueio_código,recved_code)==0)
{
digitalWrite(lock_rly,ALTO);
digitalWrite(buz,1);
atraso(500);
digitalWrite(buz,0);
desbloquear_flag=1;
lock_flag=0;
BT_serial.print(“Porta destravada”);
digitalWrite(lock_led,BAIXO);
digitalWrite(unlock_led,ALTO);
}
eu=0;
}
}

Link de vídeo:

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.