Πίνακας περιεχομένων:

Drain Clog Detector: 11 βήματα (με εικόνες)
Drain Clog Detector: 11 βήματα (με εικόνες)

Βίντεο: Drain Clog Detector: 11 βήματα (με εικόνες)

Βίντεο: Drain Clog Detector: 11 βήματα (με εικόνες)
Βίντεο: Μαγειρική Σόδα η θαυματουργή - 29 απίστευτες χρήσεις! 2024, Ιούλιος
Anonim
Image
Image

Μην αφήνετε μια βουλωμένη αποχέτευση να σας επιβραδύνει! Επιστρέφοντας από τις διακοπές μας, εγώ και η σύζυγός μου εξεπλάγην από το νερό που κάλυπτε το πάτωμα του διαμερίσματός μας και ανακαλύψαμε ότι δεν είναι καν καθαρό νερό, είναι στραγγιστό παντού. Μετά τον καθαρισμό της αποχέτευσης και τον καθαρισμό του δαπέδου, είχα αυτήν την ερώτηση: γιατί δεν έχουμε σύστημα συναγερμού για πιθανά φράγματα αποχέτευσης; Οι βουλωμένες αποχετεύσεις όχι μόνο μπορούν να σταματήσουν το σπίτι σας, αλλά θα καταναλώσουν επιπλέον κόστος από τις τσέπες σας, 206 $ κατά μέσο όρο είναι το κόστος για την απομάκρυνση μιας βουλωμένης αποχέτευσης σύμφωνα με το HomeAdvisor, εκτός από το κρυφό κόστος των χαλασμένων χαλιών, των ξύλινων επίπλων κλπ. Η ιδέα μας είναι να αφήσουμε τους ιδιοκτήτες σπιτιών καθώς και επιχειρήσεις όπως τα τμήματα συντήρησης πόλεων/συγκροτημάτων και εξειδικευμένους παρόχους υπηρεσιών να έχουν ένα αποτελεσματικό και έξυπνο σύστημα που προειδοποιεί όσους είναι υπεύθυνοι το συντομότερο δυνατό να αναλάβουν δράση, το οποίο συμβάλλει στον εμπλουτισμό των έξυπνων πόλεων με ένα σημαντικό χαρακτηριστικό.

Αν και η ανίχνευση των φραγμών μπορεί να γίνει μέσω μιας σειράς τεχνικών, όπως η χρήση αισθητήρων αερίου ή εσωτερικών μηχανισμών, η ομάδα μας επικεντρώθηκε στη χρήση του ήχου ως εισόδου μας, καθώς γνωρίζουμε ότι το χτύπημα ενός σωλήνα όπου ανοίγει είναι διαφορετικός ήχος από αυτό που συνέβη όταν είναι κλειστό. Σύμφωνα με αυτήν την απλή ιδέα, εάν μπορούμε να εκπαιδεύσουμε ένα μοντέλο τα ηχητικά μοτίβα που εμφανίζονται στην επιφάνεια του σωλήνα κατά τη διάρκεια φράξεων, καθώς και αυτά τα μοτίβα εμφανίζονται σε ανοιχτούς σωλήνες, μπορούμε στη συνέχεια να εφαρμόσουμε το μοντέλο για να ανιχνεύσουμε προληπτικά πότε ένα φράγμα αρχίζει να συνθέτει, και εμείς στη συνέχεια χτυπήστε μερικούς λογαριασμούς.

Μονάδες για

  • Μοχάμεντ Χασάν
  • Αχμέτ Εμάμ

Αναλυτικά το έργο 3 φάσεις υλοποιούνται σε αυτό το έργο: Συλλογή δεδομένων, Μάθηση & πρόβλεψη.

Πριν εφαρμόσουμε αυτό το σύστημα στην πραγματική ζωή, έπρεπε να δημιουργήσουμε ένα περιβάλλον προσομοίωσης με αναγκαστικό τρόπο, όπου έχουμε το σωλήνα, το νερό που ρέει και με κάποιο τρόπο να προσομοιώσουμε το φράξιμο. Έτσι, πήραμε έναν σωλήνα, έναν σωλήνα νερού με μια πηγή νερού που το κάνει αυτό στη μπανιέρα, και χρησιμοποιώντας την επιφάνεια της μπανιέρας για να κλείσουμε τον σωλήνα που αντιπροσωπεύει το φράξιμο. Σε αυτό το βίντεο, εξηγούμε πώς δημιουργήσαμε το περιβάλλον και πώς συλλέξαμε δεδομένα για την εκπαίδευση του μοντέλου.

