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

IDC2018IOT: Αίθουσα συνεδριάσεων Snitcher: 6 βήματα
IDC2018IOT: Αίθουσα συνεδριάσεων Snitcher: 6 βήματα

Βίντεο: IDC2018IOT: Αίθουσα συνεδριάσεων Snitcher: 6 βήματα

Βίντεο: IDC2018IOT: Αίθουσα συνεδριάσεων Snitcher: 6 βήματα
Βίντεο: Part 1 - The Invisible Man Audiobook by H. G. Wells (Chs 01-17) 2024, Νοέμβριος
Anonim
IDC2018IOT: Αίθουσα συνεδριάσεων Snitcher
IDC2018IOT: Αίθουσα συνεδριάσεων Snitcher

ΤΟ ΠΡΟΒΛΗΜΑ

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

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

Ένα πρόβλημα επαναλαμβάνεται καθώς το πρόγραμμα των ανθρώπων τείνει να είναι δυναμικό.

Κάποιος μπορεί να κλείσει ένα δωμάτιο νομίζοντας ότι μπορεί να το χρειαστεί και δεν θα ήθελε να χάσει το χρονοδιάγραμμα.

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

ΠΩΣ ΤΟ ΛΥΣΟΥΜΕ;

Χρησιμοποιώντας την τεχνολογία IoT - ελέγχοντας τον ήχο και την κίνηση σε μια καθορισμένη αίθουσα συσκέψεων, ελέγχουμε, κάθε συγκεκριμένο χρονικό διάστημα, αν μια αίθουσα είναι κρατημένη και όντως καταλαμβάνεται ή όχι:

1. Εάν δεν έχει γίνει κράτηση, μην κάνετε τίποτα.

2. Εάν έχει γίνει κράτηση, ελέγξτε αν εντοπίστηκε κάποια κίνηση ή ήχος.

Αν υπάρχει, μην κάνετε τίποτα.

Εάν δεν εντοπίστηκε τίποτα, στείλτε ένα προειδοποιητικό μήνυμα (μέσω email) στον χρήστη που έκανε κράτηση στο δωμάτιο και ρωτά αν το δωμάτιο εξακολουθεί να χρησιμοποιείται. εκτός εάν ο χρήστης δηλώσει ότι εξακολουθεί να χρησιμοποιεί το δωμάτιο, η κατάσταση του δωματίου θα αλλάξει σε "Διαθέσιμο".

* Εδώ, ενσωματώσαμε το έργο μας με το Ημερολόγιο Google για να το γενικεύσουμε όσο το δυνατόν περισσότερο.

Βήμα 1: Απαιτούνται υλικό και πρωτόκολλα

Απαιτείται υλικό και πρωτόκολλα
Απαιτείται υλικό και πρωτόκολλα

1. Χρησιμοποιήσαμε το NOSEMCU για να μπορέσουμε να ενημερώσουμε τα πράγματα δυναμικά χρησιμοποιώντας τη σύνδεση WIFI.

2. Αισθητήρας μικροφώνου που θα «διαβάσει» τον θόρυβο στο δωμάτιο.

3. Αισθητήρας PIR που θα ελέγξει εάν υπάρχει κάποια κίνηση.

Για χρήση λογισμικού και διακομιστή, εκτός από τον κώδικα στο Arduino, χρησιμοποιήσαμε το Google Script και το Zapier για να υποστηρίξουμε το σύστημά μας στο διαδίκτυο. Μπορείτε να δείτε τη ροή στην προστιθέμενη εικόνα (και PDF).

Χρησιμοποιήσαμε το Zapier για τη σύνδεση εφαρμογών και την αυτοματοποίηση των ροών εργασίας μας (όπως το IFTTT) και χρησιμοποιήσαμε το Google Script για να μας βοηθήσει να επικοινωνήσουμε με το Ημερολόγιο Google. Το σενάριο που γράψαμε παράγει το μήνυμα ηλεκτρονικού ταχυδρομείου του δημιουργού της εκδήλωσης, ώστε να μπορέσουμε να το στείλουμε στο Zapier και να ελέγξει αν ο χρήστης ζήτησε να κρατήσει το δωμάτιο (αποθηκεύοντας κάποιες πληροφορίες στα Υπολογιστικά φύλλα Google) πριν διαγράψει το συμβάν.

