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

Πώς να δημιουργήσετε ένα σύστημα ανίχνευσης κίνησης με το Arduino: 7 βήματα
Πώς να δημιουργήσετε ένα σύστημα ανίχνευσης κίνησης με το Arduino: 7 βήματα

Βίντεο: Πώς να δημιουργήσετε ένα σύστημα ανίχνευσης κίνησης με το Arduino: 7 βήματα

Βίντεο: Πώς να δημιουργήσετε ένα σύστημα ανίχνευσης κίνησης με το Arduino: 7 βήματα
Βίντεο: Πώς να ενεργοποιήσετε την ανακάλυψη δικτύου στα Windows 10 [Tutorial] 2024, Ιούλιος
Anonim
Πώς να δημιουργήσετε ένα σύστημα ανίχνευσης κίνησης με το Arduino
Πώς να δημιουργήσετε ένα σύστημα ανίχνευσης κίνησης με το Arduino

Δημιουργήστε έναν μετρητή παραγωγής κίνησης και παρουσίας χρησιμοποιώντας ένα φτερό HUZZAH προγραμματισμένο με Arduino και υποστηριζόμενο από το Ubidots.

Η αποτελεσματική ανίχνευση φυσικής κίνησης και παρουσίας στο Smart Homes and Smart Manufacturing μπορεί να είναι πολύ χρήσιμη σε εφαρμογές που κυμαίνονται από ηλικιωμένες λύσεις Ambient Assisted Living (AAL) ή ένα σύστημα καταμέτρησης παραγωγής που τροφοδοτεί μεγαλύτερο MES. Άλλες εφαρμογές για ανίχνευση κίνησης και παρουσίας περιλαμβάνουν, αλλά δεν περιορίζονται σε αυτές:

  1. Αυτοματισμός πόρτας και πύλης
  2. Αισθητήρες στάθμευσης για να ορίσετε δωρεάν σημεία
  3. Απομακρυσμένη παρακολούθηση επιπέδου δεξαμενής
  4. Έξυπνα σπίτια και εγκαταστάσεις για φωτισμό και ασφάλεια
  5. Μονάδες ανίχνευσης και καταμέτρησης σε μεταφορικές γραμμές
  6. Σήμανση ανίχνευσης σε έντυπα υλικά
  7. Ανίχνευση υγρού μέσα σε χαρτόνι, πλαστικό και κλίση χαρτιού
  8. Ανίχνευση απόστασης
  9. Οι άνθρωποι αντιτίθενται

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

Για αυτό το σεμινάριο, θα εστιάσουμε στην κατασκευή ενός μετρητή παραγωγής σε πραγματικό χρόνο. η εφαρμογή θα μετρήσει κάθε μονάδα που περνάει σε ιμάντα μεταφοράς. Θα χρησιμοποιήσουμε το Arduino IDE για να προγραμματίσουμε ένα Feather HUZZAH ESP8266, έναν υπερηχητικό αισθητήρα και Ubidots για να αναπτύξουμε την εφαρμογή μας και να εμφανίσουμε τον πίνακα ελέγχου του IoT.

Βήμα 1: Απαιτήσεις

  1. Φτερό HUZZAH με ESP8266MB7389-100
  2. Αισθητήρας υπερήχων
  3. Arduino IDE 1.8.2 ή νεότερο
  4. Λογαριασμός Ubidots -ή -Άδεια STEM

Βήμα 2: Ρύθμιση

  • I Ρύθμιση υλικού
  • II Ρύθμιση υλικολογισμικού
  • III. Ανάπτυξη εφαρμογών Ubidots (συμβάντα, μεταβλητές και πίνακες εργαλείων)

Βήμα 3: Ρύθμιση υλικού

Ρύθμιση υλικού
Ρύθμιση υλικού
Ρύθμιση υλικού
Ρύθμιση υλικού

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

Για να ξεκινήσετε, αντικατοπτρίστε το παρακάτω διάγραμμα για να συνδέσετε τον αισθητήρα υπερήχων στο φτερό HUZZAH ESP8266.

ΣΗΜΕΙΩΣΗ: Η ανάγνωση του αισθητήρα μπορεί να ληφθεί ως αναλογική ανάγνωση ή PWM. παρακάτω θα εξηγήσουμε τη ρύθμιση για την ανάγνωση PWM, για επιπλέον πληροφορίες δείτε τα παραδείγματα που εμφανίζονται παραπάνω.

[Προαιρετικά] τοποθετήστε τον μικροελεγκτή και τους αισθητήρες μέσα στη θήκη de IP67 για προστασία από τη σκόνη, το νερό και άλλους απειλητικούς περιβαλλοντικούς παράγοντες. Η τυπική θήκη μοιάζει με αυτή που φαίνεται στις παραπάνω φωτογραφίες.

Βήμα 4: Εγκατάσταση υλικολογισμικού

Ρύθμιση υλικολογισμικού
Ρύθμιση υλικολογισμικού
Ρύθμιση υλικολογισμικού
Ρύθμιση υλικολογισμικού

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

