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

Ρελέ συναγερμού κατάψυξης: 5 βήματα
Ρελέ συναγερμού κατάψυξης: 5 βήματα

Βίντεο: Ρελέ συναγερμού κατάψυξης: 5 βήματα

Βίντεο: Ρελέ συναγερμού κατάψυξης: 5 βήματα
Βίντεο: Я есть. Ты есть. Он есть_Рассказ_Слушать 2024, Ιούλιος
Anonim
Ρελέ συναγερμού κατάψυξης
Ρελέ συναγερμού κατάψυξης

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

Υπάρχουν 2 μέρη σε αυτό το πρόβλημα, χρειαζόμαστε μια μέθοδο για να εντοπίσουμε ότι ο συναγερμός έχει σβήσει και μια μέθοδος για να μεταφέρουμε αυτό το γεγονός στο χώρο διαβίωσής μας. Ο σχεδιασμός για τον οποίο αποφάσισα ήταν να χρησιμοποιήσω ένα Raspberry Pi για να ακούσω τον συναγερμό κατάψυξης και μετά να στείλω ένα ηχητικό μήνυμα συναγερμού στο εγχώριο ραδιόφωνό μου, το οποίο είναι ενεργοποιημένο με uPNP. Το Universal Plug and Play (UpnP) είναι ένα πρότυπο για την ανακάλυψη και την αλληλεπίδραση με υπηρεσίες που προσφέρονται από διάφορες συσκευές σε ένα δίκτυο, συμπεριλαμβανομένων των διακομιστών πολυμέσων και των συσκευών αναπαραγωγής, αν και δεν νομίζω ότι προβλέπονταν καταψύκτες κατά την ανάπτυξη του προτύπου. Το προειδοποιητικό μήνυμα έγινε δυνατά και εκνευριστικό και επαναλαμβάνεται ατελείωτα μέχρι να απενεργοποιηθεί το ραδιόφωνο.

Επέλεξα να ανιχνεύσω τον συναγερμό με ένα Raspberry Pi Zero W και Seeed ReSpeaker 2-Mics Pi HAT Το Raspberry PI Zero είναι μια έκδοση χαμηλού κόστους του Raspberry Pi και η επιλογή W έχει ενσωματωμένο WiFi, ενώ το Seeed Pi HAT πωλείται λιγότερο από $ 10, διαθέτει ενσωματωμένα LED και κουμπί χρήστη. Οι Pi HAT είναι κάρτες επέκτασης που συνδέονται απευθείας στο Raspberry Pi κάνοντας μια πολύ απλή διαδικασία συναρμολόγησης. Οποιαδήποτε έκδοση Pi θα ήταν περισσότερο από ικανή για τη δουλειά και το μικρόφωνο που επιλέξατε μπορεί να αντικατασταθεί, αν και χρησιμοποίησα τα ενσωματωμένα LED σε αυτήν την κατασκευή.

Είναι εύκολο να ελέγξετε αν ένα ραδιόφωνο ή τηλεόραση θα λειτουργούσε για εσάς. Πιθανότατα θα περιγραφεί ως "ενεργοποιημένο με DLNA" ή παρόμοιο. Αυτό χρησιμοποιεί το uPNP για επικοινωνία. Σε υπολογιστή με Windows, επιλέξτε ένα αρχείο mp3 και "Cast to Device". Εάν εμφανιστεί η συσκευή σας και μπορείτε να παίξετε το αρχείο, τότε είστε έτοιμοι.

Χωρίζω το λογισμικό σε 2 σενάρια python, checkFreezer.py για να ελέγξω αν έχει ενεργοποιηθεί μια ειδοποίηση κατάψυξης και το raiseAlarm.py για να σηκώσω τον συναγερμό. Αυτά τα σενάρια θα μπορούσαν να αναπτυχθούν και να δοκιμαστούν ξεχωριστά και μπορούν εύκολα να προσαρμοστούν ή να αντικαταστήσουν διαφορετικές μεθόδους ειδοποίησης μικροφώνου.

Προμήθειες

  • Λογισμικό -https://github.com/wapringle/freezer-alarm
  • Raspberry PI Zero W
  • Είδα ReSpeaker 2-Mics Pi HAT
  • ραδιόφωνο με δυνατότητα uPNP

Βήμα 1: Σχεδιάζοντας τον ανιχνευτή

