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 da porta do teclado com código mutável

Componentes e suprimentos

Arduino UNO
× 1
Matriz do teclado 4x4
× 1
Botão genérico
× 1
LCD i²c
× 1
Bloqueio de solenóide linear
× 1
IRF510N MOSFET
× 1
1 canal de retransmissão
× 1

Ferramentas e máquinas necessárias

Breadboard, 170 Pin
10 Pc. Kit de jumper de fio, 5 cm de comprimento

Sobre este projeto




Olá, bem-vindo a este tutorial (sim, é antigo, mas clássico), hoje estou fazendo um projeto de fechadura de porta baseado em uma placa Arduino, teclado, tela LCD i²c e usarei para a fechadura um solenóide e um relé, você pode conferir meu tutorial sobre a fechadura de impressão digital onde usei uma fechadura que usa um motor cc, então depende do seu sistema de fechadura você terá que escolher uma fiação, códigos e adaptá-los.

N.B:Para um projeto real, eu não recomendo usar um solenóide, mas sim hackear uma fechadura que pode ser aberta por fechadura eletrônica e mecânica e adaptar seu projeto para ela.





Peças


Portanto, para este projeto, precisaremos desses componentes, junto com alguns cabos de ligação e uma fonte de alimentação de 12V. Desculpe, não adicionei aqui:

O Push Button serve para abrir a fechadura por dentro, você pode removê-lo se quiser, o resistor é para debounce.

Eu usei o teclado 4 × 4, você pode usar 3 × 4, mas você precisará modificar algumas coisas no código, como para confirmação, eu uso 'A', você pode alterá-lo para '*' ou '#'.

O solenóide é alimentado por uma fonte de alimentação externa de 12 V e acionado pelo transistor MOSFET IRF510N.

O transistor é usado como uma chave e é melhor usar um canal N, o IRF510N é bastante popular quando usado com um Arduino, quando você aplica uma tensão de 5 V no Gate e na fonte, o transistor se torna como uma chave fechada entre os Drain and the Source, e não precisa de nenhum resistor como os bipolares.

E se não houver tensão aplicada, o transistor atua como uma chave aberta, e é assim que controlamos o solenóide.

Para o outro exemplo, estou usando um módulo de relé de 1 canal, ele funciona com 3,3 V, e controlamos sua entrada como controlar o transistor, a única diferença é que eles são invertidos (veremos no código).





Fluxograma do algoritmo


Para tornar as coisas fáceis de entender, aqui está o fluxograma, não está completamente detalhado, mas é uma visão geral do código.

N.B:Você pode usar o relé para controlar qualquer bloqueio elétrico até 250VAC, você pode usá-lo também para controlar o solenóide ...

Os códigos são exatamente os mesmos, a única coisa é que você alterna entre (BAIXO e ALTO) para abrir a fechadura.

Apenas lembre-se da primeira vez que você deve carregar o código e alterar a senha, em seguida, descomente algumas linhas (leia o código para encontrá-las (elas estão em configuração)) e recarregue o código para que ele possa ler a senha da EEPROM. .

Além disso, você pode alterar o comprimento do código, primeiro fiz quatro dígitos, você pode alterá-lo do código padrão, pois usei no código o "sizeof (código)" em vez de "4". Você não pode alterar um código de 4 dígitos para uma senha de 6 dígitos, primeiro altere a senha inicial da fonte do código.





Teste


Você encontrará o teste nas fotos abaixo, navegue por eles

Bem, esse foi o teste do projeto, é o mesmo para o solenóide ou relé, e o botão abre por dentro se você quiser ou você pode removê-lo.

Espero que seja útil e se você tiver algum problema ou dúvida deixe um comentário.

Código

  • Keypad_doorlock_solenoid.ino
  • Keypad_doorlock_relay.ino