Βήμα 2: Συνδέστε το μικρόφωνο και τον αισθητήρα PIR

Συνδέστε το μικρόφωνο και τον αισθητήρα PIR
Συνδέστε το μικρόφωνο και τον αισθητήρα PIR
Συνδέστε το μικρόφωνο και τον αισθητήρα PIR
Συνδέστε το μικρόφωνο και τον αισθητήρα PIR

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

Ο αισθητήρας PIR δίνει μόνο τιμές HIGH ή LOW, οπότε ελέγξαμε μόνο το επίπεδο ευαισθησίας που είναι το πιο ακριβές για το δωμάτιο που ελέγξαμε. Αυτός ο οδηγός ήταν αρκετά χρήσιμος.

Οι ΣΥΝΔΕΣΕΙΣ ΜΑΣ:

Μικρόφωνο - όπως στην εικόνα Αισθητήρας PIR: GND> GND, OUT> D7, VCC> VN (5V)

Βήμα 3: Δημιουργήστε τη ροή εργασίας στο Zapier

Δημιουργήστε τη ροή εργασίας στο Zapier
Δημιουργήστε τη ροή εργασίας στο Zapier
Δημιουργήστε τη ροή εργασίας στο Zapier
Δημιουργήστε τη ροή εργασίας στο Zapier
Δημιουργήστε τη ροή εργασίας στο Zapier
Δημιουργήστε τη ροή εργασίας στο Zapier

Για να μάθουμε αν το δωμάτιο είναι όντως άδειο ή εξακολουθεί να χρησιμοποιείται (και οι χρήστες είναι σε διάλειμμα για παράδειγμα), θα θέλαμε να δημιουργήσουμε μια ροή που να το διασφαλίζει, αμέσως μετά την ενεργοποίηση του NodeMCU ενός Webhook στο Zapier, το οποίο ειδοποιεί ότι το δωμάτιο είναι άδειο:

(1) TRIGGER - CATCH HOOKZapier πιάνει το Webhook (που θα σταλεί από το NODEMCU)

(2) ACTION - Το GETZapier στέλνει ένα άλλο Webhook για να λάβει τα δεδομένα του συμβάντος.> Καλεί (τρέχει) ένα GoogleScript - GetCurrentEmailEventID (εξήγηση στο επόμενο βήμα), για να λάβετε τα τρέχοντα δεδομένα συμβάντος - όνομα συμβάντος, αναγνωριστικό συμβάντος, email χρήστη.

(3) ΦΙΛΤΡΟ - ΣΥΝΕΧΙΣΤΕ ΜΟΝΟ ΑΝ

Συνεχίστε στο επόμενο βήμα μόνο εάν υπάρχει ένα γεγονός (οποιοδήποτε συμβάν) που συμβαίνει αυτήν τη στιγμή στο ημερολόγιο (ROOM IS BUSY), διαφορετικά, σταματά καθώς το δωμάτιο είναι κενό.

(4) ACTION - GMAILZapier στέλνει ένα e -mail, μέσω Gmail, στο χρήστη που έκανε κράτηση στο δωμάτιο (πήρε αυτές τις πληροφορίες στο βήμα 2)

(5) ΕΝΕΡΓΕΙΑ - ΚΑΘΥΣΤΕΡΗΣΗ ΑΦΗΣΤΕ τον χρήστη να απαντήσει στο μήνυμα ηλεκτρονικού ταχυδρομείου. το δωμάτιο εξακολουθεί να επισημαίνεται ως κατειλημμένο.)