Όταν η πόρτα του καταψύκτη παραμένει ανοιχτή και η θερμοκρασία αυξάνεται, ο καταψύκτης δίνει ένα ηχητικό συναγερμό "μπιπ μπιπ μπιπ". Όπως συμβαίνει με τα περισσότερα ηλεκτρονικά μπιπ, αυτή είναι μια ενιαία συχνότητα. Η ιδέα είναι η δειγματοληψία της εισόδου ήχου, η εκτέλεση ενός Fast Fourier Transform (FFT) που μετατρέπει ένα σήμα με βάση το χρόνο σε ένα που βασίζεται σε συχνότητα, με άλλα λόγια διασπά ένα σήμα για την εμφάνιση των διαφορετικών συχνοτήτων στο σήμα. Δείτε το Instructable Raspberry Pi Spectrum Analyzer With RGB LED Strip Μπορούμε να αναζητήσουμε μια κορυφή στη συχνότητα του βομβητή και να ενεργοποιήσουμε τον συναγερμό όταν ο βομβητής είναι ενεργός για αρκετό καιρό.

Αυτός ο ανιχνευτής έχει 2 απαιτήσεις

  • Θα πρέπει να ανιχνεύει τον βομβητή, ακόμη και όταν υπάρχει θόρυβος περιβάλλοντος (εξαλείψτε το ψευδώς αρνητικό)
  • Δεν πρέπει να ενεργοποιείται από θόρυβο περιβάλλοντος (εξαλείψτε το ψευδώς θετικό)

Αποφάσισα ότι η λειτουργία ενός Hoover στο βοηθητικό δωμάτιο θα ήταν μια καλή δοκιμή. Δεν πρέπει να ενεργοποιεί τον συναγερμό και ο συναγερμός πρέπει να ενεργοποιείται όταν ο βομβητής του καταψύκτη σβήνει και το Hoover λειτουργεί.

Βήμα 2: Διαμόρφωση του ανιχνευτή

Διαμόρφωση του ανιχνευτή
Διαμόρφωση του ανιχνευτή
Διαμόρφωση του ανιχνευτή
Διαμόρφωση του ανιχνευτή
Διαμόρφωση του ανιχνευτή
Διαμόρφωση του ανιχνευτή

Με το τηλέφωνό μου, πήρα δείγματα ήχου ως αρχεία WAV του βομβητή του καταψύκτη μόνο, με θορυβώδες φόντο και με το Hoover να λειτουργεί. Προσάρμοσα τον κώδικα για να εκτελέσω το FFT από την ανάρτηση Reading Audio Stream for FFT (Όταν υπάρχει αμφιβολία, plagarise) και χρησιμοποίησα το σενάριο fourierTest.py για να σχεδιάσω ακατέργαστα και Fourier Transformed δείγματα του βομβητή σε ήσυχο, θορυβώδες και πολύ θορυβώδες υπόβαθρο. Η αύξηση του επιπέδου στη συχνότητα 645 είναι έντονη στο πρώτο σχέδιο και εξακολουθεί να είναι σημαντική με πολύ θορυβώδες υπόβαθρο.

Βήμα 3: Κατασκευή του ανιχνευτή

Συναρμολόγηση του ανιχνευτή

Πολύ απλό. Το Pi W συνοδεύεται από ενσωματωμένο Wifi και το HAT είναι συνδεδεμένο άμεσα στις ακίδες GPIO του Pi. Η διαμόρφωση του λογισμικού απαιτεί τα βήματα

  • Εγκαταστήστε τη διανομή raspbian στο Raspberry Pi. Υπάρχουν πολλοί οδηγοί σε αυτό που μπορούν να το εξηγήσουν πολύ καλύτερα από μένα.
  • Ρύθμιση του Wifi (ditto παραπάνω)
  • Χρειάζεται εγκατεστημένο το πακέτο alsa

$ sudo apt-get install libasound-dev

$ pip install pyalsaaudio

  • Συνδέστε το HAT στο PI βατόμουρου
  • Ακολουθήστε τις Οδηγίες στον ιστότοπο που βλέπετε για να εγκαταστήσετε τα προγράμματα οδήγησης για το HAT.
  • Εκτελέστε τα διαγνωστικά που βλέπετε για να ελέγξετε ότι το HAT λειτουργεί και έχει διαμορφωθεί σωστά.

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

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

Εκπαίδευση του ανιχνευτή

