Πίνακας περιεχομένων:
- Βήμα 1: Προδιαγραφή υλικού και λογισμικού
- Βήμα 2: Διαμόρφωση ασύρματου αισθητήρα και δέκτη Zigmo χρησιμοποιώντας XCTU
- Βήμα 3: Ανάλυση ασύρματων τιμών θερμοκρασίας και δόνησης χρησιμοποιώντας το βοηθητικό πρόγραμμα Labview
- Βήμα 4: Ρύθμιση παραμέτρων DHCP/Στατικών IP ρυθμίσεων με χρήση της πύλης αιχμαλωσίας
- Βήμα 5: Αποθήκευση ρυθμίσεων WiFi χρησιμοποιώντας την πύλη αιχμαλωσίας
- Βήμα 6: Δημοσίευση αναγνωστικών αισθητήρων στο UbiDots
- Βήμα 7: Οπτικοποίηση των δεδομένων
Βίντεο: Ξεκινώντας με αισθητήρες ασύρματης θερμοκρασίας και δόνησης μεγάλης εμβέλειας: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:31
Μερικές φορές η δόνηση είναι η αιτία σοβαρών προβλημάτων σε πολλές εφαρμογές. Από τους άξονες και τα ρουλεμάν της μηχανής έως την απόδοση του σκληρού δίσκου, οι κραδασμοί προκαλούν ζημιά στο μηχάνημα, έγκαιρη αντικατάσταση, χαμηλή απόδοση και προκαλεί σημαντικό πλήγμα στην ακρίβεια. Η παρακολούθηση και η κατά καιρούς ανάλυση των κραδασμών στο μηχάνημα μπορεί να λύσει το πρόβλημα της πρόωρης βλάβης και φθοράς του εξαρτήματος του μηχανήματος.
Σε αυτό το διδακτικό, θα εργαστούμε πάνω στους ασύρματους αισθητήρες κραδασμών και θερμοκρασίας μεγάλης εμβέλειας IoT. Αυτοί είναι αισθητήρες βιομηχανικής ποιότητας με πολλές διαδεδομένες εφαρμογές όπως.
- Μεταλλουργικός
- Παραγωγή ηλεκτρικής ενέργειας
- Εξόρυξη
- Φαγητο και ΠΟΤΟ
Έτσι, σε αυτό το Instructable θα περάσουμε τα εξής:
- Διαμόρφωση Ασύρματων Αισθητήρων χρησιμοποιώντας XCTU και Labview UI.
- Λήψη των τιμών δόνησης από τον αισθητήρα.
- Κατανόηση της λειτουργίας της συσκευής xbee και του πρωτοκόλλου xbee.
- Διαμόρφωση διαπιστευτηρίων WiFi και διαμόρφωσης IP χρησιμοποιώντας την πύλη αιχμής
Βήμα 1: Προδιαγραφή υλικού και λογισμικού
Προδιαγραφή υλικού
- Ασύρματοι αισθητήρες δόνησης και θερμοκρασίας
- Δέκτης Zigmo
- ESP32 BLE/ συσκευή WiFi
Προδιαγραφές λογισμικού
- Arduino IDE
- Βοηθητικό πρόγραμμα LabView
Βήμα 2: Διαμόρφωση ασύρματου αισθητήρα και δέκτη Zigmo χρησιμοποιώντας XCTU
Κάθε συσκευή IoT χρειάζεται ένα πρωτόκολλο επικοινωνίας για να τοποθετήσει τη συσκευή στο cloud και να ρυθμίσει μια ασύρματη διεπαφή μεταξύ διαφορετικών συσκευών.
Εδώ οι ασύρματοι αισθητήρες και ο δέκτης Zigmo χρησιμοποιούν λύση χαμηλής ισχύος και μεγάλης εμβέλειας XBee. Το XBee χρησιμοποιεί ένα πρωτόκολλο ZigBee που καθορίζει τη λειτουργία σε ζώνες ISM 902 έως 928 MHz.
Το Xbee μπορεί να διαμορφωθεί χρησιμοποιώντας λογισμικό XCTU
- Αναζητήστε τη συσκευή Xbee ή προσθέστε μια νέα συσκευή Xbee κάνοντας κλικ στο επάνω αριστερό εικονίδιο.
- Η συσκευή θα εμφανίζεται στην αριστερή πλευρά.
- κάντε διπλό κλικ στη συσκευή για να δείτε τις ρυθμίσεις.
- Τώρα κάντε κλικ στο εικονίδιο της κονσόλας στην επάνω δεξιά γωνία
- Μπορείτε να δείτε την τιμή που έρχεται στην έξοδο της κονσόλας
- Εδώ έχουμε το πλαίσιο μήκους 54 byte
- Αυτά τα byte θα χειριστούν περαιτέρω για να πάρουν τις πραγματικές τιμές. η διαδικασία για τη λήψη των πραγματικών τιμών θερμοκρασίας και κραδασμών αναφέρεται στα επόμενα βήματα.
Βήμα 3: Ανάλυση ασύρματων τιμών θερμοκρασίας και δόνησης χρησιμοποιώντας το βοηθητικό πρόγραμμα Labview
Ο αισθητήρας λειτουργεί σε δύο λειτουργίες
- Λειτουργία διαμόρφωσης: Διαμορφώστε το αναγνωριστικό Pan, καθυστέρηση, αριθ. Επαναλήψεων κ.λπ.
- Λειτουργία εκτέλεσης: Εκτελούμε τη συσκευή σε λειτουργία εκτέλεσης. Και για να αναλύσουμε αυτές τις τιμές χρησιμοποιούμε το Βοηθητικό πρόγραμμα Labview
Αυτό το περιβάλλον εργασίας χρήστη του Labview δείχνει τις τιμές σε ωραία γραφήματα. Δείχνει τις τρέχουσες καθώς και τις προηγούμενες τιμές. Μπορείτε να μεταβείτε σε αυτόν τον σύνδεσμο για να κατεβάσετε το περιβάλλον εργασίας χρήστη του Labview.
κάντε κλικ στο εικονίδιο Εκτέλεση από το μενού της σελίδας προορισμού για να μεταβείτε στη λειτουργία εκτέλεσης.
Βήμα 4: Ρύθμιση παραμέτρων DHCP/Στατικών IP ρυθμίσεων με χρήση της πύλης αιχμαλωσίας
Χρησιμοποιούμε την αποκλειστική πύλη για να αποθηκεύσουμε τα διαπιστευτήρια WiFi και να τοποθετήσουμε το δείκτη του ποντικιού στις ρυθμίσεις IP. Για τη λεπτομερή εισαγωγή στην πύλη αιχμής, μπορείτε να διαβάσετε τα παρακάτω διδακτικά.
Η αιχμηρή πύλη μας δίνει την επιλογή να επιλέξουμε μεταξύ των ρυθμίσεων Static και DHCP. Απλώς εισάγετε τα διαπιστευτήρια όπως το Static IP, Subnet Mask, gateway και η Wireless Sensor Gateway θα διαμορφωθεί σε αυτήν την IP.
Βήμα 5: Αποθήκευση ρυθμίσεων WiFi χρησιμοποιώντας την πύλη αιχμαλωσίας
Φιλοξενείται μια ιστοσελίδα όπου εμφανίζεται μια λίστα με τα διαθέσιμα δίκτυα WiFi και εκεί RSSI. Επιλέξτε το δίκτυο WiFi και τον κωδικό πρόσβασης και πληκτρολογήστε υποβολή. Τα διαπιστευτήρια θα αποθηκευτούν στο EEPROM και η ρύθμιση IP θα αποθηκευτεί στο SPIFFS. Περισσότερα για αυτό μπορείτε να βρείτε σε αυτό το εκπαιδευτικό.
Βήμα 6: Δημοσίευση αναγνωστικών αισθητήρων στο UbiDots
Εδώ χρησιμοποιούμε Ασύρματους αισθητήρες θερμοκρασίας και δόνησης με τον δέκτη πύλης ESP 32 για να λάβουμε τα δεδομένα θερμοκρασίας και υγρασίας. Στέλνουμε τα δεδομένα στο UbiDots χρησιμοποιώντας το πρωτόκολλο MQTT. Το MQTT ακολουθεί έναν μηχανισμό δημοσίευσης και εγγραφής και όχι αυτό το αίτημα και απάντηση. Είναι πιο γρήγορο και αξιόπιστο από το HTTP. Αυτό λειτουργεί ως εξής.
Ανάγνωση δεδομένων ασύρματου αισθητήρα
Λαμβάνουμε ένα πλαίσιο 29 byte από τους Ασύρματους αισθητήρες θερμοκρασίας και δόνησης. Αυτό το πλαίσιο χειρίζεται για να λάβει την πραγματική θερμοκρασία και τα δεδομένα δόνησης
if (Serial2.available ()) {data [0] = Serial2.read (); καθυστέρηση (k)? if (δεδομένα [0] == 0x7E) {Serial.println ("Got Packet"); ενώ (! Serial2.available ()); για (i = 1; i <55; i ++) {data = Serial2.read (); καθυστέρηση (1)? } if (δεδομένα [15] == 0x7F) /////// για να ελέγξετε αν τα δεδομένα ανάκτησης είναι σωστά {if (δεδομένα [22] == 0x08) //////// βεβαιωθείτε ότι ο τύπος αισθητήρα είναι σωστό {rms_x = ((uint16_t) (((δεδομένα [24]) << 16) + ((δεδομένα [25]) << 8) + (δεδομένα [26]))/100); rms_y = ((uint16_t) (((δεδομένα [27]) << 16) + ((δεδομένα [28]) << 8) + (δεδομένα [29]))/100); rms_z = ((uint16_t) (((δεδομένα [30]) << 16) + ((δεδομένα [31]) << 8) + (δεδομένα [32]))/100); max_x = ((uint16_t) (((δεδομένα [33]) << 16) + ((δεδομένα [34]) << 8) + (δεδομένα [35]))/100); max_y = ((uint16_t) (((δεδομένα [36]) << 16) + ((δεδομένα [37]) << 8) + (δεδομένα [38]))/100); max_z = ((uint16_t) (((δεδομένα [39]) << 16) + ((δεδομένα [40]) << 8) + (δεδομένα [41]))/100);
min_x = ((uint16_t) (((δεδομένα [42]) << 16) + ((δεδομένα [43]) << 8) + (δεδομένα [44]))/100); min_y = ((uint16_t) (((δεδομένα [45]) << 16) + ((δεδομένα [46]) << 8) + (δεδομένα [47]))/100); min_z = ((uint16_t) (((δεδομένα [48]) << 16) + ((δεδομένα [49]) << 8) + (δεδομένα [50]))/100);
cTemp = (((((δεδομένα [51]) * 256) + δεδομένα [52])); μπαταρία πλωτήρα = ((δεδομένα [18] * 256) + δεδομένα [19]); τάση πλωτήρα = 0.00322 * μπαταρία. Serial.print ("Αριθμός αισθητήρα"); Serial.println (δεδομένα [16]); Serial.print ("Τύπος αισθητήρα"); Serial.println (δεδομένα [22]); Serial.print ("Έκδοση υλικολογισμικού"); Serial.println (δεδομένα [17]); Serial.print ("Θερμοκρασία σε Κελσίου:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("δόνηση RMS στον άξονα Χ:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("δόνηση RMS στον άξονα Υ:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("δόνηση RMS στον άξονα Ζ:"); Serial.print (rms_z); Serial.println ("mg");
Serial.print ("Ελάχιστη δόνηση στον άξονα Χ:");
Serial.print (min_x); Serial.println ("mg"); Serial.print ("Ελάχιστη δόνηση στον άξονα Υ:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Ελάχιστη δόνηση στον άξονα Ζ:"); Serial.print (min_z); Serial.println ("mg");
Serial.print ("ADC value:");
Serial.println (μπαταρία); Serial.print ("Τάση μπαταρίας:"); Serial.print (τάση); Serial.println ("\ n"); if (τάση <1) {Serial.println ("Timeρα για αντικατάσταση της μπαταρίας"); }}} else {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); καθυστέρηση (1)? }}}}
Σύνδεση με το UbiDots MQTT API
Συμπεριλάβετε το αρχείο κεφαλίδας για τη διαδικασία MQTT
#include "PubSubClient.h"
ορίστε άλλες μεταβλητές για το MQTT όπως όνομα πελάτη, διεύθυνση μεσίτη, αναγνωριστικό διακριτικού (Παίρνουμε το αναγνωριστικό διακριτικού από την EEPROM)
#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; ωφέλιμο φορτίο char [100]? char θέμα [150]; // δημιουργία μεταβλητής για αποθήκευση αναγνωριστικού διακριτικού String tokenId;
Δημιουργήστε μεταβλητές για αποθήκευση διαφορετικών δεδομένων αισθητήρων και δημιουργήστε μια μεταβλητή char για αποθήκευση θέματος
#define VARIABLE_LABEL_TEMPF "tempF" // Assing the variable label #define VARIABLE_LABEL_TEMPC "tempC" // Assing the variable label #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid label" // assing
char topic1 [100];
char topic2 [100]; char topic3 [100];
δημοσιεύστε τα δεδομένα στο αναφερόμενο θέμα MQTT, το ωφέλιμο φορτίο θα μοιάζει με {"tempc": {value: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (ωφέλιμο φορτίο, "%s", "");
// Καθαρίζει το ωφέλιμο sprintf (ωφέλιμο φορτίο, "{"%s / ":", VARIABLE_LABEL_TEMPC);
// Προσθέτει την τιμή sprintf (ωφέλιμο φορτίο, "%s {" value / ":%s}", ωφέλιμο φορτίο, str_cTemp);
// Προσθέτει την τιμή sprintf (ωφέλιμο φορτίο, "%s}", ωφέλιμο φορτίο);
// Κλείνει τις αγκύλες του λεξικού Serial.println (ωφέλιμο φορτίο).
Serial.println (client.publish (topic1, payload)? "Published": "notpublished");
// Κάντε το ίδιο και για άλλο θέμα
Το client.publish () δημοσιεύει τα δεδομένα στο UbiDots
Βήμα 7: Οπτικοποίηση των δεδομένων
- Μεταβείτε στο Ubidots και συνδεθείτε στο λογαριασμό σας.
- Μεταβείτε στον Πίνακα ελέγχου από την καρτέλα Δεδομένα που εμφανίζεται στο επάνω μέρος.
- Τώρα κάντε κλικ στο εικονίδιο "+" για να προσθέσετε τα νέα γραφικά στοιχεία.
- Επιλέξτε ένα widget από τη λίστα και προσθέστε μια μεταβλητή και συσκευές.
- Τα δεδομένα των αισθητήρων μπορούν να απεικονιστούν στον πίνακα ελέγχου χρησιμοποιώντας διαφορετικά γραφικά στοιχεία.
Γενικός Κώδικας
Ο κωδικός Over για HTML και ESP32 μπορεί να βρεθεί σε αυτό το αποθετήριο GitHub.
- ncd ESP32 breakout board.
- ncd Ασύρματοι αισθητήρες θερμοκρασίας και υγρασίας.
- pubsubclient
- UbiDots
Συνιστάται:
Αποστολή δεδομένων ασύρματης δόνησης και αισθητήρα θερμοκρασίας στο Excel χρησιμοποιώντας το Node-RED: 25 βήματα
Αποστολή δεδομένων ασύρματης δόνησης και αισθητήρα θερμοκρασίας στο Excel με χρήση του Node-RED: Παρουσίαση του ασύρματου αισθητήρα δόνησης και θερμοκρασίας NCD's Long Range IoT Industrial, με εύρος έως και 2 μιλίων τη χρήση ασύρματης δομής δικτύωσης πλέγματος. Ενσωματώνοντας έναν αισθητήρα δόνησης και θερμοκρασίας 16-bit ακριβείας, αυτή η συσκευή μετατρέπει
Αποστολή δεδομένων ασύρματης δόνησης και θερμοκρασίας στα Υπολογιστικά φύλλα Google χρησιμοποιώντας το Node-RED: 37 βήματα
Αποστολή δεδομένων ασύρματης δόνησης και θερμοκρασίας στα Υπολογιστικά φύλλα Google χρησιμοποιώντας το Node-RED: Παρουσίαση του ασύρματου αισθητήρα δόνησης και θερμοκρασίας NCD's Long Range IoT Industrial, με εύρος έως και 2 μιλίων με τη χρήση ασύρματης δομής δικτύωσης πλέγματος. Ενσωματώνοντας έναν αισθητήρα δόνησης και θερμοκρασίας 16-bit ακριβείας, αυτή η συσκευή μετατρέπει
Node-RED Με αισθητήρα δόνησης και θερμοκρασίας IoT μεγάλης εμβέλειας: 34 βήματα
Node-RED With IoT Long Range Vibration and Temperature Sensor: Παρουσιάζουμε τον ασύρματο αισθητήρα υγρασίας θερμοκρασίας μεγάλης εμβέλειας της NCD, με εύρος έως 28 Mile χρησιμοποιώντας αρχιτεκτονική ασύρματης δικτύωσης πλέγματος. Ο ενσωματωμένος αισθητήρας υγρασίας Honeywell HIH9130 μεταδίδει εξαιρετικά ακριβή θερμοκρασία
Αποστολή δεδομένων αισθητήρα ασύρματης θερμοκρασίας και υγρασίας IoT μεγάλης εμβέλειας στο Φύλλο Google: 39 βήματα
Αποστολή δεδομένων αισθητήρα θερμοκρασίας και υγρασίας IoT μεγάλης εμβέλειας στο φύλλο Google: Χρησιμοποιούμε εδώ τον αισθητήρα θερμοκρασίας και υγρασίας του NCD, αλλά τα βήματα παραμένουν ίσα για οποιοδήποτε από τα προϊόντα ncd, οπότε αν έχετε άλλους ασύρματους αισθητήρες ncd, μπορείτε να παρατηρήσετε παράλληλα εκτός. Με τη διακοπή αυτού του κειμένου, πρέπει να
Αισθητήρας ασύρματης θερμοκρασίας και υγρασίας IOT μεγάλης εμβέλειας με κόκκινο κόμβο: 27 βήματα
Αισθητήρας ασύρματης θερμοκρασίας και υγρασίας IOT Long Range With Node-Red: Παρουσιάζουμε τον ασύρματο αισθητήρα θερμοκρασίας και υγρασίας μεγάλης εμβέλειας της NCD, με εμβέλεια έως και 28 Mile χρησιμοποιώντας αρχιτεκτονική ασύρματης δικτύωσης πλέγματος. Ο ενσωματωμένος αισθητήρας θερμοκρασίας-υγρασίας Honeywell HIH9130 μεταδίδει εξαιρετικά ακριβή θερμοκρασία