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 .
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
- Sensor de movimento PIR (1)
- Placa de desenvolvimento do módulo de câmera M5Stack ESP32 (1)
- Fuga básica SparkFun FTDI - 3,3 V (1)
- Fios de ligação (1)
Ferramentas de software/nuvem usadas no projeto
- Uma conta ativa Ubidots
- IDE do Arduino
- 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.