Πίνακας περιεχομένων:
- Βήμα 1: Απαιτούμενα εξαρτήματα
- Βήμα 2: Δημιουργία απομακρυσμένης συσκευής
- Βήμα 3: Λογισμικά και Βιβλιοθήκες
- Βήμα 4: Χρήση SSH και εγκατάσταση Libs
- Βήμα 5: Πρωτόκολλο Bluetooth
- Βήμα 6: Χρήση Mezzanine στο DragonBoard 410c
- Βήμα 7: Λογισμικό DragonBoard 410c
Βίντεο: Ανίχνευση καταστάσεων έκτακτης ανάγκης - Qualcomm Dragonboard 410c: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Lookάχνοντας για συστήματα ασφαλείας που λειτουργούν για την παρακολούθηση καταστάσεων έκτακτης ανάγκης, είναι πιθανό να παρατηρήσουμε ότι είναι πολύ δύσκολο να επεξεργαστούμε όλες τις καταγεγραμμένες πληροφορίες. Σκεπτόμενοι αυτό, αποφασίσαμε να χρησιμοποιήσουμε τις γνώσεις μας στην επεξεργασία ήχου/εικόνας, αισθητήρες και ενεργοποιητές για να δημιουργήσουμε ένα ολοκληρωμένο σύστημα που να επιτρέπει την πρόβλεψη καταστάσεων όπου κινδυνεύει η ζωή των ανθρώπων.
Αυτό το έργο διαθέτει τοπικούς αισθητήρες και απομακρυσμένες συσκευές για τη συλλογή δεδομένων και την αποστολή τους στον πίνακα δράκων, ο οποίος έχει επεξεργαστική ισχύ ικανή να εξαγάγει σημαντικές πληροφορίες από τα ληφθέντα δεδομένα.
Η απομακρυσμένη συσκευή είναι ένας πίνακας Arduino με μια μονάδα HC-06 που καθιστά δυνατή τη μεταφορά όλων των πληροφοριών και ένα δίκτυο χαμηλού κόστους χαμηλού κόστους, ικανό να επεξεργάζεται μεγάλο όγκο δεδομένων.
Βήμα 1: Απαιτούμενα εξαρτήματα
Πρώτα απ 'όλα, πρέπει να αποφασίσετε ποιοι αισθητήρες και ενεργοποιητές θα χρησιμοποιήσετε και να κάνετε το σκίτσο της αρχιτεκτονικής.
Στην περίπτωσή μας, χρησιμοποιούμε αυτούς τους αισθητήρες που είναι συνδεδεμένοι στο ARDUINO Pro Mini, που αναφέρονται παρακάτω:
- PIR (Passive Infrared-Presence sensor)
- DHT 11 (Αισθητήρας υγρασίας και θερμοκρασίας)
- Αισθητήρας CO (αισθητήρας μονοξειδίου του άνθρακα)
- Αισθητήρας θορύβου
Ενεργοποιητές:
- σερβο κινητήρα
- buzzer
Επικοινωνία:
Bluetooth Module HC-06
Στο Dragonboard 410c, θα έχουμε μερικούς αισθητήρες και λογισμικά για την επεξεργασία όλων των εισόδων δεδομένων:
Αισθητήρες:
- DHT 11
- Αισθητήρας ηλιακού φωτός
Ενεργοποιητές:
- Ρελέ
- Κατάσταση Led
- Buzzer
Βήμα 2: Δημιουργία απομακρυσμένης συσκευής
Τώρα ήρθε η ώρα να συνδέσετε όλα τα ακόλουθα στοιχεία στον πίνακα Arduino, δημιουργώντας μια συσκευή που θα λαμβάνει τα δεδομένα από την ατμόσφαιρα (θόρυβος, υγρασία, θερμοκρασία κ.λπ.) και θα τα στέλνετε στο Dragonboard μέσω της μονάδας bluetooth HC-06.
Είναι απαραίτητο να δώσετε προσοχή στις συνδέσεις, επειδή όλοι οι αισθητήρες έχουν συγκεκριμένες θέσεις για σύνδεση.
Στο σύστημα, είναι δυνατό να υπάρχουν περισσότερες από μία συσκευές για τη συλλογή δεδομένων. Όσο περισσότερες συσκευές έχετε εγκαταστήσει στο περιβάλλον, τόσο πιο ακριβή είναι τα διαγνωστικά που δημιουργούνται από την επεξεργασία δεδομένων. Δεδομένου ότι θα είναι δυνατή η εξαγωγή ενός ευρύτερου φάσματος πληροφοριών που μπορεί να είναι χρήσιμες.
Αποφασίσαμε να χρησιμοποιήσουμε έναν πίνακα arduino επειδή έχει πιο συμβατούς αισθητήρες και είναι δυνατόν να εγκαταστήσουμε αυτές τις απομακρυσμένες συσκευές σε διαφορετικά μέρη, συλλέγοντας περισσότερες πληροφορίες.
Η τοπική συσκευή είναι η DragonBoard 410c, η οποία επεξεργάζεται ήχο, βίντεο, ψηφιακές και αναλογικές πληροφορίες με τον ισχυρό επεξεργαστή SnapDragon 410.
Τοποθέτηση των εξαρτημάτων (Remote Devide)
Το ένα κομμάτι έχει μερικές καρφίτσες που πρέπει να συνδεθούν στις σωστές καρφίτσες στον μίνι πίνακα arduino pro.
Η μονάδα Bluetooth HC-06 έχει 4 ακίδες:
- TX (Transmissor) -> συνδεδεμένο στην ακίδα του RX Arduino
- RX (Δέκτης) -> συνδεδεμένο στην καρφίτσα του TX Arduino
- VCC -> συνδεδεμένο στο 5v
- GND
Ο αισθητήρας DHT 11 έχει 4 ακίδες (αλλά μόνο 3 σε χρήση):
- Σήμα -> συνδεδεμένο σε ψηφιακή ακίδα
- VCC -> συνδεδεμένο στο 5v
- GND
Ο αισθητήρας PIR έχει 3 ακίδες:
- Σήμα -> συνδεδεμένο σε ψηφιακή ακίδα
- VCC -> συνδεδεμένο στο 5v
- GND
Ο αισθητήρας αερίου (MQ) έχει 4 ακίδες:
- Digital OUT -> συνδεδεμένο σε ψηφιακή ακίδα (εάν θέλετε ψηφιακές πληροφορίες)
- Analog OUT -> στην περίπτωσή μας, το χρησιμοποιούμε συνδεδεμένο σε αναλογικό pin
- VCC -> συνδεδεμένο στο 5v
- GND
Ο αισθητήρας θορύβου (KY-038) έχει 3 ακίδες:
- Σήμα -> συνδεδεμένο σε αναλογικό pin
- VCC -> συνδεδεμένο στο 5v
- GND
Κωδικός για απομακρυσμένη συσκευή Arduino:
/ * * Το Arduino αποστέλλει δεδομένα μέσω Blutooth * * Η τιμή των αισθητήρων διαβάζεται, συνδέεται στο * String και αποστέλλεται μέσω σειριακής θύρας. */ #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht (DHTPIN, DHTTYPE)? float humidaty, θερμοκρασία? boolean pir = 0; int co, μικρόφωνο; String msg = ""; char nome [40]; void setup () {Serial.begin (9600); dht.begin (); } void loop () {humidaty = dht.readHumidity (); θερμοκρασία = dht.readTemperature (); pir = digitalRead (PIRPIN); co = analogRead (COPIN); μικρόφωνο = analogRead (A0); msg = "#;" + String (humidaty) + ";" String (θερμοκρασία)+ ";"+ String (μικρόφωνο)+ ";"+ String (pir)+ ";" + String (co) + ";#" + "\ n"; Serial.print (msg); καθυστέρηση (2000). }
Επεξήγηση κώδικα:
Όλες οι ακίδες που χρησιμοποιούνται στο Arduino παρατίθενται στην αρχή του κώδικα και οι αντίστοιχες βιβλιοθήκες που απαιτούνται για τη λειτουργία των αισθητήρων αρχικοποιούνται. Όλα τα δεδομένα θα μεταβιβαστούν στις αντίστοιχες μεταβλητές οι οποίες θα λαμβάνουν τις τιμές που διαβάζονται από κάθε αισθητήρα κάθε 2000 χιλιοστά του δευτερολέπτου, στη συνέχεια όλα είναι Συνδεδεμένα σε μια συμβολοσειρά και στη συνέχεια γράφονται σε Σειρά. Από εκεί είναι πολύ εύκολο ο κώδικας pyton που υπάρχει στο DragonBoard να συλλάβει τέτοια δεδομένα.
Βήμα 3: Λογισμικά και Βιβλιοθήκες
Για την επεξεργασία όλων των δεδομένων που ελήφθησαν και τον έλεγχο του συστήματος ασφαλείας, είναι απαραίτητο να χρησιμοποιήσετε ορισμένα λογισμικά και βιβλιοθήκες στο Qualcomm DragonBoard 410c.
Σε αυτό το ειδικό έργο χρησιμοποιούμε:
Λογισμικά:
- Πύθων
- Arduino
Πλατφόρμες:
- Amazon AWS -> διαδικτυακός διακομιστής
- Phant -> Υπηρεσία δεδομένων κεντρικού υπολογιστή
Βιβλιοθήκες:
- OpenCV-Επεξεργασία βίντεο (https://opencv-python-tutroals.readthedocs.io/en/latest/)
- PyAudio - Επεξεργασία ήχου (https://people.csail.mit.edu/hubert/pyaudio/)
- Wave (https://www.physionet.org/physiotools/wave-installation.shtm)
- AudioOp (https://docs.python.org9https://scikit-learn.org/stable/install.html/2/library/audioop.html)
- Numpy (https://www.numpy.org)
- SciKit1 - Εκπαιδεύστε και προβλέψτε τη μηχανική μάθηση (https://scikit-learn.org/stable/install.html)
- cPickle - Αποθηκεύστε τις παραμέτρους μηχανικής μάθησης (https://pymotw.com/2/pickle/)
- MRAA - Χρησιμοποιήστε τα GPIO (https://iotdk.intel.com/docs/master/mraa/python/)
- UPM-Χρησιμοποιήστε τα GPIO (https://github.com/intel-iot-devkit/upm)
- PySerial - Χρήση για σειριακή επικοινωνία με συσκευή Bluetooth (https://pythonhosted.org/pyserial/)
Βήμα 4: Χρήση SSH και εγκατάσταση Libs
Πρώτα απ 'όλα πρέπει να λάβετε τη διεύθυνση IP από το Dragonboard, για να το κάνετε αυτό, πρέπει να ενεργοποιήσετε το DragonBoard συνδεδεμένο με ποντίκι, πληκτρολόγιο και οθόνη HDMI. Όταν ενεργοποιηθεί ο πίνακας, πρέπει να συνδεθείτε σε ένα δίκτυο, μετά πηγαίνετε στο τερματικό και εκτελέστε την εντολή:
sudo ifconfig
Μετά από αυτό, μπορείτε να λάβετε τη διεύθυνση IP.
Με τη διεύθυνση IP μπορείτε να αποκτήσετε πρόσβαση στο Dragonboard μέσω SHH, για να το κάνετε αυτό, ανοίξτε ένα τερματικό σε έναν υπολογιστή συνδεδεμένο στο ίδιο δίκτυο με τον πίνακα. Στο τερματικό μπορείτε να εκτελέσετε την εντολή:
ssh linaro@{IP}
(θα πρέπει να αντικαταστήσετε το {IP} με τη διεύθυνση IP που λαμβάνετε στο Dragonboard).
Το πρώτο lib που πρέπει να εγκαταστήσετε είναι το mraa lib. Για να το κάνετε αυτό, πρέπει να εκτελέσετε την ακόλουθη εντολή στο τερματικό:
sudo add-apt-repository ppa: mraa/mraa && sudo apt-ge; t update && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa
Για να εγκαταστήσετε το opencv για python χρειάζεται μόνο να εκτελέσετε την εντολή:
sudo apt-get install python-opencv
Για να εγκαταστήσετε το PyAudio πρέπει να εκτελέσετε την εντολή:
sudo apt-get install python-pyaudio python3-pyaudio
Τα libs WAVE και AudioOp είναι ήδη εγκατεστημένα στον πίνακα. Για να εγκαταστήσετε το numpy πρέπει να εκτελέσετε την εντολή:
sudo apt-get install python-numpy python-scipy
Το τελευταίο lib που πρέπει να εγκαταστήσετε είναι το scikit, για να το εγκαταστήσετε πρέπει να έχετε εγκαταστήσει το pip. Απλώς πρέπει να εκτελέσετε την εντολή:
pip εγκατάσταση scikit-lear
Βήμα 5: Πρωτόκολλο Bluetooth
Σύνδεση DragonBoard με το Arduino μέσω Bluetooth
Η μονάδα Bluetooth (HC-06) συνδέθηκε αρχικά με το Arduino Nano σύμφωνα με το ακόλουθο παράδειγμα:
Χρησιμοποιώντας τη γραφική διεπαφή Linaro (Λειτουργικό σύστημα που χρησιμοποιείται στο τρέχον έργο στο DragonBoard), στη δεξιά πλευρά της κάτω γραμμής κάντε κλικ στο σύμβολο Bluetooth και, στη συνέχεια, κάντε κλικ στο "Ρύθμιση νέας συσκευής" και ρυθμίστε τις παραμέτρους με τη μονάδα Bluetooth, αφήνοντάς τη να αντιστοιχιστεί. Βεβαιωθείτε ότι η μονάδα σας είναι πράγματι συνδεδεμένη κάνοντας ξανά κλικ στο σύμβολο Bluetooth, κάντε κλικ στο "Συσκευές …" και δείτε αν το όνομα της συσκευής σας είναι καταχωρημένο και συνδεδεμένο. Τώρα επιλέξτε τη συσκευή σας στην οθόνη "Συσκευές Bluetooth" και κάντε δεξί κλικ σε αυτήν και σημειώστε τη θύρα στην οποία είναι συνδεδεμένη η μονάδα Bluetooth (π.χ.: "rfcomm0"). Σημείωση: Το όνομα θύρας στο οποίο είναι συνδεδεμένη η συσκευή σας θα είναι σημαντικό για το επόμενο βήμα για να ενεργοποιήσετε την ανταλλαγή δεδομένων.
Δημιουργία ανταλλαγής δεδομένων DragonBoard και Bluetooth
Βασικά ακολουθούμε βήμα προς βήμα τον σύνδεσμο: https://www.uugear.com/portfolio/bluetooth-communi… αλλά δεν εκτελέσαμε το μέρος της αντιστοίχισης μόνο την εκτέλεση των κωδικών python και του Arduino. Στο python χρησιμοποιήθηκε η σειριακή βιβλιοθήκη που αρχικοποιείται στη θύρα που είναι συνδεδεμένη στο bluetooth, επομένως ο κώδικας python διαβάζει τα δεδομένα των αισθητήρων που συνδέονται με το arduino μέσω της μονάδας bluetooth.
Βήμα 6: Χρήση Mezzanine στο DragonBoard 410c
Για να κάνουμε τις συνδέσεις μεταξύ του dragonboard και των εξαρτημάτων, χρησιμοποιούμε έναν τύπο ασπίδας που ονομάζεται Mezannine, που αναπτύχθηκε από 96board.
Χρησιμοποιώντας αυτήν την ασπίδα, η σύνδεση περιφερειακών γίνεται πολύ πιο εύκολη.
Οι συνδετήρες που χρησιμοποιείτε προέρχονται από το κιτ ανάπτυξης του Grove, οπότε χρησιμοποιείται μόνο ένα καλώδιο especif που συνδέει και τους δύο τρόπους, Όλα τα μέρη μπορούν να βρεθούν εύκολα σε αυτόν τον ιστότοπο:
Χρησιμοποιούμε αυτά τα κιτ παρακάτω:
- Ρελέ Grove
- Αισθητήρας Grove Sunlight
- Πρίζα led Grove
- Αισθητήρας θερμοκρασίας Grove & humi
- Grove Buzzer
Βήμα 7: Λογισμικό DragonBoard 410c
Το μέρος του προγράμματος στο DragonBoard κωδικοποιήθηκε σε Python και το πρόγραμμα που χρησιμοποιήθηκε στο Arduino αναπτύχθηκε σε C ++. Κάθε 2 λεπτά το Arduino διαβάζει όλο τον αισθητήρα που είναι προσαρτημένος σε αυτό. Από το Arduino, στείλτε την ανάγνωση στο DragonBoard μέσω Bluetooth. Το DragonBoard συνδυάζει την ανάγνωση που προήλθε από το Arduino με την ανάγνωση που κάνει από την ασπίδα Mezzanine με τα χαρακτηριστικά από τα δείγματα ήχου και βίντεο.
Με αυτά τα δεδομένα, το ΔΣ προσπαθεί να προβλέψει εάν συμβαίνει μια κατάσταση έκτακτης ανάγκης. Το Διοικητικό Συμβούλιο στέλνει στην Amazon Web Service χρησιμοποιώντας το Phant τα ακατέργαστα δεδομένα και την πρόβλεψη που έκανε. Εάν ο πίνακας προβλέψει ότι συμβαίνει μια περίεργη κατάσταση, προσπαθήστε να προειδοποιήσετε τον χρήστη που αναβοσβήνει ένα led και buzzer στο Mezzanine και εμφανίζεται στην εφαρμογή Ιστού. Στην διαδικτυακή εφαρμογή είναι επίσης δυνατό να δείτε τα ακατέργαστα δεδομένα για να καταλάβετε τι συμβαίνει σε αυτόν τον τομέα.
Συνιστάται:
Φακός LED έκτακτης ανάγκης χωρίς μπαταρία: 10 βήματα
Φανάρι έκτακτης ανάγκης LED χωρίς μπαταρία: Γεια σε όλους, Αυτό είναι το πρώτο μου εκπαιδευτικό, οπότε τα σχόλιά σας θα είναι πραγματικά χρήσιμα για να βελτιωθώ περαιτέρω. Ρίξτε μια ματιά και στο κανάλι μου στο YouTube για περισσότερα έργα
Πηγή τροφοδοσίας USB έκτακτης ανάγκης (τρισδιάστατη εκτύπωση): 4 βήματα (με εικόνες)
Πηγή τροφοδοσίας USB έκτακτης ανάγκης (3D Printed): Αυτό το έργο χρησιμοποιεί μια μπαταρία 12V, όπως θα χρησιμοποιούσατε για ένα όχημα, για τη φόρτιση συσκευών USB σε περίπτωση διακοπής ρεύματος ή ταξιδιού κάμπινγκ. Είναι τόσο απλό όσο η τοποθέτηση ενός φορτιστή αυτοκινήτου USB στην μπαταρία. Μετά τον τυφώνα Sandy, ήμουν χωρίς ρεύμα
Φτιάξτε το δικό σας Powerbank έκτακτης ανάγκης χειροκίνητο: 4 βήματα (με εικόνες)
Φτιάξτε το δικό σας Powerbank έκτακτης ανάγκης χειροκίνητη: Σε αυτό το έργο θα σας δείξω πώς να δημιουργήσετε μια γεννήτρια χειροκίνητη μανιβέλα μαζί με μια τροποποιημένη powerbank. Με αυτόν τον τρόπο μπορείτε να φορτίσετε το powerbank σας σε περίπτωση έκτακτης ανάγκης χωρίς να χρειάζεται πρίζα. Στην πορεία θα σας πω επίσης γιατί η BLDC κινείται
Μπρελόκ έκτακτης ανάγκης διαφυγής οχήματος: 11 βήματα (με εικόνες)
Μπρελόκ έκτακτης ανάγκης διαφυγής οχημάτων: Τροχαία ατυχήματα. Ναι! Ο καλύτερος τρόπος για να αποφύγετε το ατύχημα είναι να χρησιμοποιήσετε ασφαλείς τεχνικές οδήγησης και να προσέχετε πάντα πού πηγαίνετε και άλλα αυτοκίνητα γύρω σας. Ωστόσο, παρά τις προσπάθειές σας, δεν έχετε τον έλεγχο της άλλης κίνησης
Φτιάξτε το δικό σας ακατέργαστο φακό ανακίνησης (φακός έκτακτης ανάγκης): 4 βήματα (με εικόνες)
Φτιάξτε τον δικό σας ακατέργαστο φακό ανακίνησης (φακός έκτακτης ανάγκης): Σε αυτό το έργο θα σας δείξω πώς συνδύασα ένα κύκλωμα κλέφτη joule με ένα πηνίο και έναν μαγνήτη για να δημιουργήσω έναν αναμνητήρα που είναι ένας φακός έκτακτης ανάγκης που δεν απαιτεί μπαταρίες. Ας ξεκίνα