Για να στείλετε δεδομένα αισθητήρων στην πλατφόρμα ανάπτυξης Ubidots IoT, αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στο Arduino IDE. Θυμηθείτε να εκχωρήσετε το όνομα δικτύου Wi-Fi, τον κωδικό πρόσβασης και το Κουπόνι του λογαριασμού σας Ubidots όπου υποδεικνύεται στον κώδικα.

/****************************** Περιλαμβάνονται βιβλιοθήκες *************** ****************/#περιλαμβάνω /****************************** ** Σταθερές και αντικείμενα *******************************Ubidots*/const char*SSID_NAME = "xxxxxxxx" ? // Βάλτε εδώ το SSID nameconst char* SSID_PASS = "xxxxxxxx"; // Βάλτε εδώ τον κωδικό πρόσβασής σας char* TOKEN = "Assig_your_ubidots_token"; // Βάλτε εδώ το TOKENconst char* DEVICE_LABEL = "motion-control"; // Η ετικέτα της συσκευής σας char char* VARIABLE_LABEL = "απόσταση"; // Η μεταβλητή σας labelconst char* USER_AGENT = "ESP8266"; const char* VERSION = "1.0"; const char* HTTPSERVER = "industrial.api.ubidots.com"; // Ubidots Business users // const char* HTTPSERVER = " things.ubidots.com "; // Ubidots Educational usersint HTTPPORT = 80;/ * Ultrasonic Sensor */const int pwPin1 = 5; // Ο ακροδέκτης PWM όπου είναι συνδεδεμένος ο αισθητήραςWiFiClient clientUbi;/****************************** Auxiliar Functions *** ************************** ** ** Λαμβάνει το μήκος της μεταβλητής σώματος @arg το σώμα του τύπου char @return dataLen the μήκος της μεταβλητής*/int dataLen (char* variable) {uint8_t dataLen = 0; για (int i = 0; i απόσταση / 25.4* / float distance = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, απόσταση); καθυστέρηση (1000);} void sendToUbidots (const char* device_label, const char* variable_label, float sensor_value) {char * body = (char *) malloc (sizeof (char) * 150); char * data = (char *) malloc (sizeof (char) * 300); / * Χώρος αποθήκευσης τιμών για αποστολή * / char str_val [10]; /*---- Μετατρέπει τις τιμές των αισθητήρων σε τύπο char -----* / /**4 είναι ελάχιστο πλάτος, 2 είναι ακριβείας · η τιμή float αντιγράφεται στο str_val* / dtostrf (sensor_value, 4, 2, str_val); /* Δημιουργεί το σώμα προς αποστολή στο αίτημα* /sprintf (body, "{"%s / ":%s}", variable_label, str_val); /* Δημιουργεί το HTTP αίτημα να είναι POST */sprintf (δεδομένα, "POST /api/v1.6/devices/%s", device_label); sprintf (δεδομένα, "%s HTTP/1.1 / r / n", δεδομένα); sprintf (δεδομένα, "%sHost: things.ubidots.com / r / n", δεδομένα); sprintf (δεδομένα, "%sUser-Agent:%s/%s / r / n", δεδομένα, USER_AGENT, VERSION); sprintf (δεδομένα, " %sX-Auth-Token: %s / r / n", data, TOKEN); σπριντ f (δεδομένα, "%sConnection: close / r / n", δεδομένα); sprintf (δεδομένα, "%sContent-Type: application/json / r / n", δεδομένα); sprintf (data, " %sContent-Length: %d / r / n / r / n", data, dataLen (body)); sprintf (δεδομένα, "%s%s / r / n / r / n", δεδομένα, σώμα); / * Αρχική σύνδεση */ clientUbi.connect (HTTPSERVER, HTTPPORT); / * Επαληθεύστε τη σύνδεση πελάτη */ if (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Δημοσίευση των μεταβλητών σας:")); Serial.println (δεδομένα); / * Αποστολή της Αίτησης HTTP */ clientUbi.print (δεδομένα). } / * Ενώ ο πελάτης είναι διαθέσιμος διαβάστε την απάντηση του διακομιστή * / ενώ (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Δωρεάν μνήμη * / δωρεάν (δεδομένα); δωρεάν (σώμα)? / * Διακοπή του πελάτη */ clientUbi.stop ();}

ProTip: μπορείτε να ελέγξετε αν η συσκευή σας είναι σωστά συνδεδεμένη ανοίγοντας τη σειριακή οθόνη στο Arduino IDE.

Μπορείτε να επαληθεύσετε ότι μια συσκευή έχει δημιουργηθεί στο bacband του Ubidots, προβάλλοντάς την στο λογαριασμό σας Διαχείριση συσκευών -> Συσκευές.

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

Με το Feather HUZZAH ESP8266 συνδεδεμένο και αναφέρει δεδομένα στο Ubidots, ήρθε η ώρα να δημιουργήσετε την εφαρμογή χρησιμοποιώντας προσεκτικά σχεδιασμένη διαμόρφωση εφαρμογής χωρίς κώδικα της Ubidots.