Keypad_doorlock_solenoid.ino Arduino
Lembre-se de carregar o código primeiro, em seguida, descomente as linhas 62 a 64 e recarregar, é feito apenas uma vez.
 / * Este código funciona com Matriz de teclado 4x4, LCD ic, transistor IRF510N e um botão de pressão * É uma trava onde o transistor aciona uma fechadura de solenóide que você pode abrir com o código correto * ou pelo botão de dentro * O código pode ser alterado diretamente pelo teclado e não requer o upload do código novamente * O código é armazenado na EEPROM * Consulte www.surtrtech.com para mais detalhes * / # inclua  #include  #include  #define Solenóide 11 // Na verdade, a porta do transistor que controla o solenóide # define O_Button 10 // Push Button #define I2C_ADDR 0x27 // endereço I2C, você deve usar o código para escanear o endereço primeiro (0x27) aqui # define BACKLIGHT_PIN 3 // Declarando pinos LCD # define En_pin 2 # define Rw_pin 1 # define Rs_pin 0 # define D4_pin 4 # define D5_pin 5 # define D6_pin 6 # define D7_pin 7const byte numRows =4; // número de linhas no tecladoconst byte numCols =4; // número de colunas no mapa de teclado do teclado numérico [numRows] [numCols] ={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {' 7 ',' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}}; char pressionado; // Onde as chaves são armazenadas, ele muda muito frequentemente. Código [] ={'6', '6', '0', '1'}; // O código padrão, você pode alterá-lo ou torná-lo um 'n' dígitos onechar code_buff1 [sizeof (code)]; // Onde a nova chave é armazenada char code_buff2 [sizeof (code)]; // Onde a nova chave é armazenada novamente para que seja comparada com o anterior oneshort a =0, i =0, s =0, j =0; // Variáveis ​​usadas laterbyte rowPins [numRows] ={9,8,7,6}; // Linhas 0 a 3 // se você modificar seus pinos, você deve modificar este toobyte colPins [numCols] ={5,4,3,2}; // Colunas 0 a 3LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); Teclado myKeypad =Keypad (makeKeymap (mapa de teclado), rowPins, colPins, {lcdCols); .begin (16,2); lcd.setBacklightPin (BACKLIGHT_PIN, POSITIVO); lcd.setBacklight (HIGH); // Iluminação de fundo lcd.home (); lcd.print ("Em espera"); // O que está escrito no LCD você pode alterar pinMode (Solenoid, OUTPUT); pinMode (O_Button, INPUT); // for (i =0; i  
Keypad_doorlock_relay.ino Arduino
Lembre-se de carregar o código primeiro, em seguida, descomente as linhas 62 a 64 e recarregar, é feito apenas uma vez.
 / * Este código funciona com Matriz de teclado 4x4, LCD ic, módulo de relé e um botão * É uma fechadura onde o relé pode controle uma fechadura que você pode abrir com o código correto * ou pelo botão de dentro * O código pode ser alterado diretamente pelo teclado e não requer upload do código novamente * O código é armazenado na EEPROM * Consulte www.surtrtech.com para mais detalhes * / # include  #include  #include  #define Relé 11 // Controla o Relé # define O_Button 10 // Botão # define I2C_ADDR 0x27 // I2C endereço, você deve usar o código para digitalizar o endereço primeiro (0x27) aqui # define BACKLIGHT_PIN 3 // Declarando pinos LCD # define En_pin 2 # define Rw_pin 1 # define Rs_pin 0 # define D4_pin 4 # define D5_pin 5 # define D6_pin 6 # definir D7_pin 7const byte numRows =4; // número de linhas no tecladoconst byte numCols =4; // número de colunas no mapa de teclado do teclado numérico [numRows] [numCols] ={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {' 7 ',' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}}; char pressionado; // Onde as chaves são armazenadas, ele muda muito frequentemente. Código [] ={'6', '6', '0', '1'}; // O código padrão, você pode alterá-lo ou torná-lo um 'n' dígitos onechar code_buff1 [sizeof (code)]; // Onde a nova chave é armazenada char code_buff2 [sizeof (code)]; // Onde a nova chave é armazenada novamente para que seja comparada com o anterior oneshort a =0, i =0, s =0, j =0; // Variáveis ​​usadas laterbyte rowPins [numRows] ={9,8,7,6}; // Linhas 0 a 3 // se você modificar seus pinos, você deve modificar este toobyte colPins [numCols] ={5,4,3,2}; // Colunas 0 a 3LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); Teclado myKeypad =Keypad (makeKeymap (mapa de teclado), rowPins, colPins, {lcdCols); .begin (16,2); lcd.setBacklightPin (BACKLIGHT_PIN, POSITIVO); lcd.setBacklight (HIGH); // Iluminação de fundo lcd.home (); lcd.print ("Em espera"); // O que está escrito no LCD você pode alterar pinMode (Relay, OUTPUT); pinMode (O_Button, INPUT); // for (i =0; i  

Esquemas


Processo de manufatura

  1. Bank Vault
  2. Faça uma porta de escritório com travamento automático com sensor de proximidade para smartphone
  3. Sensor de temperatura múltipla
  4. MotionSense
  5. Impressora 3D Segurança contra incêndio
  6. Fechadura da porta baseada em senha
  7. IoT Gauge com Arduino, Yaler e IFTTT
  8. Levitação eletromagnética repulsiva Arduino
  9. Controle Remoto Gripper Bot
  10. CoroFence - Detector Térmico🖖