Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Fechadura de porta protegida por senha baseada em Arduino e Android

Componentes e suprimentos

Arduino UNO
× 1
Módulo Bluetooth HC-05
× 1
Servos (Tower Pro MG996R)
× 1

Ferramentas e máquinas necessárias

Impressora 3D (genérica)

Aplicativos e serviços online

Arduino IDE

Sobre este projeto





Introdução


Este bloqueio inteligente é seguro, simples e fácil de gerenciar a fechadura de sua casa. Esta fechadura não precisa de chaves e está presa dentro da porta e você pode controlá-la de fora da porta usando Bluetooth. Como a fechadura está dentro da porta, não há como arrombá-la por um ladrão. Um aplicativo Android é necessário para abrir e fechar o bloqueio e explicarei os detalhes como você pode desenvolver um aplicativo Android na parte posterior do tutorial. Uma senha é enviada para o bloqueio usando o aplicativo Android e se a senha corresponder à sua senha de bloqueio predefinido, o bloqueio será aberto e enviado um feedback para o seu telefone como se o bloqueio estivesse aberto.





Design 3D da fechadura da porta


Todas as partes da fechadura são impressas em 3D. Gostaria de agradecer, usuário do Thingiverse ridercz por seu belo design. Ele projetou e publicou esta fechadura baseada em servo em thingiverse.com. Todos os arquivos, exceto Rack_Holder.stl, são retirados de seu projeto. Você pode baixar os arquivos abaixo ou em Thingiverse.com.

Alguns arquivos possuem a versão LT. A versão leve requer menos PLA em comparação com a versão normal e tem menos resistência. Imprimi a versão LT e está funcionando bem. Usei Anet A8 para imprimir todas as peças. Fotos das peças impressas estão anexadas.





Montagem de peças impressas em 3D


Monte todas as partes impressas uma a uma conforme mostrado nas fotos. Você também pode seguir as instruções do vídeo anexadas na primeira etapa. Após a montagem, use quatro parafusos para fixar bem todas as peças.





Programa Arduino para fechadura protegida por senha de controle de Bluetooth


O código para a fechadura inteligente de controle do bluetooth é muito simples. Eu projetei um aplicativo android de forma que ele envie um comando com a senha. Na verdade eu defino dois comandos, um é "ABRIR =" e outro é "FECHAR =" e a senha pode conter qualquer dígito, posterior ou símbolo ou combinação deles como você quiser. No aplicativo usei dois botões um para abrir a porta e outro para fechar a porta. Quando a senha é fornecida para a caixa de senha e o botão abrir é clicado, o aplicativo junta o comando "OPEN =" com a senha e envia para o arduino. Eu adiciono o sinal '=' com o comando para que separarei o comando e a senha usando este '='. Depois de receber a string do telefone, o programa Arduino separa o comando e a senha da string de recebimento e salva-os em duas variáveis ​​separadas. Em seguida, verifique a senha primeiro, se a senha corresponder à senha salva, abra a porta para o comando "ABRIR" e feche a porta para o comando "FECHAR". "=" ajuda a separar o comando e a senha. O esboço completo do Arduino é fornecido abaixo.





Esquemático


A conexão entre os componentes é muito simples. Primeiro, conecte o módulo Bluetooth HC-05 ao Arduino. Observe o esquema. O pino TX da placa Arduino é conectado ao pino RX do módulo Bluetooth e o pino RX do Arduino é conectado ao pino TX do módulo Bluetooth.





Configurando a fechadura da porta


Espero que você tenha programado sua placa Arduino com o sketch anexado na etapa anterior e que você já tenha testado todas as conexões de acordo com o esquema. Se você concluiu todas as etapas, é hora de colocar a fechadura no lugar apropriado da porta. Primeiro, coloque a fechadura com quatro parafusos. Em seguida, fixe o módulo Bluetooth no lugar certo da fechadura e adicione um pouco de cola quente para ajustar firmemente o módulo com a fechadura. Depois disso, coloque a placa Arduino na parte inferior da fechadura e conecte todos os fios de acordo com o esquema. Após colocar a trava e fazer as conexões, você deve ligá-la. Usei um adaptador de parede 5V, 1A para fornecer energia ao circuito.





Desenvolvimento de aplicativo Android para fechadura protegida por senha


Vou mostrar como desenvolver um aplicativo Bluetooth para Android usando o MIT App Inventor. Estou usando o App Inventor porque não requer nenhuma codificação e nenhuma instalação de software. Você só precisa de uma conta do Google. Vá para http://ai2.appinventor.mit.edu/, você vai pedir para fazer login usando a conta do Google.