Και σε αυτό το επόμενο βίντεο, που δείχνει πώς κάναμε τις δοκιμές για το σύστημα και το μοντέλο, σε ανοιχτή λειτουργία, στη συνέχεια σε λειτουργία φράγματος και πίσω στην ανοιχτή λειτουργία, ωστόσο

Ας εξερευνήσουμε λοιπόν την εφαρμογή μας βήμα προς βήμα:

Βήμα 1: Το πείραμα

Το πείραμα
Το πείραμα
Το πείραμα
Το πείραμα
Το πείραμα
Το πείραμα
Το πείραμα
Το πείραμα

Σε αυτό το σενάριο χρησιμοποιούμε ένα μικρό σωλήνα νερού συνδεδεμένο με το υλικό μας και τον αισθητήρα ήχου. Το υλικό διαβάζει την τιμή του αισθητήρα και το στέλνει πίσω στο Cloud. Αυτό έχει γίνει για 10 λεπτά για μπλοκαρισμένο σωλήνα και άλλα 10 λεπτά για σωλήνα που δεν έχει μπλοκαριστεί.

Βήμα 2: Υλικό

Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα

I- Arduino

Για να ανιχνεύσουμε τον ήχο του νερού μέσα στο σωλήνα χρειαζόμαστε έναν αισθητήρα ήχου. Ωστόσο, το Raspberry Pi 3 δεν έχει Analog GPIO. Για να χειριστούμε αυτό το ζήτημα χρησιμοποιούμε το Arduino καθώς το Arduino διαθέτει αναλογικό GPIO. Έτσι συνδέουμε τον αισθητήρα ήχου Grove στο Grove Arduino shield και συνδέουμε το Shield στο Arduino UNO 3. Στη συνέχεια συνδέουμε το Arduino & Raspberry χρησιμοποιώντας καλώδιο USB. Για περισσότερες πληροφορίες σχετικά με τον αισθητήρα ήχου Grove, μπορείτε να ελέγξετε το φύλλο δεδομένων του. Μπορείτε να βρείτε στο φύλλο δεδομένων ένα δείγμα κώδικα πώς να διαβάζετε τις τιμές των αισθητήρων. Ο κώδικας δείγματος χρησιμοποιείται σχεδόν σε μικρές αλλαγές. Στον παρακάτω κώδικα συνδέουμε τον αισθητήρα με το Α0 σε ασπίδα. Για να γράψουμε σε σειριακό, χρησιμοποιούμε τη συνάρτηση Serial.begin (). Για επικοινωνία με το ρυθμό baud Raspberry ορίστε 115200 Τα δεδομένα θα αποσταλούν στο Raspberry εάν είναι μεγαλύτερα από ένα συγκεκριμένο όριο για να μειωθεί ο θόρυβος Πολλές δοκιμές έχουν γίνει για την επιλογή των επιθυμητών τιμών κατωφλίου & καθυστέρησης. Το όριο βρέθηκε ότι είναι 400 και η τιμή καθυστέρησης είναι 10 χιλιοστά του δευτερολέπτου. Το κατώφλι έχει επιλεγεί για να φιλτράρει τον κανονικό θόρυβο και να διασφαλίζει ότι μόνο τα ουσιαστικά δεδομένα θα αποστέλλονται στο σύννεφο. Η καθυστέρηση έχει επιλεγεί για να διασφαλιστεί ότι ο αισθητήρας ανιχνεύει αμέσως τυχόν αλλαγές στον ήχο ροής μέσα στο σωλήνα.

II- Raspberry Pi 3Για να κάνετε λήψη Android στο Raspberry, μπορείτε να κάνετε λήψη της πιο πρόσφατης έκδοσης από την Κονσόλα Android Things. Σε αυτό το έργο χρησιμοποιούμε την έκδοση: OIR1.170720.017. ακολουθήστε τα βήματα στην τοποθεσία Raspberry για να εγκαταστήσετε το λειτουργικό σύστημα στο βατόμουρο, για τα Windows μπορείτε να χρησιμοποιήσετε αυτά τα βήματα Μετά την εγκατάσταση μπορείτε να συνδέσετε το Raspberry στον υπολογιστή σας χρησιμοποιώντας USB. Στη συνέχεια, στην κονσόλα του υπολογιστή σας χρησιμοποιήστε την παρακάτω εντολή για να λάβετε το Raspberry IP