Ο ανιχνευτής εκπαιδεύτηκε με σάρωση κάθε δείγματος όταν η εγγραφή WAV του βομβητή παίχτηκε στον ανιχνευτή. Το πρόγραμμα εξάγει τη θέση στο φάσμα FFT με το υψηλότερο επίπεδο ισχύος (τη συχνότητα αιχμής), μαζί με το επίπεδο αυτής της συχνότητας αιχμής. Simpleταν απλό θέμα να βρεθεί η συχνότητα του βομβητή και το επίπεδο ισχύος που εκπέμπει.

Υπάρχουν 2 τρόποι για να διαπιστώσετε εάν είχε ακουστεί ένα μπιπ:-

  1. Wasταν η συχνότητα του βομβητή η συχνότητα αιχμής στο δείγμα;
  2. ή ήταν το επίπεδο ισχύος στη συχνότητα του βομβητή πάνω από ένα όριο;

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

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

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

Βήμα 4: Αποστολή μηνύματος στο ραδιόφωνο

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

  • www.electricmonk.nl/log/2016/07/05/exploring-upnp-with-python/ Αυτό έχει μια ωραία επισκόπηση του πώς ταιριάζουν όλα μαζί
  • developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file.
  • stackoverflow.com/questions/28422609/how-to-send-setavtransporturi-using-upnp-c/35819973

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

  • Εκκινήστε έναν αναδυόμενο διακομιστή ιστού για την προβολή του προειδοποιητικού μηνύματος όταν το ζητήσει το ραδιόφωνο
  • Ρυθμίστε το επίπεδο έντασης στο LOUD (Το προειδοποιητικό μήνυμα θα πρέπει να προσελκύσει την προσοχή όλων)
  • Περάστε το uri του προειδοποιητικού μηνύματος στο ραδιόφωνο
  • Δημοσκοπήστε το ραδιόφωνο έως ότου η τρέχουσα κατάσταση "STOPPED"
  • Πάρτε το ραδιόφωνο να "ΠΑΙΞΕΙ" το uri
  • Επαναλάβετε τα τελευταία 2 βήματα έως ότου η τρέχουσα κατάσταση είναι "NO MEDIA PRESENT", πράγμα που σημαίνει ότι ο συναγερμός αναγνωρίστηκε απενεργοποιώντας το ραδιόφωνο
  • Τέλος κλείστε τον διακομιστή ιστού και βγείτε.

Αυτό είναι το σενάριο raiseAlarm.py

Βήμα 5: Το κάνετε μόνοι σας

Να το κάνετε μόνοι σας
Να το κάνετε μόνοι σας

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

Ρύθμιση του PI Zero W, συμπεριλαμβανομένου του μικροφώνου

  • Συναρμολογήστε το υλικό όπως στο βήμα 3
  • Κατεβάστε τα δέσμες ενεργειών-καταψύκτη από αυτό το Instructable ή από το git repository που περιλαμβάνει μερικά bonus κομμάτια

$ git clone

Πρέπει επίσης να εγκαταστήσετε το λογισμικό για να χρησιμοποιήσετε τα ενσωματωμένα LED APA102. Έχω συμπεριλάβει ένα αντίγραφο του apa102.py στον κατάλογο εργασίας git

Εκπαιδεύστε τον ανιχνευτή σας

Έχω προσθέσει μια επιλογή εκπαίδευσης στο σενάριο checkFreezer.py. Αυτό το τρέχει αυτόνομα και εκτυπώνει ένα διαγνωστικό στη γραμμή εντολών, αλλά πρώτα πρέπει να καταγράψετε μερικά δείγματα συναγερμού σε ένα ήσυχο περιβάλλον ως αρχεία WAV και να κάνετε το ίδιο σε ένα θορυβώδες. Για να ολοκληρώσετε την εκπαίδευση πρέπει πρώτα να βρείτε τη συχνότητα FFT με το υψηλότερο επίπεδο (τη "συχνότητα αιχμής") και στη συνέχεια ένα επίπεδο κατωφλίου για τη συχνότητα αυτή για να ορίσετε ένα έναυσμα. Για να το κάνετε αυτό, εκτελέστε το scriptFreezer σε λειτουργία κατάρτισης, με την επιλογή «-t» και παίξτε την εγγραφή του συναγερμού.

$ python checkFreezer.py -t

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