Faça login no App Inventor usando gmail e siga as etapas abaixo:
  • i. Aceite os termos e condições - imagem 1
  • ii. Clique em 'responder pesquisa mais tarde' e em 'continuar' para descartar a imagem da tela inicial 2, 3
  • iii. Comece um novo projeto (sem espaços!) Imagem 4
  • iv. Nomeie o projeto "BluetoothControlDoorLock" (sem espaços!) Imagem 5

Agora você está no Designer, onde faz o layout da "interface do usuário" do seu aplicativo (imagem 6). A janela do designer é onde você define a aparência e o comportamento do seu aplicativo e especifica quais funcionalidades ele deve ter. Você escolhe coisas para a interface do usuário, como botões, imagem, rótulo, caixas de texto e funcionalidades como conversão de texto em voz, Bluetooth, sensores e GPS.

Agora, siga a figura 7 e adicione um seletor de lista ao visualizador. Renomeie-o para "Conectar ao dispositivo Bluetooth" (imagem 8). Adicione uma etiqueta, uma caixa de texto de senha e dois botões mostrados na figura 10. Altere as propriedades de texto dos componentes como "Enter Password", "Open Door" e "Close Door" respectivamente. A interface do usuário final deve ser semelhante à figura 11. Agora adicione um cliente Bluetooth ao visualizador. É um componente invisível e não possui IU. Veja a Imagem 12.

Mude para o Editor de Blocos

É hora de dizer ao seu aplicativo o que fazer! Clique em "Blocos" para ir para o Editor de Blocos (imagem 13). Pense nos botões Designer e Blocks como guias - você os usa para mover-se para frente e para trás entre as duas áreas do App Inventor. O Blocks Editor é onde você programa o comportamento do seu aplicativo. Existem blocos integrados que tratam de coisas como matemática, lógica e texto. Abaixo disso estão os blocos que acompanham cada um dos componentes em seu aplicativo. Para que os blocos de um determinado componente apareçam no Editor de Blocos, primeiro você precisa adicionar esse componente ao seu aplicativo por meio do Designer.

Deixe-nos criar blocos para o Seletor de lista. O seletor de lista é um elemento da IU quando clicado, ele mostra uma lista de elementos correspondentes aqui é o dispositivo Bluetooth emparelhado. Temos que adicionar dois blocos ListPicker.BeforePicking e ListPicker.AfterPicking (imagem 14). Os blocos completos são mostrados nas figuras 18 e 19.

Criar arquivo apk

Nosso projeto está completo, agora precisamos construir o arquivo apk para o nosso telefone Android. Clique para criar o menu e selecione "App (save .apk to my computer)". Espere um minuto. Um arquivo apk será baixado para sua pasta de download padrão. Instale e use.





Um aplicativo Android com mais recursos


Na etapa anterior, mostrei como desenvolver um aplicativo bluetooth básico no App Inventor. Mas esse aplicativo não é tão amigável. Não irá mostrar-lhe nenhuma mensagem, quer a sua porta esteja aberta ou fechada ou o bluetooth não pode ser ligado devido a algum erro. Anexei aqui um aplicativo mais avançado para nosso projeto.

Quando você executa o aplicativo, verifique se o rádio bluetooth está habilitado ou não; se não estiver habilitado, uma caixa de diálogo de habilitação do bluetooth aparecerá. Clique em sim para ligar seu rádio bluetooth. Em seguida, emparelhe o dispositivo usando o botão de emparelhamento do dispositivo. Em seguida, clique no botão conectar, se conectado com sucesso a qualquer dispositivo, o aplicativo mostra o endereço MAC do dispositivo conectado e o nome. Digite a senha na caixa de senha e clique no botão abrir porta; se você digitou a senha correta, a porta será aberta e o aplicativo mostrará uma mensagem de que sua porta está aberta. Em seguida, digite a senha novamente se quiser fechar a porta. Se você fornecer a senha errada, o aplicativo mostrará a mensagem de senha errada.

O arquivo fonte completo do App Inventor (BTcontrol.aia) está anexado a este documento. Se você não gostou de fazer seu próprio aplicativo ou modificá-lo, basta baixar o BTcontrol.apk e instalá-lo em seu telefone android.

Você também pode baixá-lo da Google Play Store usando o link:

https://play.google.com/store/apps/details?id=appinventor.ai_khairul_uapstu.BTcontrol&hl=en