nmap -sn 192.168.1.*

Αφού λάβετε την IP, συνδεθείτε στο Raspberry σας χρησιμοποιώντας την παρακάτω εντολή

σύνδεση adb

Για να συνδέσετε το Raspberry στο Wifi (προσθέστε το SSID και τον κωδικό πρόσβασής σας)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-e ssid *****

-e φράση πρόσβασης ****

Βήμα 3: Google Cloud - Εγγραφή

Google Cloud - Εγγραφή
Google Cloud - Εγγραφή
Google Cloud - Εγγραφή
Google Cloud - Εγγραφή
Google Cloud - Εγγραφή
Google Cloud - Εγγραφή
Google Cloud - Εγγραφή
Google Cloud - Εγγραφή

Η Google προσφέρει δωρεάν επίπεδο για όλους τους χρήστες για ένα έτος με ανώτατο όριο τα $ 300, Χάρη στο Google:). Ακολουθήστε οθόνες για να δημιουργήσετε νέο έργο στο Google Cloud

Βήμα 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 είναι μια πλήρως διαχειριζόμενη υπηρεσία ανταλλαγής μηνυμάτων σε πραγματικό χρόνο που σας επιτρέπει να στέλνετε και να λαμβάνετε μηνύματα μεταξύ ανεξάρτητων εφαρμογών.

Βήμα 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- IOT CoreA πλήρως διαχειριζόμενη υπηρεσία για εύκολη και ασφαλή σύνδεση, διαχείριση και λήψη δεδομένων από παγκόσμιες συσκευές. IOT Core still Beta, για να έχετε πρόσβαση σε αυτό πρέπει να υποβάλετε αίτημα με Αιτιολόγηση στην Google. Κάναμε το αίτημα, η αιτιολόγησή μας ήταν αυτός ο διαγωνισμός. Η Google εγκρίθηκε, Ευχαριστώ ξανά την Google:). Το Raspberry θα στείλει δεδομένα αισθητήρων στο IOT Core, τα οποία θα προωθήσουν αναγνώσεις στο θέμα PubSub που δημιουργήθηκε στο προηγούμενο βήμα

Βήμα 6: Google Cloud - Λειτουργίες Cloud

Google Cloud - Λειτουργίες Cloud
Google Cloud - Λειτουργίες Cloud
Google Cloud - Λειτουργίες Cloud
Google Cloud - Λειτουργίες Cloud

Το Cloud Functions είναι ένα περιβάλλον χωρίς διακομιστή για τη δημιουργία και τη σύνδεση υπηρεσιών cloud. Ενεργοποίηση αυτής της συνάρτησης είναι το θέμα PubSup που δημιουργήθηκε στο βήμα 1.;; Αυτή η συνάρτηση θα ενεργοποιηθεί όταν η νέα τιμή γραφτεί στο PubSup και γραφτεί στο Cloud DataStore με τύπο "SoundValue"

Βήμα 7: Google Cloud - Cloud DataStore

Το Google Cloud Datastore είναι μια βάση δεδομένων εγγράφων NoSQL που έχει δημιουργηθεί για αυτόματη κλιμάκωση, υψηλή απόδοση και ευκολία ανάπτυξης εφαρμογών. Ενώ η διεπαφή Cloud Datastore έχει πολλά ίδια χαρακτηριστικά με τις παραδοσιακές βάσεις δεδομένων, ως βάση δεδομένων NoSQL διαφέρει από αυτές στον τρόπο που περιγράφει τις σχέσεις μεταξύ των αντικειμένων δεδομένων. Δεν χρειάζεται καμία ρύθμιση καθώς μόλις οι λειτουργίες σύννεφων γράψουν τιμές αισθητήρα στο DataStore, τα δεδομένα θα προστεθούν στο DataStore

Βήμα 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

Συλλέγουμε ένα δείγμα 10 λεπτά από τον κανονικό σωλήνα και 10 λεπτά από τον φραγμένο σωλήνα με διαφορά ακριβώς 1 ώρα μεταξύ των 2 επαναλήψεων. Μετά τη λήψη δεδομένων DataStore και κάντε κάποιο χειρισμό για να προσθέσετε ταξινόμηση για κάθε σειρά. Τώρα έχουμε 2 αρχεία csv ένα για κάθε κατηγορία. Ως βέλτιστη πρακτική, ανεβάστε αρχεία CSV δεδομένων πρώτα στο Cloud Storage. Στην παρακάτω οθόνη δημιουργούμε έναν νέο κάδο και ανεβάζουμε τα 2 αρχεία CSV Καθώς αυτός ο κάδος θα χρησιμοποιηθεί μόνο για ανάλυση, δεν χρειάζεται να επιλέξετε κάδο πολλών περιοχών Στη συνέχεια δημιουργήστε νέο σύνολο δεδομένων και νέο πίνακα στο BigQuery και ανεβάστε το αρχείο 2 CSV από τον κάδο στον το νέο τραπέζι

