Table des matières:

Détecteur de bouchons de vidange : 11 étapes (avec photos)
Détecteur de bouchons de vidange : 11 étapes (avec photos)

Vidéo: Détecteur de bouchons de vidange : 11 étapes (avec photos)

Vidéo: Détecteur de bouchons de vidange : 11 étapes (avec photos)
Vidéo: COMMENT VIDANGER VOTRE CLIMATISEUR ? 2024, Novembre
Anonim
Image
Image

Ne laissez pas un drain bouché vous ralentir ! En revenant de nos vacances, ma femme et moi avons été surpris par l'eau recouvrant le sol de notre appartement, et nous avons découvert que ce n'était même pas de l'eau propre, c'est drainé partout. Après avoir nettoyé le drain et nettoyé le sol, je me suis posé cette question: pourquoi n'avons-nous pas un système d'alarme pour les éventuels bouchons de drain ? Les drains bouchés peuvent non seulement arrêter votre maison, mais consommeront des coûts supplémentaires de vos poches, 206 $ en moyenne sont le coût de nettoyage d'un drain bouché selon HomeAdvisor, en plus des coûts cachés des tapis endommagés, des meubles en bois, … etc. Notre idée est de permettre aux propriétaires ainsi qu'aux entreprises comme les services d'entretien des villes/complexes et les prestataires de services spécialisés de disposer d'un système efficace et intelligent qui alerte le plus tôt possible le responsable pour agir, ce qui contribue à enrichir les villes intelligentes d'un important caractéristique.

L'idéeBien que la détection des sabots puisse être effectuée grâce à un certain nombre de techniques, comme l'utilisation de capteurs de gaz ou de mécanismes internes, notre équipe s'est concentrée sur l'utilisation du son comme entrée, car nous savons que frapper sur un tube où il est ouvert est un son différent de celui qui s'est produit. lorsqu'il est fermé. Selon ce concept simple, si nous pouvons entraîner un modèle les modèles sonores se produisant sur la surface du tube pendant les sabots ainsi que ces modèles se produisent dans les tuyaux ouverts, nous pouvons alors appliquer le modèle pour détecter de manière proactive quand un sabot commence à composer, et nous sonner des factures.

Crédits pour

  • Mohamed Hassan
  • Ahmed Emam

Projet en détail3 phases sont mises en œuvre dans ce projet: Collecte de données, Apprentissage & prédiction.

Avant d'appliquer ce système dans la vraie vie, nous devions créer un environnement de simulation forcé, où nous avons le tuyau, l'eau qui coule et, d'une manière ou d'une autre, simuler le bouchon. Donc, nous avons un tube, un tuyau d'arrosage avec une source d'eau faisant cela dans la baignoire, et utilisant la surface de la baignoire pour fermer le tube qui représente le bouchon. Dans cette vidéo, nous expliquons comment nous avons construit l'environnement et comment nous avons collecté des données pour la formation du modèle.

Et dans cette vidéo suivante, montrant comment nous avons fait les tests pour le système et le modèle, en mode ouvert, puis en mode sabot et de retour en mode ouvert, cependant

Alors, explorons notre implémentation étape par étape:

Étape 1: L'expérience

L'expérience
L'expérience
L'expérience
L'expérience
L'expérience
L'expérience
L'expérience
L'expérience

Dans ce scénario, nous utilisons une petite conduite d'eau connectée à notre matériel et à notre capteur sonore. Le matériel lit la valeur du capteur et la renvoie au Cloud. Cela a été fait pendant 10 min pour le tube bouché puis encore 10 min pour le tube qui n'est pas bouché.

Étape 2: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

I-Arduino

