Índice:
- Etapa 1: Materiais e Ferramentas
- Etapa 2: Configurando Amazon Web Services
- Etapa 3: configurar o Amazon S3 e o Amazon DynamoDB
- Etapa 4: configurar AWS no Raspberry Pi
- Etapa 5: conectar os itens ao Raspberry Pi
- Etapa 6: Códigos
- Etapa 7: Construindo o Protótipo
- Etapa 8: Testando o protótipo
- Etapa 9: Fechamento
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Durante a quarentena, tentei encontrar uma maneira de matar o tempo construindo reconhecimento de rosto para a porta da casa. Eu chamei de Abellcadabra - que é a combinação entre Abracadabra, uma frase mágica com campainha que eu só pego a campainha. lol
De qualquer forma, este sistema irá realizar o reconhecimento facial usando o Amazon Rekognition quando o usuário apertar a campainha. O Rekognition vai comparar a imagem capturada com uma coleção de imagens no Amazon S3. Se o reconhecimento for bem-sucedido, a porta será aberta. Se não for bem-sucedido, a campainha soará e o usuário pode ter a opção de desbloquear usando o token RFID. Também existe um botão no interior da casa onde o dono da casa pode destrancar a porta empurrando-a.
Todos os reconhecimentos e desbloqueios realizados serão armazenados no Amazon DynamoDB. Vou tentar explicar passo a passo para construir todo o sistema. Estou usando os materiais que já tenho porque demorei muito para pegar mais alguma coisa, então é isso.
Etapa 1: Materiais e Ferramentas
Material:
- Raspberry Pi
- Pi Camera
- Servo RC (atuará como fechadura da porta)
- Botão de mudança 2x
- Campainha
- Interruptor magnético
- Leitor e tag RC-522 RFID
- Fios de placa de ensaio MF, MM, FF
- Polystrene Ice Box - qualquer tamanho seria bom porque esta será a nossa porta.
- Dobradiça de 1,5 polegadas 2x
- Parafuso de 2,5 mm 4x
Ferramentas
- Chave de fenda
- Fita dupla face
Etapa 2: Configurando Amazon Web Services
O Amazon Web Services é fácil de usar e gratuito até atingir 5.000 chamadas de API por mês. Você pode se registrar para uma conta AWS aqui aqui. Você precisará se inscrever para uma conta gratuita do Amazon Rekognition. O nível gratuito deve ser mais do que suficiente para este projeto.
Depois que a inscrição for bem-sucedida, clique em Serviços> IAM. A partir daqui, criaremos um usuário que terá permissões para ser usado pelo Raspberry Pi.
- Clique em Usuários> Adicionar Novo Usuário
- Dê um nome ao usuário criado. Para o tipo de acesso, marque a caixa Acesso programático.
- Clique em Avançar.
- Clique em Anexar políticas existentes diretamente. Verifique as seguintes políticas:
- AWSLambdaFullAccess
- AmazonS3FullAccess
- AmazonDynamoDBFullAccess
- AmazonRekognitionFullAccess
- Acesso de administrador
- Clique em Avançar e em Avançar novamente porque não precisamos adicionar tag.
- Verifique se as políticas escolhidas são as mesmas listadas e clique em Criar usuário.
Baixe o arquivo CSV que contém a ID da chave de acesso e a chave de acesso secreta que será usada na próxima etapa. Clique em Fechar.
Etapa 3: configurar o Amazon S3 e o Amazon DynamoDB
No AWS Console, clique em Services> S3
O S3 funciona como o Google Drive, onde você pode armazenar documentos e imagens. Para este projeto, vamos precisar de dois Buckets, um deles para armazenar uma coleção de imagens a ser usada pelo Amazon Rekognition (e o segundo é para armazenar a imagem capturada.
- Clique em Criar intervalo.
- Insira o nome do intervalo e clique em Avançar e em Avançar novamente.
- Desmarque a caixa "Bloquear todo o acesso público".
- E marque a caixa "Reconheço que as configurações atuais podem fazer com que este intervalo e os objetos se tornem públicos".
- Clique em Next e em Create Bucket.
- Repita a etapa para o segundo balde.
- clique em Serviços> DynamoDB
O Amazon DynamoDB será usado neste projeto para armazenar os detalhes de reconhecimento e desbloqueio. os detalhes que serão armazenados são o link para a imagem capturada, o nome da imagem reconhecida ou se não for reconhecida, o nome será armazenado como 'desconhecido', a data e hora do reconhecimento e o status se foi bem-sucedido, nenhum rosto correspondido, nenhum rosto detectado, RFID desbloqueado ou desbloqueado de dentro.
- Clique em Adicionar nova tabela.
- Insira qualquer nome para a tabela.
- Para chave primária, insira 'rid' como chave primária.
- Clique em Criar.
Etapa 4: configurar AWS no Raspberry Pi
A primeira etapa é inserir suas credenciais AWS. Para fazer isso, digite no console do Raspberry Pi:
aws configure
Em seguida, insira suas credenciais AWS IAM que você criou, certificando-se de inserir “us-west-2” como sua região (ou a região relevante que você configurou para AWS Rekognition). Deixe o formato de saída padrão em branco.
Etapa 5: conectar os itens ao Raspberry Pi
Portanto, as conexões dos itens são as seguintes.
- Servo RC - 1, 11, Terra
- Chave Magnética - 8, Terra
- Buzzer - 32, Ground
- Botão externo - 16, Terra
- Botão interno - 18, chão
- PIN SDA no leitor RFID - 24
- Pino SCK no leitor RFID - 23
- Pino MOSI no leitor RFID - 19
- Pino MISO no leitor RFID - 21
- Pino GND no leitor RFID - Terra
- Pino RST no leitor RFID - 22
- Pino 3,3 V no leitor RFID - 17
Conecte ao aterramento mais próximo.
Etapa 6: Códigos
Você pode encontrar todo o código necessário em meu repositório Git.
Para as etapas sobre como adicionar faces e usar Index Faces.py, verifique este vídeo.
Etapa 7: Construindo o Protótipo
Como não tirei nenhuma foto durante minha construção, vou apenas deixar a foto do meu protótipo finalizado.
O protótipo foi construído para retratar uma porta. A vista de mostra a vista da porta do lado de fora da casa. A câmera Pi foi instalada para medir a altura média da linha do olho humano para garantir que a imagem capturada contenha o rosto a ser reconhecido. O botão da campainha que ativará a câmera Pi para capturar a imagem é colocado abaixo da câmera Pi. O leitor RFID também é colocado na porta para o usuário destrancar a porta usando a etiqueta RFID caso o reconhecimento falhe.
O botão vermelho é o botão interno que será usado para destravar a porta de dentro da casa. O Raspberry Pi é colocado no interior da casa para que as pessoas de fora não possam mexer nele. O RC Servo é colocado no lado direito da porta como a fechadura da porta. A campainha é colocada no interior da casa para garantir que o som da campainha possa ser ouvido pelas pessoas dentro da casa quando ela tocar. O interruptor magnético é colocado entre a porta e a estrutura.
Etapa 8: Testando o protótipo
Execute o código no terminal
sudo python3 filename.py
Basta apertar o botão amarelo do lado de fora da casa e esta foto é capturada.
Verifique seu Amazon DynamoDB para verificar se a tabela está atualizada e os buckets do S3 para ver se a imagem capturada está armazenada.
Etapa 9: Fechamento
Se você decidir fazer este projeto sozinho, deixe-me saber nos comentários (:
Obrigado pela leitura.