(6) ACTION - GET Μετά από 5 λεπτά, ο Zapier καλεί (τρέχει) GoogleScript - DeleteCurrentEvent- Εάν ο χρήστης δεν έκανε κλικ στον σύνδεσμο

Ελέγχει εάν το αναγνωριστικό δωματίου βρίσκεται στη λίστα "Δωμάτια προς διαγραφή"

απλώς αφαιρεί το συμβάν.

Βήμα 4: Google Scripts

Google Scripts
Google Scripts
Google Scripts
Google Scripts
Google Scripts
Google Scripts

Καθώς ενσωματώσαμε ολόκληρο το σύστημα, το GoogleScripts ήταν η ασήμαντη επιλογή ενός IDE. Έτσι, χρησιμοποιήσαμε σχετικές Βιβλιοθήκες Google. Θα αλλάξει σύμφωνα με την Πλατφόρμα κρατήσεων δωματίου.

(1) GetCurrentEmailEventID

Λειτουργεί από μια κλήση Webhook.

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

(2) ApproveCurrentEvent

Εκτελείται με ένα κλικ χρήστη.

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

(3) DeleteCurrentEvent

Λειτουργεί από μια κλήση Webhook.

Αναζητά το σχετικό αναγνωριστικό συμβάντος στη λίστα (φύλλο Google) και διαγράφει αυτό το συμβάν από το ημερολόγιο.

Βήμα 5: Συνδέστε τη ροή με τον κώδικα Arduino

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

Βήμα 6: Επισκόπηση, συμπεράσματα και μελλοντική κλιμάκωση

Image
Image

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

Για παράδειγμα, εάν το δωμάτιο έχει κλείσει για κάποια ομάδα που δεν είναι αυτήν τη στιγμή εκεί (για παράδειγμα, σε διάλειμμα), αλλά εξακολουθεί να το χρειάζεται, το NODEMCU θα διαπιστώσει ότι το δωμάτιο είναι δωρεάν> ΠΡΟΒΛΗΜΑ.

Στη συνέχεια, η λύση μας ήταν να στείλουμε μήνυμα ηλεκτρονικού ταχυδρομείου στον χρήστη που έκανε κράτηση στο δωμάτιο (κάτι που δεν ήταν απλό να καταλάβουμε) ένα messege που παρέχει την επιλογή να συνεχίσετε να κρατάτε το δωμάτιο.

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

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

ΠΕΡΙΟΡΙΣΜΟΙ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΑΣ:

1. Οι χρησιμοποιούμενοι αισθητήρες πρέπει να είναι πολύ ακριβείς και ευαίσθητοι.

2. Το μέγεθος του δωματίου περιορίζεται στην ακτίνα/το εύρος του αισθητήρα.

3. Θα πρέπει να βασιστούμε στην απόκριση του χρήστη.

4. Το σύστημά μας έχει δημιουργηθεί χρησιμοποιώντας διάφορες πλατφόρμες (ημερολόγιο Google, Gmail, Zapier κ.λπ.) και θα πρέπει να χρησιμοποιήσει την υπηρεσία του για να εκτελέσει.

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

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

ΜΕΛΛΟΝΤΙΚΕΣ ΕΞΕΛΙΞΕΙΣ:

Σίγουρα θα ανεβάσουμε το σύστημα με δύο τρόπους:

1. Δυνατότητα εργασίας με οποιαδήποτε άλλη πλατφόρμα ημερολογίου (έτσι ώστε οποιαδήποτε εταιρεία συνεργατικών χώρων να μπορεί να το χρησιμοποιήσει).

2. Δυνατότητα χειρισμού πολλαπλών δωματίων, ορόφων και χώρων.

Πιστεύουμε ότι αυτό το είδος κλίμακας θα διαρκέσει 2-3 μήνες για τη γενίκευση, τον έλεγχο και την προσθήκη πολλών χαρακτηριστικών δωματίων (ορόφων κ.λπ.).

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

Συνιστάται: