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

Poucas coisas são tão universais e importantes quanto a sensação de segurança em casa. Qualquer perturbação nessa sensação pode ser suficiente para ter um impacto negativo em toda a sua vida. É por isso que, independentemente da realidade das ameaças, priorizamos nossa segurança e tentamos reduzir os riscos ao máximo, uma realidade evidenciada pelo fato de o mercado de segurança residencial ser estimado em cerca de USD 56,9 bilhões .

Um fator importante para o crescimento deste mercado foi o surgimento da IoTdas Coisas), que, aliada à maior disponibilidade de tecnologias de conectividade confiáveis, proporcionou aos proprietários de imóveis a oportunidade de obter todos os tipos de dispositivos que gravam vídeos, acionam alarmes ou trancam portas, entre outros benefícios.

E embora esses dispositivos sejam acessíveis e muito fáceis de usar (resultando em instalações e utilização simples), nós aqui na Ubidotssomos criadores, e é por isso que nosso primeiro instinto geralmente é procurar as peças e construir os dispositivos de que precisamos com nossas próprias mãos.

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

Resumindo, alguns indivíduos com aparência suspeita foram vistos várias 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 era ainda mais estressante porque ele viaja com a família na maioria dos fins de semana, deixando a casa vazia e dando a esses indivíduos (ou outros) uma oportunidade ideal para invadir a propriedade.

Com tudo isso em mente, era hora de começar a trabalhar… Depois de avaliar todas as ferramentas e recursos que já tinha à sua disposição, Leonardo decidiu criar um sistema de detecção de movimento que tira uma foto sempre que é acionado, já que, dentre todas as opções, essa era a mais eficaz para o seu problema.

O sistema que ele idealizou tinha a vantagem de ser discreto e extremamente eficiente, já que ele não precisaria monitorar as imagens constantemente (visto que o sistema o alertaria a cada nova imagem/movimento) e ele sempre poderia chamar a polícia quando o sistema fotografasse algo que ele considerasse problemático, independentemente de sua localização.

O sistema funciona utilizando um sensor infravermelho passivo que, ao detectar movimento, aciona uma ESP32-CAM para tirar uma foto. A imagem é então enviada para o Google Drive e seus IDs de arquivo (FileID e FolderID) e nome (FileName) são enviados para Ubidots onde as fotos podem ser visualizadas em um dashboard . Ubidots também gera alertas para o celular de Leonardo sempre 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. Placa de breakout básica FTDI da SparkFun - 3,3 V (1)
  4. Fios de ligação (1)

Ferramentas de software/nuvem utilizadas no projeto

  1. Uma conta ativa Ubidots
  2. IDE do Arduino
  3. Script 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. Programando o projeto do Google Script.

Para criar um novo projeto do Google Script, siga estes passos:

  • Acesse o site 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 no seu projeto do Google Script.
  • Insira o token da sua Ubidots na variável chamada " TOKEN ". Dessa forma, o sistema enviará o fileID , folderID e fileName dentro do contexto do ponto (.ot) em formato de string. Normalmente, o contexto é usado para armazenar strings em pares chave-valor.
const TOKEN = "SEU-TOKEN";

Você pode alterar o rótulo da variável e o rótulo do dispositivo conforme desejar. Nesses dispositivos e variáveis, você armazenará o ID do arquivo , o ID da pasta e o nome do arquivo da imagem capturada pela 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” após publicar o script. Vamos usá-lo dentro do ESP32-CAM.

3. Programando seu ESP32-CAM.

Existem muitos tutoriais na internet sobre como programar o ESP32-CAM, por exemplo, este aqui . Baixe o código correspondente deste repositório e abra-o na sua IDE do Arduino.

No entanto, algumas alterações precisam ser feitas no código para que ele funcione corretamente no seu ESP32-CAM.

  • Insira as credenciais da sua rede sem fio nos campos SSID e Senha.

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

  • Cole o ID do seu script do Google na seguinte variável.
String myScript = "/macros/s/YOUR-URL-ID/exec"; //Substitua apenas "YOUR-URL-ID"

Por fim, execute todo o código na sua IDE do Arduino e grave o firmware no seu ESP32-CAM.

4. Personalize seu widget Ubidots

O widget canvas HTML permite que você crie seu próprio widget personalizado. Clique aqui para saber mais. Com o widget criado seguindo os passos abaixo, você poderá visualizar as fotos tiradas pela ESP32-CAM. Além disso, você verá um menu suspenso com alguns registros das fotos que, se preferir, podem ser removidos.

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

  • Acesse o menu suspenso "Dados" Ubidots na barra de navegação, depois "Dashboards" e, por fim, selecione o dashboard em que você trabalhará.
  • 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, insira 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ê precisa permitir o acesso a "qualquer pessoa com o link".

Nota importante: Você deve confirmar se os rótulos de dispositivo e de variáveis ​​definidos no projeto do Google Script correspondem aos rótulos de dispositivo e de variáveis ​​definidos no código JavaScript.

5. Configure um alerta

Os eventos Ubidots permitem acionar notificações por e-mail, SMS, chamada de voz e até mesmo webhook com base nos dados dos seus sensores. Neste caso, usaremos os eventos para receber e-mails com as imagens capturadas pela ESP32-CAM. Siga estas etapas.

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

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

Em "ações ENTÃO", defina a variável como zero para redefinir o gatilho do evento.

E assim, como Leonardo, você pode construir um sistema IoT simples, porém eficaz, que melhora a segurança da sua casa e traz tranquilidade para sua vida.