Dispositivos e Sensores

Uma casa mais segura com um sistema de detecção de movimento fácil de construir

Priorizamos a nossa segurança e procuramos reduzir ao máximo os riscos, realidade realçada pelo facto de o mercado de segurança doméstica estar avaliado em cerca de 56,9 mil milhões USD .

Leonardo Castellanos
· 6 min de leitura
Enviar por e-mail

Poucas coisas são tão universais e importantes quanto sentir-se seguro em casa. Qualquer perturbação nesse sentimento pode ser suficiente para ter um impacto negativo em toda a sua vida. É por isso que, por mais reais que sejam as ameaças, priorizamos a nossa segurança e tentamos reduzir ao máximo os riscos, realidade realçada pelo facto de o mercado de segurança doméstica estar avaliado em cerca de 56,9 mil milhões USD .

Um importante contribuidor para o crescimento deste mercado foi o surgimento da IoT , que, juntamente com a maior disponibilidade de tecnologias de conectividade confiáveis, deu aos proprietários a oportunidade de obter todos os tipos de dispositivos que gravam vídeo, alarmam usuários ou trancam portas, entre outros benefícios.

E mesmo que esses dispositivos sejam acessíveis e muito fáceis de usar (resultando em fácil instalação e uso), somos fabricantes aqui na Ubidots , e é por isso que nosso primeiro instinto geralmente é procurar as peças e construir os dispositivos que precisamos com nossos próprios mãos.

Esse foi o caso de Leonardo, um dos nossos engenheiros de Customer Success, que recentemente enfrentou uma situação em que a segurança de sua casa e de sua família estava potencialmente em risco.

Para resumir a história, alguns indivíduos de aparência suspeita foram vistos diversas vezes vagando pela vizinhança e, embora nada tivesse acontecido ainda, havia um consenso na comunidade sobre o quão desconfortáveis ​​eles se sentiam.

No caso de Leonardo, essa situação foi ainda mais estressante porque ele viaja com a família na maioria dos finais de semana, deixando a casa vazia e dando a esses indivíduos (ou outros) uma oportunidade ideal para invadir.

Com tudo isso em mente, era hora de mãos à obra… Depois de avaliar todas as ferramentas e recursos que já tinha à disposição, Leonardo decidiu fazer um sistema de detecção de movimento que tira uma foto toda vez que é acionado, pois, fora de todas as outras opções, esta foi a mais eficaz para o seu problema.

O sistema que imaginou tinha a vantagem de ser subtil e extremamente eficiente, uma vez que não teria de monitorizar constantemente as imagens (visto que o alertaria sobre cada nova imagem/movimento) e poderia sempre chamar a polícia sempre que quisesse. o sistema fotografou algo que ele considerou problemático, independentemente de sua localização.

O sistema funciona por meio de um sensor infravermelho passivo que, ao registrar um movimento, aciona uma ESP32-CAM para tirar uma foto. A imagem é então enviada para o Google Drive e seu FileID , FolderID e FileName são então enviados para Ubidots onde as imagens podem ser visualizadas em um dashboard . Ubidots também gera os alertas que Leonardo recebe em seu celular toda vez que uma foto é tirada, facilitando o acompanhamento de qualquer novidade.

Construindo o sistema de detecção de movimento, passo a passo

Hardware Utilizado no Projeto

  1. Sensor de movimento PIR (1)
  2. Placa de desenvolvimento do módulo de câmera M5Stack ESP32 (1)
  3. Fuga básica SparkFun FTDI - 3,3 V (1)
  4. Fios de ligação (1)

Ferramentas de software/nuvem usadas no projeto

  1. Uma conta ativa Ubidots
  2. IDE do Arduino
  3. Roteiro do Google

1. Conecte o sensor de movimento PIR ao ESP32-CAM

Com a ajuda de alguns fios jumper, conecte o sensor de movimento PIR ao ESP32-CAM seguindo o esquema mostrado na imagem abaixo. Observe que você pode alterar a pinagem dentro do código.

2. Programação do projeto Google Script.

