Uma casa mais segura com um sistema de detecção de movimento fácil de instalar
Priorizamos nossa segurança e tentamos reduzir os riscos ao máximo, uma realidade evidenciada pelo fato de que o mercado de segurança residencial é estimado em cerca de 56,9 bilhões USD .
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
- Sensor de movimento PIR (1)
- Placa de desenvolvimento do módulo de câmera M5Stack ESP32 (1)
- Placa de breakout básica FTDI da SparkFun - 3,3 V (1)
- Fios de ligação (1)
Ferramentas de software/nuvem utilizadas no projeto
- Uma conta ativa Ubidots
- IDE do Arduino
- 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.