Para modificar a fonte clique no menu "Projetos" e selecione "Importar projeto (.aia) do meu computador" mostrado na figura 24 e navegue até o arquivo BTcontrol.aia do seu computador. Depois de importar, você pode modificá-lo facilmente.

Se você deseja saber mais sobre o desenvolvimento de aplicativos Android usando o App Inventor, navegue:http://appinventor.mit.edu/explore/ai2/tutorials.html. Você também pode tentar http://meta-guide.com/videography/100-best-appinventor-videos/

Código

  • Arduino Sketch
Arduino Sketch Arduino
 #include  Servo myservo; // cria um objeto servo para controlar um servoString inputString =""; String command =""; String value =""; String password ="arduPi"; // esta é a senha para abrir e fechar sua porta // você pode definir qualquer senha que desejar usando dígitos e símbolosboolean stringComplete =false; void setup () {// inicia a conexão serial Serial.begin (9600); // a taxa de transmissão é 9600 deve corresponder ao bluetooth // A função String reserve () permite que você aloque um buffer na memória para manipular strings. inputString.reserve (50); // reserva 50 bytes na memória para salvar para manipulação de string command.reserve (50); valor.reservar (50); boolean stringOK =false; myservo.attach (9); // anexa o servo no pino 9 ao objeto servo} void loop () {// se o arduino receber um caractere de terminação de string como \ n stringComplete será definido como verdadeiro if (stringComplete) {//Serial.println(inputString); atraso (100); // identificou a posição de '=' na string e definiu seu índice para a variável pos int pos =inputString.indexOf ('='); // valor da variável pos> ou =0 significa '=' presente na string recebida. if (pos> -1) {// substring (start, stop) função corta uma porção específica da string do início ao fim // aqui o comando será a porção da string recebida até '=' // deixe a string recebida ser aberta =test123 // então o comando é 'aberto' command =inputString.substring (0, pos); // o valor será de after =para o comando de nova linha // para o valor de exemplo acima é test123 // nós apenas ignoramos o '=' tomando o primeiro parâmetro da substring como 'pos + 1' // estamos usando '=' como um separador entre o comando e o valor // sem '=' qualquer outro caractere pode ser usado // estamos usando =menas nosso comando ou senha não deve conter nenhum '=', caso contrário, causará o valor de erro =inputString.substring (pos + 1 , inputString.length () - 1); // extrai o comando até \ n excluído //Serial.println(command); //Serial.println(value); // password.compareTo (value) compare entre tring de senha e string de valor, se corresponder, retorne 0 if (! password.compareTo (value) &&(command =="OPEN")) {// se a senha for correspondida e o comando for 'OPEN 'que a porta deve abrir openDoor (); // chama a função openDoor () Serial.println ("OPEN"); // enviado feedback aberto para phone delay (100); } else if (! password.compareTo (value) &&(command =="CLOSE")) {// se a senha for correspondida e o comando for 'CLOSE' então a porta deve fechar closeDoor (); Serial.println ("FECHAR"); // enviado string "CLOSE" para o atraso do telefone (100); } else if (password.compareTo (value)) {// se a senha não corresponder ao envio de feedback incorreto para o telefone Serial.println ("WRONG"); atraso (100); }} // limpar a string para a próxima iteração inputString =""; stringComplete =false; }} void serialEvent () {while (Serial.available ()) {// obtém o novo byte:char inChar =(char) Serial.read (); //Serial.write(inChar); // adicione-o ao inputString:inputString + =inChar; // se o caractere de entrada for uma nova linha ou um retorno de carro, defina um sinalizador // para que o loop principal possa fazer algo a respeito:if (inChar =='\ n' || inChar =='\ r') {stringComplete =verdadeiro; }}} void openDoor () {myservo.write (0); atraso (100); } void closeDoor () {myservo.write (65); atraso (100); } 

Peças personalizadas e gabinetes

Thingiverse
https://www.thingiverse.com/thing:2350856CAD file em thingiverse.com

Esquemas

door-lock_android_source_PDi5PbxDwC.aia door-lock_android_app_K05l3Csr61.apk

Processo de manufatura

  1. Bank Vault
  2. Canal e eclusa
  3. Tutorial de bloqueio RFID do Arduino
  4. Controle remoto universal usando Arduino, 1Sheeld e Android
  5. Animação de LCD e jogos
  6. Controle de um robô Roomba com Arduino e dispositivo Android
  7. Fechadura da porta baseada em senha
  8. Comunicação Python3 e Arduino
  9. Arduino e autômatos celulares baseados em OLED
  10. Trava de porta inteligente usando página de login WiFi por Arduino e ESP8266