Para criar um novo projeto Google Script, siga estas etapas:

  • Acesse o do Google Apps Script .
  • Clique no botão “+ Novo projeto” no canto superior esquerdo e crie um novo projeto.
  • Copie o código encontrado neste repositório e cole-o em seu projeto Google Script.
  • Coloque o token da sua Ubidots na variável chamada “ TOKEN ”. Dessa forma, o sistema enviará fileID , folderID e fileName dentro do contexto do ponto em formato string. Normalmente, o contexto é usado para armazenar strings em pares de valores-chave.
const TOKEN = "SEU-TOKEN";

Você pode alterar o rótulo da variável e o rótulo do dispositivo conforme desejado. Nesses dispositivos e variáveis, você armazenará fileID , folderID e fileName da imagem tirada pelo ESP32-CAM.

  • Implante seu código e altere as permissões do script para permitir que todos o vejam.
  • Copie o ID que aparece em “ID de implantação” depois de publicar o script. Usaremos dentro do ESP32-CAM.

3. Programando seu ESP32-CAM.

Existem muitos tutoriais na Internet sobre como programar o ESP32-CAM, por exemplo, este . Baixe o respectivo código deste repositório e abra-o em seu Arduino IDE.

Porém, algumas alterações devem ser feitas no código para que ele funcione corretamente em seu ESP32-CAM.

  • Coloque suas credenciais de rede sem fio nos campos SSID e Senha.

const char* ssid = "SEU-SSID"; const char* senha = "SUA SENHA";

  • Cole o ID do seu Google Script na variável a seguir.
String myScript = "/macros/s/SEU-URL-ID/exec"; //Substitua apenas "SEU-URL-ID"

Por fim, execute todo o código em seu Arduino IDE e atualize seu ESP32-CAM.

4. Personalize seu widget Ubidots

O widget de tela HTML permite que você crie seu próprio widget personalizado. Clique aqui para saber mais. Com o widget criado nos passos a seguir, você poderá ver as fotos tiradas pelo ESP32-CAM. Além disso, você verá um menu suspenso com alguns registros das fotos que, se preferir, podem ser removidas.

Agora, vamos criar nosso próprio widget usando estes trechos de código:

  • Vá para o menu suspenso "Dados" Ubidots na barra de navegação, depois " Dashboards " e, por fim, selecione o dashboard no qual você estará trabalhando.
  • Clique no botão “+” no canto superior direito do seu dashboard .
  • Selecione a opção “Tela HTML”.
  • Copie os HTML , CSS e JavaScript e cole-os no editor de código do widget.
  • No código JavaScript, coloque o token da sua Ubidots na variável chamada “ TOKEN ”.
var TOKEN = 'SEU-TOKEN';
  • Verifique as permissões na pasta do Google Drive que contém todas as imagens. Você deve permitir o acesso a “qualquer pessoa com o link”.

Observação importante: você deve confirmar se os rótulos de dispositivo e de variável definidos no projeto do Google Script correspondem aos rótulos de dispositivo e de variável definidos no código JavaScript.

5. Configure um alerta

Os eventos Ubidots permitem que você acione notificações por e-mail, SMS, chamadas de voz e até mesmo webhook com base nos dados do seu sensor. Neste caso utilizaremos os eventos para receber e-mails com as imagens capturadas pelo ESP32-CAM. Por favor, siga estas etapas.

  • Vá para o menu suspenso "Dados" na barra de navegação e depois "Eventos".
  • Clique no botão “+” no canto superior direito e crie um novo evento.
  • Defina seu evento para ser acionado assim que a variável receber "1".
  • Observe que Ubidots permite que você use campos personalizados dentro de ações de eventos. Por exemplo, incluiremos o URL do arquivo de imagem, que é armazenado no contexto do ponto de dados. Para acessar o contexto, use esta notação:

Olá, o sistema detectou um estranho em: {{variable.last_value_timestamp}} , verifique a imagem no seguinte link: https://drive.google.com/file/d/ {{variable.last_value_context.fileID} } /view?usp=compartilhamento

Em "THEN ações" defina um zero na variável para redefinir o gatilho do evento.

E assim, você pode, como Leonardo, construir um sistema IoT simples, mas eficaz, que melhore a segurança da sua casa e traga tranquilidade à sua vida.