Βήμα 5: Ανάπτυξη εφαρμογών Ubidots

Ανάπτυξη εφαρμογών Ubidots
Ανάπτυξη εφαρμογών Ubidots
Ανάπτυξη εφαρμογών Ubidots
Ανάπτυξη εφαρμογών Ubidots
Ανάπτυξη εφαρμογών Ubidots
Ανάπτυξη εφαρμογών Ubidots

Διαμόρφωση συμβάντος Ubidots

Οι τρέχουσες αναγνώσεις που στέλνουμε στο Ubidots είναι εισόδους απόστασης. Για τη μετάφραση αυτών των ενδείξεων στην επιθυμητή έξοδο που θέλουμε -μετρημένες μονάδες- θα πρέπει να δημιουργήσουμε ένα συμβάν ακολουθώντας αυτά τα βήματα:

  1. Μέσα στην τρέχουσα συσκευή "motion-control" δημιουργήστε μια νέα προεπιλεγμένη μεταβλητή που ονομάζεται "κουτιά", η οποία θα λαμβάνει ένα 1 κάθε φορά που μετράται μια νέα μονάδα.
  2. Μεταβείτε στη Διαχείριση συσκευής -> Συμβάντα και κάντε κλικ στο μπλε εικονίδιο συν στην επάνω δεξιά γωνία της σελίδας για να προσθέσετε ένα νέο συμβάν.
  3. Διαμορφώστε το συμβάν σας ξεκινώντας με το "Εάν ενεργοποιείται":
  • Επιλέξτε μια μεταβλητή: "απόσταση"
  • Τιμή: τιμή (προεπιλογή)
  • Είναι μικρότερη ή ίση με [τη μέγιστη αναμενόμενη απόσταση] μεταξύ του αισθητήρα και των κουτιών που περνούν*η εφαρμογή μας απαιτεί 500mm
  • Για 0 λεπτά
  • Αποθηκεύσετε

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

5. Επιλέξτε "Set Variable" ως ενέργεια.

6. Στη συνέχεια, επιλέξτε την προεπιλεγμένη μεταβλητή "κουτιά" που δημιουργήθηκε προηγουμένως και την τιμή "1".

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

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

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

8. Οπτικοποιήστε τον αριθμό των μονάδων που ανιχνεύθηκαν (ή φορές που εντοπίστηκε ένα αντικείμενο) Τώρα, χρησιμοποιώντας τη μεταβλητή "κουτιά", θα δημιουργήσουμε μια νέα μεταβλητή κυλιόμενου παραθύρου για να αθροίσουμε το συνολικό ποσό των μετρήσεων που λαμβάνονται από τη μεταβλητή "κουτιά" σε ένα καθορισμένο spam (λεπτά, ώρες, ημέρες, εβδομάδες κλπ). Για να εκτελέσετε αυτήν την ανάπτυξη, ακολουθήστε αυτά τα απλά βήματα:

Εκχωρήστε τα παρακάτω διαπιστευτήρια στη νέα μεταβλητή κυλιόμενου παραθύρου

Επιλέξτε μια συσκευή: έλεγχος κίνησης (ή το όνομα της συσκευής που στέλνετε τα δεδομένα σας)

Επιλέξτε μια μεταβλητή: πλαίσια

Υπολογίστε το: άθροισμα

Κάθε: "1" ώρα (ή σύμφωνα με τα αιτήματα της αίτησής σας)

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

Βήμα 6: Διαμορφώσεις πίνακα ελέγχου

Διαμορφώσεις πίνακα ελέγχου
Διαμορφώσεις πίνακα ελέγχου

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

Μεταβείτε στη Διαχείριση συσκευών -> Πίνακες ελέγχου και προσθέστε ένα νέο γραφικό στοιχείο. Αυτό το γραφικό στοιχείο θα εμφανίζει τον αριθμό των πλαισίων που έχουν καταμετρηθεί σήμερα κατανεμημένα ανά ώρα.

Αντιστοιχίστε τα ακόλουθα διαπιστευτήρια στο νέο γραφικό σας στοιχείο για να απεικονίσετε τον αριθμό σας.

Πώς θα θέλατε να δείτε τα δεδομένα σας;: Διάγραμμα

Επιλέξτε έναν τύπο γραφικού στοιχείου: γράφημα γραμμών

Προσθήκη συσκευής: έλεγχος κίνησης

Προσθέστε μια μεταβλητή: κουτιά/ώρα

Φινίρισμα. Και με αυτήν την τελική ανάπτυξη του ταμπλό - η εφαρμογή σας ολοκληρώθηκε και τώρα έχετε ένα αποτελεσματικό και αποτελεσματικό σύστημα ανίχνευσης κίνησης και παρουσίας. Ακολουθεί μια τελευταία ματιά στα αποτελέσματά μας.

Συνιστάται: