Tabla de contenido:
- Paso 1: el experimento
- Paso 2: hardware
- Paso 3: Google Cloud - Registro
- Paso 4: Google Cloud - Pub / Sub
- Paso 5: Google Cloud - IOT Core
- Paso 6: Google Cloud - Funciones de la nube
- Paso 7: Google Cloud - Cloud DataStore
- Paso 8: Google Cloud - BigQuery
- Paso 9: Google Cloud - Data Studio
- Paso 10: Fase de predicción
- Paso 11: Código
Video: Detector de obstrucciones de drenaje: 11 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
¡No dejes que un desagüe obstruido te frene! Al regresar de nuestras vacaciones, mi esposa y yo nos sorprendió el agua que cubría el piso de nuestro apartamento, y descubrimos que ni siquiera es agua limpia, hay desagües por todas partes. Después de limpiar el desagüe y limpiar el piso, tuve esta pregunta: ¿por qué no tenemos un sistema de alarma para posibles obstrucciones en el desagüe? Los desagües obstruidos no solo pueden detener su hogar, sino que también consumirán costos adicionales de sus bolsillos, $ 206 en promedio es el costo de limpiar un desagüe obstruido según HomeAdvisor, además de los costos ocultos de alfombras dañadas, muebles de madera, … etc. Nuestra idea es permitir que tanto los propietarios de viviendas como las empresas como los departamentos de mantenimiento de la ciudad / complejos y los proveedores de servicios especializados tengan un sistema eficiente e inteligente que alerta a los responsables lo antes posible para que tomen medidas, lo que contribuye a enriquecer las ciudades inteligentes con un importante característica.
La idea Aunque la detección de obstrucciones se puede hacer a través de una serie de técnicas, como el uso de sensores de gas o mecanismos internos, nuestro equipo se centró en utilizar el sonido como entrada, ya que sabemos que golpear un tubo donde está abierto es un sonido diferente al que sucedió. cuando está cerrado. De acuerdo con este concepto simple, si podemos entrenar a un modelo los patrones de sonido que ocurren en la superficie del tubo durante las obstrucciones, así como esos patrones ocurren en las tuberías abiertas, entonces podemos aplicar el modelo para detectar de manera proactiva cuando una obstrucción comienza a componerse, y luego suenan algunas facturas.
Créditos para
- Mohamed Hassan
- Ahmed Emam
Proyecto en detalle En este proyecto se implementan 3 fases: Recopilación de datos, Aprendizaje y predicción.
Antes de aplicar este sistema en la vida real, necesitábamos crear un entorno de simulación forzado, donde tenemos la tubería, el agua que fluye y de alguna manera simular la obstrucción. Entonces, obtuvimos un tubo, una manguera de agua con una fuente de agua que hizo esto en la bañera y usamos la superficie de la bañera para cerrar el tubo que representa la obstrucción. En este video, explicamos cómo construimos el entorno y cómo recopilamos datos para el entrenamiento del modelo.
Y en este siguiente video, mostrando cómo hicimos las pruebas para el sistema y el modelo, en modo abierto, luego en modo atascado y de regreso al modo abierto, sin embargo
Entonces, exploremos nuestra implementación paso a paso:
Paso 1: el experimento
En este escenario utilizamos una pequeña tubería de agua conectada a nuestro hardware y sensor de sonido. El hardware lee el valor del sensor y lo envía de vuelta a la nube. Esto se ha hecho durante 10 minutos para el tubo bloqueado y luego otros 10 minutos para el tubo que no está bloqueado.
Paso 2: hardware
Yo- Arduino
Para detectar el sonido del agua dentro de la tubería necesitamos un sensor de sonido. Sin embargo, Raspberry Pi 3 no tiene GPIO analógico. Para manejar este problema usamos Arduino ya que Arduino tiene GPIO analógico. Entonces conectamos el sensor Grove Sound al escudo Grove Arduino y conectamos Shield al Arduino UNO 3. Luego conectamos Arduino y Raspberry usando un cable USB. Para obtener más información sobre el sensor Grove Sound, puede consultar su ficha técnica. Puede encontrar en la hoja de datos un código de muestra sobre cómo leer los valores del sensor. El código de muestra casi se usa con pequeños cambios. En el siguiente código, conectamos el sensor a A0 en el escudo. Para escribir en serie, usamos la función Serial.begin (). Para comunicarse con Raspberry, la velocidad en baudios establecida en 115200 se enviará a Raspberry si es mayor que cierto umbral para cortar el ruido. Se han realizado muchas pruebas para elegir los valores de umbral y retardo deseados. Se encontró que el umbral es 400 y el valor de retardo es 10 milisegundos. Se ha elegido Threshold para filtrar el ruido normal y garantizar que solo se envíen datos significativos a la nube. Se ha elegido el retardo para garantizar que el sensor detecte inmediatamente cualquier cambio en el sonido del flujo dentro del tubo.
II- Raspberry Pi 3 Para descargar cosas de Android en Raspberry, puede descargar la última versión desde la consola de Android Things. En este proyecto usamos la versión: OIR1.170720.017. siga los pasos en el sitio de Raspberry para instalar el sistema operativo en Raspberry, para Windows puede usar estos pasos Después de la instalación, puede conectar el Raspberry a su computadora usando USB. Luego, en la consola de su computadora, use el siguiente comando para obtener la IP de Raspberry
nmap -sn 192.168.1. *
Después de obtener la IP, conéctese a su Raspberry usando el siguiente comando
adb connect
Para conectar su Raspberry a Wifi (agregue su SSID y contraseña)
adb am startservice
-n com.google.wifisetup /. WifiSetupService
-a WifiSetupService. Connect
-e ssid *****
-e contraseña ****
Paso 3: Google Cloud - Registro
Google ofrece un nivel gratuito para todos los usuarios durante un año con un límite máximo de 300 $, gracias a Google:). Siga las pantallas para crear un nuevo proyecto en Google Cloud
Paso 4: Google Cloud - Pub / Sub
Google Cloud Pub / Sub es un servicio de mensajería en tiempo real totalmente administrado que te permite enviar y recibir mensajes entre aplicaciones independientes.
Paso 5: Google Cloud - IOT Core
II- IOT Core Un servicio completamente administrado para conectar, administrar e ingerir datos de manera fácil y segura desde dispositivos dispersos por todo el mundo. IOT Core sigue siendo Beta, para tener acceso a él, debe realizar una solicitud con Justificación a Google. Hicimos la solicitud, nuestra justificación fue este concurso. Google aprobado, gracias de nuevo a Google:). Raspberry enviará los datos del sensor a IOT Core, que enviará las lecturas al tema de PubSub creado en el paso anterior.
Paso 6: Google Cloud - Funciones de la nube
Cloud Functions es un entorno sin servidor para crear y conectar servicios en la nube. El desencadenante de esta función es el tema PubSup que se creó en el paso 1.;; Esta función se activará cuando se escriba un nuevo valor en PubSup y se escriba en Cloud DataStore con el tipo "SoundValue"
Paso 7: Google Cloud - Cloud DataStore
Google Cloud Datastore es una base de datos de documentos NoSQL creada para el escalado automático, alto rendimiento y facilidad de desarrollo de aplicaciones. Si bien la interfaz de Cloud Datastore tiene muchas de las mismas características que las bases de datos tradicionales, como base de datos NoSQL se diferencia de ellas en la forma en que describe las relaciones entre los objetos de datos. No es necesario realizar ninguna configuración, ya que una vez que Cloud Functions escribe los valores del sensor en DataStore, los datos se agregarán a DataStore
Paso 8: Google Cloud - BigQuery
Recopilamos una muestra de 10 minutos de tubería normal y 10 minutos de tubería bloqueada con una diferencia de exactamente 1 hora entre las 2 iteraciones. Después de descargar los datos de DataStore y realizar alguna manipulación para agregar clasificación para cada fila. Ahora tenemos 2 archivos csv, uno para cada categoría. Como práctica recomendada, suba primero los archivos CSV de datos a Cloud Storage. En la siguiente pantalla, creamos un nuevo depósito y cargamos los 2 archivos CSV, ya que este depósito se utilizará solo para análisis, no es necesario elegir un depósito multirregional. Luego, cree un nuevo conjunto de datos y una nueva tabla en BigQuery y suba el archivo de 2 CSV del depósito a la nueva mesa
Paso 9: Google Cloud - Data Studio
Luego usamos Data Studio para extraer algunas ideas. Data Studio leerá datos de la tabla de BigQuery. En los gráficos podemos ver la diferencia entre 2 categorías en número de telemetrías y suma de valores por minuto. Con base en estos conocimientos, podemos diseñar un modelo simple, la tubería se considera bloqueada si en 3 minutos sucesivos, el recuento de valores de telemetrías que son superiores al umbral de ruido (400) supera las 350 telemetrías. y en 3 minutos sucesivos, el valor de recuento de telemetrías superior al umbral de chispa (720) es superior a 10 telemetrías.
Paso 10: Fase de predicción
Nos referimos a una lectura, cuando supera un cierto valor (THRESHOLD_VALUE) que se estableció en 350 que filtra el ruido y menores caudales de agua en el tubo, de ser considerado como lectura
El análisis de datos mostró que en el modo abierto el número de lecturas es inferior a 100, pero en el modo de obstrucción, los valores son mucho más altos (llegaron a 900 por minuto), pero en casos raros también fueron menos de 100. Sin embargo, estos casos no se repiten en consecuencia, y durante tres minutos consecutivos, el número total de lecturas siempre excedió las 350. Tener el modo abierto en los mismos tres minutos sumará menos de 300, podríamos poner con confianza esta regla: Regla # 1 Para tres minutos en bruto, si las lecturas totales > 350, se detecta una obstrucción. Encontramos que el valor máximo alcanzado en modo abierto no excede un cierto valor (SPARK_VALUE) que se encuentra en 770, por lo que agregamos esta regla: Regla # 2 Si el valor de lectura> 350, entonces la mayoría de las veces se detecta una obstrucción.
La combinación de ambas reglas nos brindó una manera fácil de implementar la lógica de detección, como se muestra. Tenga en cuenta que el siguiente código se implementó en Arduino, que luego evalúa las telemetrías recibidas en función de nuestro modelo y se envía a raspberry si la tubería está obstruida o abierta.
Paso 11: Código
Todo el código para Arduino, Raspberry y Cloud Function se puede encontrar en Github.
Para más información puede consultar este enlace.
Recomendado:
Detector de nivel de máquina de coque - ¡Ahora con voz !: 6 pasos (con imágenes)
Detector de nivel de máquina de coque - ¡Ahora con voz !: Este proyecto es una remezcla de mi detector de nivel de lata de máquina de coque, (https://www.instructables.com/id/Coke-Machine-Can-Level-Detector/) con nuevos sensores ¡y la adición de sonido hablado! Después de que hice mi primer detector de nivel, agregué un zumbador piezoeléctrico a g
Cómo desmontar una computadora con sencillos pasos e imágenes: 13 pasos (con imágenes)
Cómo desmontar una computadora con sencillos pasos e imágenes: esta es una instrucción sobre cómo desmontar una PC. La mayoría de los componentes básicos son modulares y se quitan fácilmente. Sin embargo, es importante que se organice al respecto. Esto ayudará a evitar que pierda piezas y también a que el reensamblaje sea más fácil
Detector de humo IOT: actualice el detector de humo existente con IOT: 6 pasos (con imágenes)
Detector de humo IOT: Actualización del detector de humo existente con IOT: Lista de contribuyentes, Inventor: Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Supervisor: Dr. Chia Kim Seng Departamento de Ingeniería Mecatrónica y Robótica, Facultad de Ingeniería Eléctrica y Electrónica, Universiti Tun Hussein Onn Malaysia.Distribut
¡Drenaje de batería de infrarrojos Thumb-Pop !: 6 pasos
¡Escurridor de batería de infrarrojos Thumb-Pop! Además, esto es IR (infrarrojos), por lo que puede tenerlo encendido por la noche y no le impedirá dormir. (PD: Perdón por las fotos)
Detector de movimiento con notificaciones Blynk (WeMos D1 Mini + HC-SR04): 4 pasos (con imágenes)
Detector de movimiento con notificaciones Blynk (WeMos D1 Mini + HC-SR04): VOTE por este proyecto en el Concurso inalámbrico. ¡Gracias! Actualización n. ° 2: pocos ajustes (versión 2.2), puede configurar su sensor (rango y nombre) directamente en la definición. Además, a veces sucedió que el sensor leyó valores incorrectos y envió una notificación