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

Crie uma Zona Segura com Arduino para Desbloquear Dispositivos Android, iOS e Windows 10

Componentes e Materiais

Módulo Bluetooth Serial Sem Fio HC-05 1
Arduino Nano R3 1
Módulo de Impressão Digital R301T 1
LED RGB 5mm 4 Pinos 1

Aplicativos e Serviços Online

Sobre o Projeto

Neste artigo, queremos criar um gadget legal que possa criar uma zona segura para seus dispositivos serem desbloqueados. Ao final deste projeto você:

Crie uma Zona Segura com Arduino para Desbloquear Dispositivos Android, iOS e Windows 10

Bloquear e Desbloquear Dispositivos

Hoje em dia, nosso uso de dispositivos inteligentes aumentou e temos muitos dados diferentes neles como conteúdo de chats, contatos, imagens, notas e assim por diante. Mas alguns deles precisam ser privados para nós e isso é muito importante e talvez seja a principal razão para configurarmos nossos dispositivos como bloqueados. Todos os dispositivos inteligentes têm métodos diferentes para definir o modo de bloqueio ou desbloqueio, mas às vezes eles são limitados e causam uma sensação ruim quando você precisa passar pela seção de segurança para usar os dispositivos. Por exemplo, quando você está trabalhando no seu quarto particular e não há ninguém por perto, você não precisa de uma seção de segurança e fazer um plano para desligá-la é um pouco complicado.

Então, tivemos a ideia de criar um pequeno gadget que pudesse se conectar com todos os nossos dispositivos inteligentes e quando quisermos trabalhar facilmente sem segurança, apenas o ativamos com nossa digital. Quando o gadget é ativado, ele emparelha com nossos dispositivos via Bluetooth e eles permanecerão desbloqueados enquanto o gadget estiver próximo a eles.

Módulo de Impressão Digital R301T

Crie uma Zona Segura com Arduino para Desbloquear Dispositivos Android, iOS e Windows 10

Neste projeto, usamos o módulo sensor R301T que faz comunicação serial com um controlador como o Arduino para trocar dados. Primeiro, registramos nossa impressão digital no R301T como um usuário e o conectamos aos pinos Tx e Rx do Arduino. Usamos um módulo Bluetooth chamado HC-05 e o emparelhamos com nossos dispositivos uma vez. Agora vamos escrever um código para o Arduino e dizer a ele para ligar o Bluetooth quando um usuário ativar o gadget. Vamos lá!

Circuito

Crie uma Zona Segura com Arduino para Desbloquear Dispositivos Android, iOS e Windows 10

Código

Você deve adicionar a biblioteca do sensor de impressão digital e depois fazer o upload do código. Se é a primeira vez que você usa uma placa Arduino, não se preocupe, siga estes passos:

  1. Acesse www.arduino.cc/en/Main/Software e baixe o software Arduino compatível com seu SO. Instale o software IDE conforme instruído.
  2. Execute o Arduino IDE e limpe o editor de texto e copie o código a seguir no editor de texto.
  3. Escolha a placa em Ferramentas > Placas, selecione sua placa Arduino.
  4. Conecte o Arduino ao seu PC e defina a porta COM em Ferramentas > Porta.
  5. Pressione o botão de upload (seta).
  6. Está tudo pronto!
#include "Adafruit_Fingerprint.h"
#include "SoftwareSerial.h"
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
int cc = 0;

void setup() {
  Serial.begin(9600);
  while (!Serial); // Para Yun/Leo/Micro/Zero/...
  delay(100);
  Serial.println("\n\nAdafruit finger detect test");
  // define a taxa de dados para a porta serial do sensor
  finger.begin(57600);
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1) {
      pinMode(13, OUTPUT);
      digitalWrite(13, LOW);
      pinMode(9, OUTPUT);
      digitalWrite(9, HIGH);
    }
  }
  finger.getTemplateCount();
  Serial.print("Sensor contains ");
  Serial.print(finger.templateCount);
  Serial.println(" templates");
  Serial.println("Waiting for valid finger...");
}

void loop() {
  getFingerprintIDez();
  delay(50); // não precisa rodar em velocidade máxima.
}

uint8_t getFingerprintID() {
  uint8_t p = finger.getImage();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("No finger detected");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }
  
  p = finger.image2Tz();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }
  
  p = finger.fingerFastSearch();
  if (p == FINGERPRINT_OK) {
    Serial.println("Found a print match!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_NOTFOUND) {
    Serial.println("Did not find a match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }
  
  Serial.print("Found ID #");
  Serial.print(finger.fingerID);
  Serial.print(" with confidence of ");
  Serial.println(finger.confidence);
  
  for (int i = 255; i > 1; i--) {
    analogWrite(9, i);
    delay(10);
  }
  if (cc % 2 == 0) digitalWrite(13, HIGH);
  else digitalWrite(13, LOW);
  cc++;
  return finger.fingerID;
}

// retorna -1 se falhou, caso contrário retorna ID #
int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK) return -1;
  p = finger.image2Tz();
  if (p != FINGERPRINT_OK) return -1;
  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK) return -1;
  
  // encontrou uma correspondência!
  Serial.print("Found ID #");
  Serial.print(finger.fingerID);
  Serial.print(" with confidence of ");
  Serial.println(finger.confidence);
  return finger.fingerID;
}

Montagem

Crie uma Zona Segura com Arduino para Desbloquear Dispositivos Android, iOS e Windows 10

Primeiro, você deve emparelhar o módulo Bluetooth com seu dispositivo. Para emparelhar com Windows 10, vá em Configurações e pesquise "opções de entrada" e ative "Bloqueio Dinâmico" e emparelhe seu módulo BT a partir daí. Para smartphones Android, vá em Configurações > Seção Tela > Tela de Bloqueio e ative "Smart Lock" a partir daí e emparelhe com BT. Para iOS, vá em Ajustes, entre em Touch ID e Código e faça a configuração lá.

Se seus dispositivos não emparelharem automaticamente, você pode usar este truque. Quando tentar emparelhar pela primeira vez, envie um caractere para o dispositivo.

O Que Vem a Seguir?

Você pode melhorar este projeto como desejar. Aqui estão algumas sugestões:

Código

Biblioteca de Impressão Digital

Sem prévia (apenas download).

Processo de manufatura

  1. Painel de Controle para Flight Simulator 2020 com Arduino Nano – Display LCD e CDI
  2. Crie um Sistema Ambilight Impressionante para Monitor com Arduino
  3. Sistema Inteligente de Monitoramento de Temperatura para Escolas: Preciso, Tempo Real e Seguro
  4. Biblioteca Eficiente de Porta IO de 8 Bits para Arduino – Expanda o Controle Digital
  5. Controle de LED Arduino via App iOS/Android com WiFi/Ethernet
  6. Teclado Prototípico de 64 Teclas com Arduino: Matriz com Registradores de Deslocamento
  7. Criar Tons Musicais com Arduino: Um Guia Passo a Passo
  8. Circuito de Entrada Analógica Isolada para Arduino
  9. Kit de Robô de Navegação Interna Inteligente para Projetos Arduino
  10. Como Bombas de Água Diretas Aumentam Eficiência na Transmissão de Água