Βήμα 9: Google Cloud - Data Studio

Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio

Στη συνέχεια, χρησιμοποιούμε το Data Studio για να σχεδιάσουμε ορισμένες πληροφορίες. Το Data Studio θα διαβάσει δεδομένα από τον πίνακα BigQuery. Από τα γραφήματα μπορούμε να δούμε τη διαφορά μεταξύ 2 κατηγοριών σε αριθμό τηλεμετριών και άθροισμα τιμών ανά λεπτό. Με βάση αυτές τις γνώσεις μπορούμε να σχεδιάσουμε ένα απλό μοντέλο, ο σωλήνας θεωρείται μπλοκαρισμένος εάν σε 3 διαδοχικά λεπτά, ο αριθμός των τηλεμετρικών τιμών που είναι υψηλότερο από το όριο θορύβου (400) είναι πάνω από 350 τηλεμετρίες. και σε 3 διαδοχικά λεπτά, η τιμή της τηλεμετρίας που είναι υψηλότερη από το όριο σπινθήρα (720) είναι μεγαλύτερη από 10 τηλεμετρίες.

Βήμα 10: Φάση πρόβλεψης

Φάση πρόβλεψης
Φάση πρόβλεψης

Αναφερόμαστε σε ένδειξη, όταν υπερβαίνει μια συγκεκριμένη τιμή (THRESHOLD_VALUE) η οποία ορίστηκε σε 350 που φιλτράρει τον θόρυβο και χαμηλότερους ρυθμούς ροής νερού στο σωλήνα, από το να θεωρηθεί ως ένδειξη

Η ανάλυση δεδομένων έδειξε ότι στην ανοικτή λειτουργία ο αριθμός των μετρήσεων είναι μικρότερος από 100, αλλά στη λειτουργία φραγής, οι τιμές είναι πολύ υψηλότερες (έφτασαν τις 900 το λεπτό), αλλά σε σπάνιες περιπτώσεις ήταν επίσης μικρότερες από 100. Ωστόσο, αυτές οι περιπτώσεις δεν επαναλαμβάνονται συνεπώς, και για τρία επακόλουθα λεπτά, ο συνολικός αριθμός των ενδείξεων πάντα ξεπερνούσε τις 350. Έχοντας ανοιχτή λειτουργία στα ίδια τρία λεπτά θα αθροίσουμε λιγότερο από 300, θα μπορούσαμε με σιγουριά να θέσουμε αυτόν τον κανόνα: Κανόνας # 1 Για τρία λεπτά σε ακατέργαστη, αν συνολικές αναγνώσεις > 350, τότε ανιχνεύεται φράξιμο. Βρήκαμε ότι η μέγιστη τιμή που επιτυγχάνεται σε ανοιχτή λειτουργία δεν υπερβαίνει μια συγκεκριμένη τιμή (SPARK_VALUE) η οποία διαπιστώνεται ότι είναι 770, οπότε προσθέσαμε αυτόν τον κανόνα: Κανόνας # 2 Εάν η τιμή ανάγνωσης> 350, τότε εντοπίζεται συνήθως ένα φράξιμο.

Συνδυάζοντας και τους δύο κανόνες, μας έδωσε έναν εύκολο τρόπο εφαρμογής της λογικής ανίχνευσης, όπως φαίνεται. Παρατηρήστε ότι ο παρακάτω κώδικας αναπτύχθηκε στο Arduino ο οποίος στη συνέχεια αξιολογεί τις λαμβανόμενες τηλεμετρίες με βάση το μοντέλο μας και αποστέλλεται στο βατόμουρο εάν ο σωλήνας είναι φραγμένος ή ανοιχτός.

Βήμα 11: Κωδικός

Όλος ο Κώδικας για Arduino, Raspberry & Cloud Function μπορεί να βρεθεί στο Github.

Για περισσότερες πληροφορίες μπορείτε να ελέγξετε αυτόν τον σύνδεσμο

Συνιστάται: