- Απαιτούμενα στοιχεία
- Διάγραμμα κυκλώματος
- Ρύθμιση Thinger.io για καταγραφικό θερμοκρασίας ESP8266
- Ρύθμιση IFTTT για NodeMCU Data Logger
- Προγραμματισμός NodeMCU για καταγραφή δεδομένων
- Καταγραφή δεδομένων στο Thinger.io από το NodeMCU
- Δημιουργία Endpoint στο Thinger.io για αποστολή ειδοποίησης μέσω email
Προηγουμένως χρησιμοποιήσαμε το NodeMCU για καταγραφή δεδομένων θερμοκρασίας στο φύλλο Google Τώρα εδώ πρόκειται να στείλουμε δεδομένα στο Thinger.io IoT cloud και να τα εμφανίσουμε σε ελκυστική γραφική μορφή. Ένας αισθητήρας BMP180 συνδέεται με το NodeMCU ESP8266 για τη συλλογή δεδομένων θερμοκρασίας, υγρασίας και υψομέτρου, τα οποία θα σταλούν στην πλατφόρμα Thinger.io. Σε αυτό το σεμινάριο, θα μάθουμε πώς να διαχειριζόμαστε διαφορετικές λειτουργίες της πλατφόρμας thinger.io, όπως συσκευές, τελικά σημεία, κάδο δεδομένων ή διακριτικά πρόσβασης.
Απαιτούμενα στοιχεία
- NodeMCU ESP8266
- Αισθητήρας πίεσης BMP180
- Καλώδια αλτών
- Ψωμί
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για αυτό το καταγραφικό ESP8266 είναι πολύ απλό, εδώ μόνο ο αισθητήρας BMP180 είναι διασυνδεδεμένος με το NodeMCU.
Ο αισθητήρας BMP180 χρησιμοποιεί το πρωτόκολλο επικοινωνίας I2C. Επομένως, πρέπει να συνδέσετε τους ακροδέκτες SCL και SDA του BMP180 με τους ακροδέκτες SCL και SDA (D1 και D2) του NodeMCU. Επίσης, συνδέστε τον πείρο V IN και GND του BMP180 σε 3.3V και το GND του NodeMCU. Μην συνδέετε τον αισθητήρα απευθείας στο 5V, επειδή μπορεί να καταστρέψει μόνιμα τον αισθητήρα.
Για να μάθετε περισσότερα για το NodeMCU, ελέγξτε διάφορα έργα IoT με βάση το NodeMCU ESP8266.
Ρύθμιση Thinger.io για καταγραφικό θερμοκρασίας ESP8266
Το Thinger.io είναι μια πλατφόρμα ανοιχτού κώδικα για το Διαδίκτυο των πραγμάτων. Παρέχει κάθε απαραίτητο εργαλείο για την πρωτότυπη, κλιμάκωση και διαχείριση συνδεδεμένων προϊόντων με πολύ απλό τρόπο. Το Thinger.io παρέχει τρία βασικά εργαλεία, δηλαδή Data Bucks, Dashboard και Endpoint για εργασία με δεδομένα συσκευών. Αυτά τα εργαλεία μπορούν να χρησιμοποιηθούν για την οπτικοποίηση των δεδομένων της συσκευής και την επέκταση της διαλειτουργικότητας των συσκευών.
Data Bucks: Το εργαλείο Data Bucks μπορεί να χρησιμοποιηθεί για την αποθήκευση δεδομένων συσκευών με κλιμάκωση, προγραμματισμό διαφορετικών διαστημάτων δειγματοληψίας ή καταγραφής συμβάντων που προκύπτουν από συσκευές.
Dashboard: Το εργαλείο Dashboard διαθέτει ορισμένα πάνελ με προσαρμόσιμα widget που μπορούν να δημιουργηθούν μέσα σε λίγα λεπτά χρησιμοποιώντας τεχνολογία μεταφοράς και απόθεσης για να οπτικοποιήσετε τα δεδομένα σε πραγματικό χρόνο και αποθηκευμένα.
Endpoints: Τα Endpoints μπορούν να χρησιμοποιηθούν για την ενσωμάτωση της πλατφόρμας με άλλες υπηρεσίες όπως IFTTT, προσαρμοσμένες υπηρεσίες Web, email ή κλήση άλλων συσκευών.
Σε αυτήν την καταγραφή ESP8266, θα εξερευνήσουμε αυτά τα εργαλεία.
Για να στείλετε δεδομένα στο Thinger.io, πρέπει να δημιουργήσετε έναν δωρεάν λογαριασμό στην πλατφόρμα Thinger.io και να ακολουθήσετε τα παρακάτω βήματα για να συνδέσετε τη συσκευή σας.
Βήμα 1: Το πρώτο βήμα είναι να δημιουργήσετε μια νέα συσκευή. Για να δημιουργήσετε μια νέα συσκευή, κάντε κλικ στο Συσκευές στην καρτέλα μενού και, στη συνέχεια, κάντε κλικ στο κουμπί Προσθήκη συσκευής.
Στη συνέχεια, συμπληρώστε τη φόρμα με το αναγνωριστικό της συσκευής, την περιγραφή και τα διαπιστευτήρια ή δημιουργήστε τυχαία διαπιστευτήρια για τη συσκευή σας και κάντε κλικ στο " Προσθήκη συσκευής ".
Αυτό είναι όλο; η συσκευή σας είναι έτοιμη για σύνδεση. Στο επόμενο βήμα, θα προγραμματίσουμε το NodeMCU για την αποστολή των δεδομένων στην πλατφόρμα Thinger.io.
Ρύθμιση IFTTT για NodeMCU Data Logger
Εδώ χρησιμοποιούμε IFTTT για να στείλουμε προειδοποιήσεις μέσω email όταν η θερμοκρασία υπερβαίνει το όριο. Το IFTTT (If This Then That) είναι μια διαδικτυακή υπηρεσία μέσω της οποίας μπορούμε να δημιουργήσουμε αλυσίδες υπό όρους, που ονομάζονται applets. Χρησιμοποιώντας αυτές τις μικροεφαρμογές, μπορούμε να στείλουμε ειδοποιήσεις μέσω email, Twitter, Facebook.
Για να χρησιμοποιήσετε το IFTTT, συνδεθείτε στο λογαριασμό IFTTT εάν έχετε ήδη έναν ή δημιουργήστε λογαριασμό.
Τώρα αναζητήστε « Webhooks » και κάντε κλικ στην ενότητα « Webhooks » στις Υπηρεσίες.
Στη συνέχεια, στο παράθυρο Webhooks, κάντε κλικ στο «Τεκμηρίωση» στην επάνω δεξιά γωνία για να λάβετε το ιδιωτικό κλειδί. Αντιγράψτε αυτό το κλειδί, αυτό το κλειδί θα χρησιμοποιηθεί κατά τη δημιουργία του Endpoint στο Thinger.io.
Μετά από αυτό, δημιουργήστε μια μικροεφαρμογή χρησιμοποιώντας υπηρεσίες Webhooks και Email . Για να δημιουργήσετε μια μικροεφαρμογή, κάντε κλικ στο προφίλ σας και μετά κάντε κλικ στο « Δημιουργία. "
Τώρα στο επόμενο παράθυρο, κάντε κλικ στο εικονίδιο " Αυτό ". Τώρα αναζητήστε Webhooks στην ενότητα αναζήτησης και κάντε κλικ στο " Webhooks ".
Τώρα επιλέξτε " Λήψη αιτήματος Ιστού" σκανδάλη και εισαγάγετε το όνομα του συμβάντος ως θερμοκρασία και στη συνέχεια κάντε κλικ στο Δημιουργία σκανδάλης
Μετά από αυτό, κάντε κλικ στο " Τότε αυτό" και στη συνέχεια κάντε κλικ στο Email.
Τώρα στο email, κάντε κλικ στο "στείλτε μου ένα email" και εισαγάγετε το θέμα και το σώμα του email και, στη συνέχεια, κάντε κλικ στο Δημιουργία ενέργειας. Στο τελευταίο βήμα, κάντε κλικ στο « Τέλος » για να ολοκληρώσετε τη ρύθμιση Applet.
Προγραμματισμός NodeMCU για καταγραφή δεδομένων
Ο πλήρης κωδικός για την αποστολή δεδομένων στο Thinger.io δίνεται στο τέλος της σελίδας. Εδώ, εξηγούμε ορισμένα σημαντικά μέρη.
Ξεκινήστε τον κώδικα συμπεριλαμβάνοντας όλες τις απαιτούμενες βιβλιοθήκες. Το ThingerESP8266.h χρησιμοποιείται για τη δημιουργία σύνδεσης μεταξύ της πλατφόρμας IoT και του NodeMCU, ενώ το Adafruit_BMP085.h χρησιμοποιείται για την ανάγνωση των δεδομένων αισθητήρα BMP. Μπορείτε να εγκαταστήσετε τη βιβλιοθήκη ThingerESP8266.h από τον διαχειριστή βιβλιοθήκης Arduino IDEs.
#περιλαμβάνω
Στη συνέχεια, εισαγάγετε διαπιστευτήρια στον κώδικα, ώστε η συσκευή να μπορεί να αναγνωριστεί και να συσχετιστεί με τον λογαριασμό σας.
#define USERNAME "Το όνομα χρήστη του λογαριασμού σας" #define DEVICE_ID "NodeMCU" // Το όνομα της συσκευής σας #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Στη συνέχεια, εισαγάγετε το όνομα του τελικού σας σημείου. Το τελικό σημείο χρησιμοποιείται για την ενσωμάτωση της πλατφόρμας με εξωτερικές υπηρεσίες όπως IFTTT, HTTTP αίτημα κ.λπ.
# καθορισμός EMAIL_ENDPOINT "IFTTT"
Ορίστε τις μεταβλητές για την αποθήκευση των δεδομένων πίεσης, θερμοκρασίας και υψομέτρου.
int πίεση, θερμοκρασία, υψόμετρο;
Μέσα στον κενό βρόχο (), διαβάστε τα δεδομένα του αισθητήρα. Ο τύπος δεδομένων pson μπορεί να περιέχει διαφορετικούς τύπους δεδομένων. Έτσι, ο τύπος δεδομένων Pson χρησιμοποιείται για τη λήψη πολλαπλών τιμών ταυτόχρονα.
πράγμα >> (pson & out) {out = bmp.readPressure () / 100; out = bmp.readAltitude (); out = bmp.readTemperature (); };
Χρησιμοποιήστε το αν προϋπόθεση για να καλέσετε το τελικό σημείο, αν η τιμή της θερμοκρασίας περνάει τους 15 βαθμούς. Εδώ τα δεδομένα είναι το όνομα Endpoint.
εάν (Θερμοκρασία> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "data");} Serial.print ("Αποστολή δεδομένων");
Καταγραφή δεδομένων στο Thinger.io από το NodeMCU
Τώρα συνδέστε τον αισθητήρα BMP στο NodeMCU και ανεβάστε τον κωδικό. Το NodeMCU θα χρησιμοποιήσει τα διαπιστευτήρια του λογαριασμού σας για να συνδεθεί με τη συσκευή που δημιουργήσατε νωρίτερα. Εάν συνδεθεί επιτυχώς, θα εμφανιστεί συνδεδεμένο, όπως φαίνεται στην παρακάτω εικόνα:
Μπορείτε να ελέγξετε τα στατιστικά στοιχεία της συσκευής σας όπως τα μεταδιδόμενα δεδομένα, τα ληφθέντα δεδομένα, τη διεύθυνση IP, τη σύνδεση με το χρόνο κ.λπ. κάνοντας απλώς κλικ στο όνομα της συσκευής από το μενού Συσκευές.
Καθώς λαμβάνουμε τώρα τα δεδομένα, θα δημιουργήσουμε έναν πίνακα ελέγχου για την οπτικοποίηση των δεδομένων χρησιμοποιώντας τα widget.
Για να δημιουργήσετε έναν πίνακα ελέγχου, κάντε κλικ στο ταμπλό από την καρτέλα μενού και, στη συνέχεια, κάντε κλικ στο « Προσθήκη πίνακα ελέγχου ».
Τώρα στο επόμενο παράθυρο, εισαγάγετε τις λεπτομέρειες του ταμπλό, όπως το όνομα του ταμπλό, το αναγνωριστικό και την περιγραφή και, στη συνέχεια, κάντε κλικ στο ταμπλό.
Μετά από αυτό, μεταβείτε στον νέο πίνακα ελέγχου κάνοντας κλικ στο όνομα του πίνακα ελέγχου. Από προεπιλογή, ο πίνακας ελέγχου θα εμφανίζεται κενός. Για να προσθέσετε τα Widgets, πρέπει πρώτα να ενεργοποιήσετε τη λειτουργία επεξεργασίας κάνοντας κλικ στον επάνω δεξιό διακόπτη του ταμπλό. Στη συνέχεια, κάντε κλικ στο κουμπί " Προσθήκη Widget" .
Όταν κάνετε κλικ στο κουμπί " Προσθήκη Widget" , θα εμφανιστεί ένα αναδυόμενο παράθυρο όπου μπορείτε να επιλέξετε τον τύπο widget, το χρώμα φόντου, κ.λπ. Στην περίπτωσή μου, έχω επιλέξει το Gauge Widget.
Όταν κάνετε κλικ στην αποθήκευση, θα σας μεταφέρει στην επόμενη οθόνη όπου θα πρέπει να επιλέξετε τη λειτουργία προέλευσης τιμής, συσκευής, πόρου, τιμής και ανανέωσης. Επιλέξτε όλες τις τιμές και μετά κάντε κλικ στο κουμπί Αποθήκευση.
Τώρα επαναλάβετε την ίδια διαδικασία για τις υπόλοιπες μεταβλητές. Το ταμπλό μου έμοιαζε με αυτό:
Δημιουργία Endpoint στο Thinger.io για αποστολή ειδοποίησης μέσω email
Τώρα θα δημιουργήσουμε ένα Endpoint για να ενσωματώσουμε το Thinger.io με το IFTTT. Ένα τελικό σημείο μπορεί να κληθεί από τη συσκευή για να εκτελέσει οποιαδήποτε ενέργεια, όπως αποστολή email, αποστολή SMS, κλήση REST API, αλληλεπίδραση με IFTTT, κλήση συσκευής από διαφορετικό λογαριασμό ή κλήση οποιουδήποτε άλλου τελικού σημείου
Για να δημιουργήσετε ένα Endpoint, κάντε κλικ στην επιλογή «Endpoint» από τις καρτέλες μενού και, στη συνέχεια, κάντε κλικ στο «Add Endpoint».
Τώρα στο επόμενο παράθυρο, εισαγάγετε τις απαιτούμενες λεπτομέρειες. Οι λεπτομέρειες είναι:
Αναγνωριστικό Endpoint: Μοναδικό αναγνωριστικό για το endpoint σας.
Endpoint Περιγραφή: Γράψτε μια περιγραφή ή λεπτομερείς πληροφορίες σχετικά με το Endpoint σας.
Τύπος Endpoint: Επιλέξτε τον τύπο Endpoint από τις συγκεκριμένες επιλογές.
Όνομα συμβάντος κατασκευαστή: Εισαγάγετε το όνομα της μικροεφαρμογής IFTTT.
Κλειδί καναλιού Maker: Το μυστικό κλειδί Webhooks σας.
Μετά από αυτό, κάντε κλικ στο Test Endpoint για να ελέγξετε αν όλα λειτουργούν. Θα σας στείλει ένα email με προειδοποίηση σχετικά με τα δεδομένα θερμοκρασίας.
Αντί να χρησιμοποιήσετε το IFTTT Webhook Trigger, μπορείτε να στείλετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου ή τηλεγράφημα ή μπορείτε να στείλετε ένα αίτημα HTTP χρησιμοποιώντας τις λειτουργίες Endpoint
Με αυτόν τον τρόπο μπορεί να χρησιμοποιηθεί ένα NodeMCU ESP8266 για την καταγραφή δεδομένων θερμοκρασίας, πίεσης και υψομέτρου από τον αισθητήρα BMP180 στο Διαδίκτυο.
Στο τέλος της σελίδας δίνονται ένα βίντεο εργασίας και πλήρης κωδικός.