Tabla de contenido:
- Suministros
- Paso 1: conecte el sensor de agua a la partícula
- Paso 2: conecte la fuente de alarma a la frambuesa
- Paso 3: configurar el servidor Apache
- Paso 4: habilite CGI en Apache
- Paso 5: configurar la página web
- Paso 6: Cree un script para la cámara Raspi
Video: Cómo hacer un sistema de alarma de detección de inundaciones inteligente usando Raspberry Pi y partículas de argón: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Tener sensores de inundación estándar es excelente para evitar daños masivos en su hogar o lugar de trabajo.
Pero resulta difícil si no está en casa para atender la alarma.
Por supuesto que podrías comprar esos inteligentes
Este sistema de alarma de inundación detecta cualquier líquido y activa la alarma y actualiza la página web sobre inundaciones a la que se puede acceder desde cualquier parte del mundo, ya sea que esté de vacaciones relajantes o simplemente en el trabajo y desee conocer el estado de su casa.
Suministros
Raspberry pi (estoy usando el modelo 3 B +) ejecutando raspbian
Partícula de argón
Sensor de agua Grove
Cámara Raspi
Zumbador
Cables de puente
Paso 1: conecte el sensor de agua a la partícula
El sensor de agua tiene 4 pines, que son GND, VCC, NC y SIG y vamos a usar solo tres de ellos
Estoy conectando el pin SIG a D2 en Argon.
Ahora, puede iniciar Particle Web IDE para escribir el código y actualizar a Argon
Así que registramos la función Particle liquid y definimos una variable isFloodPresent, que se puede llamar desde Particle Console y obtener el valor booleano de isFloodPresent y también llamar a la función liquid para una prueba simulada que toma el valor 1 como entrada, lo que significa verdadero para la inundación (agua) presente.
asegúrese de poder ver esa función y variable desde la Consola de partículas de su Dispositivo de partículas.
Paso 2: conecte la fuente de alarma a la frambuesa
En la placa de pruebas puede conectar Buzzer al pin GPIO de Raspberry
He conectado el extremo más pequeño del zumbador a GND (PIN 6) y el extremo más largo al pin 7 en frambuesa.
Ahora ejecute el código para ver. Necesitaremos que este archivo Python se esté ejecutando todo el tiempo para que pueda recibir los desencadenantes del servidor web y responder en consecuencia.
Alternativamente, puede ejecutar este archivo al inicio en su frambuesa, lo que puede hacer editando / etc / systemd
y este archivo se colocará en la carpeta cgi de su servidor apache, Hice un nuevo directorio flood-cgi dentro de / var / www / html / y coloqué este archivo.py que se comunicará con mi script cgi
Paso 3: configurar el servidor Apache
puede instalar el servidor apache escribiendo sudo apt-get install apache2
cuando está instalado, puede verificar escribiendo hostname -I
y obtendrá su dirección IP local y puede dirigirse a su navegador y debería ver el servidor en ejecución
Paso 4: habilite CGI en Apache
puede habilitar cgi escribiendo sudo a2enmod cgi
Por defecto, cgi_bin de apache se encuentra en / usr / lib / cgi-bin
aquí es donde puede poner sus scripts cgi después de habilitar cgi
para que surta efecto, debe reiniciar el servidor apache
Quería un directorio personalizado para mis scripts cgi, así que creé un directorio en / var / www / html / llamado flood-cgi
para habilitar este directorio tuve que hacer un archivo conf escribiendo
sudo nano /etc/apache2/conf-available/flood-cgi.conf
y agregando comandos como se muestra en la captura de pantalla
luego habilite este directorio escribiendo
var / www / html $ sudo a2enconf flood-cgi
ahora puede reiniciar su servidor apache nuevamente y todos los cgi de esta carpeta serán legibles por apache después del permiso.
Paso 5: configurar la página web
Para este simple servicio web, estoy usando HTML, Javascript, CSS, jquery y ajax.
Tengo cinco etiquetas de control en las que se puede hacer clic
En el caso de que se haga clic en tomar una foto desde la página web, se activará la función de clic en el botón de la foto y esta función se verá así
$ ("# photobutton"). click (function () {var floodDate = new Date ();
var floodImageName = "Flood_IMG_" + floodDate.toLocaleTimeString ();
$.ajax ({
url: 'flood-cgi / flood_cgi.py', método: 'publicar', datos: {name_for_image: floodImageName}, éxito: función (datos) {
alerta (datos, estado)
$ ("# recientepic"). attr ("src", "flood-cgi /" + floodImageName + ".jpg");
}
})
});
esto llamará a la secuencia de comandos flood_cgi.py para tomar una foto y guardar la imagen con un nombre personalizado generado por la fecha y hora actuales y ajax se carga en la página.
en caso de alarma, podemos utilizar esta función
function callAlarm (alarmType) {
$.ajax ({
url: 'flood-cgi / alarm.cgi', método: 'publicar', datos: {alarm_type: alarmType}, éxito: función (datos) {alerta (datos)
}, error: function (XMLHttpRequest, textStatus, throwError) {alert (throwError)}});
}
la función callAlarm se llamará cuando se haga clic en la etiqueta del zumbador, $ ("# buzzer"). click (function () {callAlarm ("prueba");
})
el código siguiente es cuando desea hacer clic en inundación simulada, es decir, llamar a la API de partículas y llamar a la función y cambiar el valor líquido 1 y verificar el sistema si todo funciona como se espera mediante la realización de un evento de inundación simulada
$ ("# mockFlood"). click (function () {console.log ("simulacro de inundación ha solicitado");
var floodVal = 1;
$ ("# señal2"). css ("tamaño de fuente", "pequeño");
var varName = "isFloodPresent";
var deviceID = "SU ID DE DISPOSITIVO";
var accessToken = "SU TOKEN DE ACCESO";
if (floodVal) {
$.post ("https://api.particle.io/v1/devices/" + ID de dispositivo + "/ liquid? access_token =" + accessToken, {liquid: floodVal}, función (datos, estado) {
si (estado == "éxito") {
alert ("¡¡¡Se ha producido una inundación simulada !!!");
} demás {
alert ("Lo siento, hubo un problema");
}
});
}
});
Estas son las funciones principales que necesita para conectarse con Particle Api y su raspberry para que su raspberry pi y el dispositivo de partículas Argon puedan comunicarse.
nota: quería cargar todo el código, pero no me permite cargar el archivo.html
Paso 6: Cree un script para la cámara Raspi
estamos creando.py simple para capturar la imagen y que tendrá una anotación de la fecha y hora actuales.
luego crearemos el script cgi flood_cgi.py para que sea llamado desde la web y este ordenará el archivo.py para tomar una foto.
asegúrese de iniciar el script cgi con #! / usr / bin / env python
y también otorgue permiso a Apache para ejecutar estos archivos.
El servidor apache se ejecuta en los datos www del usuario, por lo que una vez que creamos el archivo.py o.cgi, apache debe ser el propietario del archivo.
sudo chown pi: www-data flood-cgi.py
y dar permiso para ejecutar
sudo chmod a + x flood-cgi.py
tendrá que hacer esto para todos los archivos que deben ejecutarse desde el servidor apache.
NOTA: exponer su frambuesa a Internet y otorgar todos estos permisos hace que su frambuesa sea muy vulnerable por razones de seguridad, por lo que debe seguir un usuario y permisos estrictos e instalar un firewall como un firewall sin complicaciones (ufw)
Recomendado:
Cómo hacer un timbre no táctil, detección de temperatura corporal, GY-906, 433MHz usando Arduino: 3 pasos
Cómo hacer un timbre no táctil, detección de temperatura corporal, GY-906, 433MHz usando Arduino: Hoy haremos un timbre no táctil, detectará la temperatura de su cuerpo. En la situación actual, es muy importante saber si la temperatura corporal de alguien es más alta de lo normal, cuando alguien está kocking. Este proyecto mostrará una luz roja si detecta alguna
Sistema de alarma SMS de detección de movimiento de bricolaje: 5 pasos (con imágenes)
Sistema de alarma SMS de detección de movimiento de bricolaje: En este proyecto, combinaré un sensor de movimiento PIR barato con un módulo GSM TC35 para construir un sistema de alarma que le envíe una " ALERTA DE INTRUSO " Envía SMS cada vez que alguien intenta robar tus cosas. Empecemos
Sistema de alarma de detección de gas Arduino: 6 pasos
Sistema de alarma de detección de gas Arduino: ¡Hola a todos! En este momento, explicaré cómo construir un sistema de alarma de detección de gas Arduino en tinkercad. Este circuito usa el sensor de gas para detectar si hay fuego, humo o una fuga de gas cerca. Usando la pantalla LCD y la alarma, este circuito también
Cómo hacer un dron usando Arduino UNO »Wiki Ùtil Hacer un cuadricóptero usando un microcontrolador: 8 pasos (con imágenes)
Cómo hacer un dron usando Arduino UNO »Wiki Ùtil Hacer un cuadricóptero usando un microcontrolador: Introducción Visite mi canal de Youtube Un dron es un dispositivo (producto) muy caro de comprar. En este post voy a discutir, ¿cómo lo hago a bajo precio? ¿Y cómo puedes hacer el tuyo así a un precio económico? Bueno, en la India todos los materiales (motores, ESC
Tutorial: Cómo hacer una alarma de puerta usando la alarma de sensor de interruptor magnético MC-18: 3 pasos
Tutorial: Cómo hacer una alarma de puerta usando la alarma de sensor de interruptor magnético MC-18: Hola chicos, voy a hacer un tutorial sobre la alarma de sensor de interruptor magnético MC-18 que funciona en modo normalmente cerrado. Pero primero, déjenme explicarles en resumen, lo que se entiende por normalmente cerrado. Hay dos tipos de modo, normalmente abierto y normalmente cerrado