Pour détecter le bruit de l'eau à l'intérieur du tuyau, nous avons besoin d'un capteur de son. Cependant, Raspberry Pi 3 n'a pas de GPIO analogique. Pour gérer ce problème, nous utilisons Arduino car Arduino a un GPIO analogique. Nous connectons donc le capteur Grove Sound au blindage Grove Arduino et connectons le blindage à l'Arduino UNO 3. Ensuite, nous connectons Arduino et Raspberry à l'aide d'un câble USB. Pour obtenir plus d'informations sur le capteur Grove Sound, vous pouvez consulter sa fiche technique. Vous pouvez trouver dans la fiche technique un exemple de code pour lire les valeurs des capteurs. L'exemple de code est presque utilisé avec de petits changements. Dans le code ci-dessous, nous connectons le capteur à A0 dans le blindage. Pour écrire en série, nous utilisons la fonction Serial.begin(). Pour communiquer avec Raspberry, le débit en bauds est défini sur 115200. Les données seront envoyées au Raspberry s'il est supérieur à un certain seuil pour réduire le bruit. De nombreux essais ont été effectués pour choisir les valeurs de seuil et de délai souhaitées. Le seuil trouvé est de 400 et la valeur du délai est de 10 millisecondes. Le seuil a été choisi pour filtrer le bruit normal et garantir que seules les données significatives seront envoyées au cloud. Le délai a été choisi pour garantir que le capteur détecte immédiatement tout changement dans le son du débit à l'intérieur du tube.

II- Raspberry Pi 3Pour télécharger des objets Android sur Raspberry, vous pouvez télécharger la dernière version depuis Android Things Console. Dans ce projet nous utilisons la version: OIR1.170720.017. suivez les étapes du site Raspberry pour installer le système d'exploitation sur Raspberry, pour Windows, vous pouvez utiliser ces étapes Après l'installation, vous pouvez connecter le Raspberry à votre ordinateur via USB. Ensuite, dans la console de votre ordinateur, utilisez la commande ci-dessous pour obtenir Raspberry IP

nmap -sn 192.168.1.*

Après avoir obtenu l'IP, connectez-vous à votre Raspberry en utilisant la commande ci-dessous

adb se connecter

Pour connecter votre Raspberry au Wifi (ajoutez votre SSID & mot de passe)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-e ssid *****

-e mot de passe ****

Étape 3: Google Cloud - Inscription

Google Cloud - Inscription
Google Cloud - Inscription
Google Cloud - Inscription
Google Cloud - Inscription
Google Cloud - Inscription
Google Cloud - Inscription
Google Cloud - Inscription
Google Cloud - Inscription

Google offre un niveau gratuit pour tous les utilisateurs pendant un an avec un plafond de 300$, Merci à Google:). Suivez les écrans pour créer un nouveau projet dans Google Cloud

Étape 4: Google Cloud – Pub/Sub

Google Cloud – Pub/Sub
Google Cloud – Pub/Sub
Google Cloud – Pub/Sub
Google Cloud – Pub/Sub
Google Cloud – Pub/Sub
Google Cloud – Pub/Sub
Google Cloud – Pub/Sub
Google Cloud – Pub/Sub

Google Cloud Pub/Sub est un service de messagerie en temps réel entièrement géré qui vous permet d'envoyer et de recevoir des messages entre des applications indépendantes.

Étape 5: Google Cloud - IOT Core

Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core

II- Service entièrement géré IOT CoreA pour connecter, gérer et ingérer facilement et en toute sécurité des données à partir d'appareils dispersés dans le monde. IOT Core encore bêta, pour y avoir accès, vous devez faire une demande avec Justification à Google. Nous avons fait la demande, notre justification était ce concours. Approuvé par Google, merci encore à Google:). Raspberry enverra les données du capteur à IOT Core qui transmettra les lectures au sujet PubSub créé à l'étape précédente

Étape 6: Google Cloud – Fonctions cloud

Google Cloud – Fonctions cloud
Google Cloud – Fonctions cloud
Google Cloud – Fonctions cloud
Google Cloud – Fonctions cloud

Cloud Functions est un environnement sans serveur pour créer et connecter des services cloud. Le déclencheur de cette fonction est le sujet PubSup créé à l'étape 1.;; Cette fonction sera déclenchée lorsqu'une nouvelle valeur sera écrite dans PubSup et l'écrira dans Cloud DataStore avec Kind "SoundValue"

Étape 7: Google Cloud - Cloud DataStore