$ python checkFreezer.py -t

Έτοιμη συχνότητα αιχμής 55 ενεργοποιείται το επίπεδο 1 ενεργοποιείται; Falευδής συχνότητα αιχμής 645 ενεργοποιεί το επίπεδο 484 ενεργοποιείται; Falευδής αιχμή συχνότητας 645 ενεργοποιεί το επίπεδο 380 ενεργοποιείται; Ψευδής

Η μέγιστη συχνότητα είναι, στην περίπτωση αυτή 645 και αυτή γίνεται η συχνότητα ενεργοποίησης. Τώρα για να λάβετε το επίπεδο σκανδάλης, επαναλάβετε το checkFreezer, ρυθμίζοντας τη σκανδάλη

$ python checkFreezer.py -t --trigger = 645

Έτοιμη συχνότητα αιχμής 645 ενεργοποιείται το επίπεδο ενεργοποίησης 1273; Falευδής αιχμή συχνότητας 645 σκανδάλη επιπέδου ενεργοποίησης 653; Λάθος συχνότητα αιχμής 645 σκανδάλη επιπέδου ενεργοποίησης 641; Falευδής συχνότητα αιχμής 645 ενεργοποιείται το επίπεδο 616 ενεργοποιείται; Ψευδής

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

$ python checkFreezer.py -t --trigger = 645 --threshold = 500

Έτοιμη συχνότητα αιχμής 645 ενεργοποιείται το επίπεδο ενεργοποίησης 581; Η πραγματική αιχμή συχνότητας 645 ενεργοποιεί το επίπεδο 798 ενεργοποιείται; Η πραγματική αιχμή συχνότητας 645 ενεργοποιεί το επίπεδο 521 ενεργοποιείται; Αληθής

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

Σύνδεση στο ραδιόφωνο

Για να διαμορφώσετε τα σενάρια για τη δική σας ρύθμιση, πρέπει να βρείτε τη διεύθυνση IP και τον αριθμό θύρας που χρησιμοποιεί η συσκευή σας για υπηρεσίες UPnP. Η εγκατάσταση ραδιοφώνου πρέπει να τα παρέχει αυτά. Ο προεπιλεγμένος αριθμός θύρας είναι 8080 και θα ήταν έκπληξη αν είναι διαφορετικός.

Έχω δώσει ένα προεπιλεγμένο μήνυμα συναγερμού, freezer.mp3. Μη διστάσετε να αντικαταστήσετε με το δικό σας μήνυμα.

Επεξεργαστείτε το σενάριο με τις κατάλληλες διευθύνσεις IP και εκτελέστε το σενάριο.

$ python raiseAlarm.py

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

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

Μετάδοση ζωντανής μετάδοσης

Αφαιρέστε τη σημαία εκπαίδευσης ‘-t’ και εκτελέστε το checkFreezer με τις δικές σας τιμές, π.χ.

$ python checkFreezer.py --trigger = 645 --threshold = 200

Για να ξεκινήσει η επανεκκίνηση, προσθέστε στο /etc/rc.local, cd/home/pi/freezer-alarm

(python checkFreezer.py --trigger = 645 --threshold = 200> /tmp /freezer 2> /tmp /freezererror &) & έξοδος 0

Η πράσινη λυχνία LED θα ανάψει και είστε έτοιμοι για δράση. Αναπαράγετε την εγγραφή του μπιπ συναγερμού και μετά από λίγα δευτερόλεπτα η λυχνία LED θα γίνει κόκκινη και το μήνυμα συναγερμού θα αναπαράγεται στο ραδιόφωνό σας.

Τελικά

Τοποθετήστε το PI σε μια τοποθεσία κοντά στον καταψύκτη, εκτός δρόμου και σε μια παροχή ρεύματος. Ενεργοποιήστε και θα ανάψει η πράσινη λυχνία LED. Δοκιμάστε την ενεργοποίηση του συναγερμού αφήνοντας την πόρτα ανοιχτή. Το φως πρέπει να γίνει κόκκινο και το μήνυμα συναγερμού να αναπαράγεται στο ραδιόφωνο.

Επιτυχία !! Το έχεις κάνει Χαρίστε στον εαυτό σας ένα μακρύ ποτό με πάγο από την κατάψυξη, αλλά μην ξεχάσετε να κλείσετε την πόρτα του καταψύκτη!

Συνιστάται: