Índice:
- Suprimentos
- Etapa 1: Conecte o sensor de água à partícula
- Etapa 2: conectar a fonte de alarme ao Raspberry
- Etapa 3: configurar o servidor Apache
- Etapa 4: Habilitar CGI no Apache
- Etapa 5: configurar a página da web
- Etapa 6: Criar script para câmera Raspi
Vídeo: Como fazer um sistema de alarme de detecção de inundação inteligente usando Raspberry Pi e Particle Argon: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Ter sensores de inundação padrão é ótimo para evitar danos massivos à sua casa ou local de trabalho.
Mas fica difícil se você não está em casa para atender o alarme.
Claro que você pode comprar aqueles inteligentes
Este sistema de alarme de inundação detecta qualquer líquido e dispara alarme e atualiza a página da web sobre inundação que pode ser acessada em qualquer lugar do mundo, esteja você em férias relaxantes ou apenas no trabalho e deseja saber sobre o estado da sua casa.
Suprimentos
Raspberry pi (estou usando o modelo 3 B +) executando raspbian
Particle Argon
Grove Water Sensor
Câmera Raspi
Campainha
Fios de ligação
Etapa 1: Conecte o sensor de água à partícula
o sensor de água tem 4 pinos, que são GND, VCC, NC e SIG e vamos usar apenas três deles
Estou conectando o pino SIG ao D2 no argônio.
Agora, você pode iniciar o Particle Web IDE para escrever o código e fazer flash no Argon
Portanto, registramos a função Particle liquid e definimos uma variável isFloodPresent, que pode ser chamada do Particle Console e obter o valor booleano de isFloodPresent e também chamar a função liquid para testes simulados que leva o valor 1 como entrada, o que significa verdadeiro para inundação (água) presente.
certifique-se de que é capaz de ver essa função e variável no Console de Partículas do seu Dispositivo de Partículas.
Etapa 2: conectar a fonte de alarme ao Raspberry
No breadboard, você pode conectar o Buzzer ao pino GPIO do Raspberry
Conectei a extremidade menor da campainha ao GND (PIN 6) e a extremidade mais longa ao pino 7 do Framboesa.
Agora execute o código para ver. Precisamos que esse arquivo python esteja em execução o tempo todo para que possa receber os gatilhos do servidor da web e responder de acordo.
Alternativamente, você pode executar este arquivo na inicialização do seu raspberry, o que pode ser feito editando / etc / systemd
e este arquivo será colocado na pasta cgi do seu servidor apache, Eu criei um novo diretório flood-cgi dentro de / var / www / html / e coloquei este arquivo.py que irá se comunicar com meu script cgi
Etapa 3: configurar o servidor Apache
você pode instalar o servidor apache digitando sudo apt-get install apache2
quando estiver instalado, você pode verificar digitando hostname -I
e você obterá seu endereço IP local e poderá acessar seu navegador e deverá ver o servidor em execução
Etapa 4: Habilitar CGI no Apache
você pode habilitar o cgi digitando sudo a2enmod cgi
Por padrão cgi_bin do apache está localizado em / usr / lib / cgi-bin
aqui é onde você pode colocar seus scripts cgi depois de habilitar cgi
para fazer efeito, você precisa reiniciar o servidor apache
Eu queria um diretório personalizado para meus scripts cgi, então criei um diretório em / var / www / html / chamado flood-cgi
para habilitar este diretório eu tive que fazer o arquivo conf digitando
sudo nano /etc/apache2/conf-available/flood-cgi.conf
e adicionando comandos como mostrado na imagem
em seguida, habilite este diretório digitando
var / www / html $ sudo a2enconf flood-cgi
agora você pode reiniciar seu servidor apache novamente e todos os cgi desta pasta serão lidos pelo apache após a permissão.
Etapa 5: configurar a página da web
Para este serviço web simples, estou usando HTML, Javascript, CSS, jquery e ajax.
Eu tenho cinco rótulos de controle que são clicáveis, No caso de clicar para tirar uma foto da página da web, ele irá acionar a função de clique do botão de foto e esta função se parece com esta
$ ("# photobutton"). click (function () {var floodDate = new Date ();
var floodImageName = "Flood_IMG_" + floodDate.toLocaleTimeString ();
$.ajax ({
url: 'flood-cgi / flood_cgi.py', método: 'post', dados: {name_for_image: floodImageName}, sucesso: função (dados) {
alerta (dados, status)
$ ("# recentpic"). attr ("src", "flood-cgi /" + floodImageName + ".jpg");
}
})
});
isso chamará o script flood_cgi.py para tirar a foto e salvar a imagem com o nome personalizado gerado pela data e hora atuais e o ajax carrega até a página.
em caso de alarme, podemos usar esta função
function callAlarm (alarmType) {
$.ajax ({
url: 'flood-cgi / alarm.cgi', método: 'post', dados: {alarm_type: alarmType}, sucesso: função (dados) {alerta (dados)
}, erro: função (XMLHttpRequest, textStatus, throwError) {alert (throwError)}});
}
a função callAlarm será chamada quando o rótulo da campainha for clicado, $ ("# buzzer"). click (function () {callAlarm ("test");
})
o código abaixo é quando você deseja clicar em inundação simulada, ou seja, chamar a API de partículas e chamar a função, alterar o valor líquido 1 e verificar se o sistema está funcionando conforme o esperado, conduzindo um evento de inundação simulada
$ ("# mockFlood"). click (function () {console.log ("simulação de inundação solicitada");
var floodVal = 1;
$ ("# signal2"). css ("font-size", "small");
var varName = "isFloodPresent";
var deviceID = "ID DO SEU DISPOSITIVO";
var accessToken = "SEU TOKEN DE ACESSO";
if (floodVal) {
$.post ("https://api.particle.io/v1/devices/" + deviceID + "/ liquid? access_token =" + accessToken, {liquid: floodVal}, função (dados, status) {
if (status == "sucesso") {
alerta ("Mock Flood conduziu !!!");
} outro {
alert ("Desculpe, ocorreu um problema");
}
});
}
});
Estas são as funções principais de que você precisa para fazer a conexão com o Particle Api e o seu raspberry para que o seu pi do raspberry e o dispositivo de partículas Argon possam se comunicar.
observação: eu queria fazer upload de todo o código, mas não me permite fazer upload do arquivo.html
Etapa 6: Criar script para câmera Raspi
estamos criando.py simples para capturar imagem e que terá anotação de data e hora atuais nele.
em seguida, criaremos o script cgi flood_cgi.py para que ele seja chamado da web e comande o arquivo.py para tirar a foto.
certifique-se de iniciar o script cgi com #! / usr / bin / env python
e também dê permissão ao apache para executar esses arquivos.
O servidor apache é executado em dados www do usuário, portanto, uma vez que criamos o arquivo.py ou.cgi, o apache precisa ser o proprietário do arquivo
sudo chown pi: www-data flood-cgi.py
e dar permissão para executar
sudo chmod a + x flood-cgi.py
você terá que fazer isso para todos os arquivos que precisam ser executados no servidor apache.
NOTA: expor seu raspberry à internet e dar todas essas permissões torna seu raspberry muito vulnerável por razões de segurança, portanto, usuários e permissões estritas devem ser seguidos e instalar um firewall como um firewall simples (ufw)
Recomendado:
Como fazer uma campainha sem toque, detecção de temperatura corporal, GY-906, 433 MHz usando Arduino: 3 etapas
Como fazer uma campainha sem toque, detecção da temperatura corporal, GY-906, 433 MHz usando o Arduino: Hoje faremos uma campainha sem toque, ela detectará a temperatura do seu corpo. Na situação atual, é muito importante saber se a temperatura corporal de alguém está mais alta do que o normal, quando alguém está chocando. Este projeto mostrará luz vermelha se detectar alguma
Sistema de alarme por SMS com detecção de movimento DIY: 5 etapas (com imagens)
DIY Motion Detection SMS Alarm System: Neste projeto combinarei um sensor de movimento PIR barato com um módulo TC35 GSM para construir um sistema de alarme que envia a você um " ALERTA DE INTRUSÃO " Envie SMS sempre que alguém tentar roubar suas coisas. Vamos começar
Sistema de alarme de detecção de gás Arduino: 6 etapas
Sistema de alarme de detecção de gás Arduino: Olá a todos! Agora, vou explicar como construir um sistema de alarme de detecção de gás Arduino no tinkercad. Este circuito usa o sensor de gás para detectar se há fogo, fumaça ou vazamento de gás nas proximidades. Usando o LCD e o alarme, este circuito também
Tutorial: Como fazer alarme de porta usando alarme de sensor de chave magnética MC-18: 3 etapas
Tutorial: Como fazer alarme de porta usando alarme de sensor de chave magnética MC-18: Oi pessoal, vou fazer um tutorial sobre o alarme de sensor de chave magnética MC-18 que opera no modo normalmente fechado. Mas primeiro, deixe-me explicar a vocês em suma, o que significa normalmente perto. Existem dois tipos de modo, normalmente aberto e normalmente fechado
Alarme de inundação de subsolo de energia ultrabaixa com ESP8266: 3 etapas
Alarme de inundação de porão de energia ultrabaixa com ESP8266: Olá, bem-vindo ao meu primeiro instructable. O porão da minha casa fica inundado a cada poucos anos por vários motivos, como fortes tempestades de verão, lençol freático alto ou até mesmo o estouro de um cano. Embora não seja um lugar legal, mas meu aquecimento central b