Google Cloud Datastore est une base de données de documents NoSQL conçue pour une mise à l'échelle automatique, des performances élevées et une facilité de développement d'applications. Bien que l'interface Cloud Datastore présente bon nombre des mêmes fonctionnalités que les bases de données traditionnelles, en tant que base de données NoSQL, elle en diffère par la manière dont elle décrit les relations entre les objets de données. Aucune configuration nécessaire, car une fois que les fonctions Cloud écrivent les valeurs des capteurs dans DataStore, les données seront ajoutées à DataStore

Étape 8: Google Cloud – BigQuery

Google Cloud – BigQuery
Google Cloud – BigQuery
Google Cloud – BigQuery
Google Cloud – BigQuery
Google Cloud – BigQuery
Google Cloud – BigQuery
Google Cloud – BigQuery
Google Cloud – BigQuery

Nous recueillons un échantillon à 10 min du tuyau normal et à 10 min du tuyau bloqué avec une différence d'exactement 1 heure entre les 2 itérations. Après avoir téléchargé les données DataStore et faire quelques manipulations pour ajouter une classification pour chaque ligne. Nous avons maintenant 2 fichiers csv, un pour chaque catégorie. Comme bonne pratique, importez d'abord les fichiers CSV de données dans Cloud Storage. Dans l'écran ci-dessous, nous créons un nouveau compartiment et téléchargeons les 2 fichiers CSV Comme ce compartiment ne sera utilisé qu'à des fins d'analyse, il n'est pas nécessaire de choisir un compartiment multirégional. Créez ensuite un nouvel ensemble de données et une nouvelle table dans BigQuery et téléchargez les 2 fichiers CSV du compartiment vers le nouveau tableau

Étape 9: Google Cloud - Data Studio

Google Cloud – Studio de données
Google Cloud – Studio de données
Google Cloud – Studio de données
Google Cloud – Studio de données
Google Cloud – Studio de données
Google Cloud – Studio de données

Ensuite, nous utilisons Data Studio pour obtenir des informations. Data Studio lira les données de la table BigQuery. A partir de graphiques, nous pouvons voir la différence entre 2 catégories en nombre de télémétries et somme de valeurs par minute. Sur la base de ces informations, nous pouvons concevoir un modèle simple, un tuyau est considéré comme bloqué si, dans 3 minutes consécutives, le nombre de valeurs de télémétrie supérieures au seuil de bruit (400) est supérieur à 350 télémétries. et en 3 minutes successives, le nombre de valeurs de télémétries supérieures au seuil d'étincelle (720) est supérieur à 10 télémétries.

Étape 10: Phase de prédiction

Phase de prédiction
Phase de prédiction

Nous nous référons à une lecture, lorsqu'elle dépasse une certaine valeur (THRESHOLD_VALUE) qui a été fixée à 350 qui filtre le bruit et les débits d'eau inférieurs dans le tube, d'être considérée comme une lecture

L'analyse des données a montré qu'en mode ouvert, le nombre de lectures est inférieur à 100, mais en mode obstrué, les valeurs sont bien plus élevées (atteignent 900 par minute), mais dans de rares cas, elles étaient également inférieures à 100. Cependant, ces cas ne se répètent pas en conséquence., et pour trois minutes consécutives, le nombre total de lectures a toujours dépassé 350. Avoir le mode ouvert dans les mêmes trois minutes totalisera moins de 300, nous pourrions mettre en toute confiance cette règle: Règle n ° 1 Pendant trois minutes en bloc, si les lectures totales > 350, alors un colmatage est détecté. Nous avons trouvé que la valeur maximale atteinte en mode ouvert ne dépasse pas une certaine valeur (SPARK_VALUE) qui est de 770, nous avons donc ajouté cette règle: Règle n°2 Si la valeur de lecture > 350, alors un sabot est principalement détecté.

La combinaison des deux règles nous a permis d'implémenter facilement la logique de détection, comme indiqué. Notez que le code ci-dessous a été déployé sur Arduino, qui évalue ensuite les télémétries reçues en fonction de notre modèle et les envoie à framboise si le tuyau est bouché ou ouvert.

Étape 11: Coder

Tout le code pour Arduino, Raspberry & Cloud Function se trouve sur Github.

Pour plus d'informations, vous pouvez consulter ce lien

Conseillé: