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

Ξεκινώντας με αισθητήρες ασύρματης θερμοκρασίας και δόνησης μεγάλης εμβέλειας: 7 βήματα
Ξεκινώντας με αισθητήρες ασύρματης θερμοκρασίας και δόνησης μεγάλης εμβέλειας: 7 βήματα

Βίντεο: Ξεκινώντας με αισθητήρες ασύρματης θερμοκρασίας και δόνησης μεγάλης εμβέλειας: 7 βήματα

Βίντεο: Ξεκινώντας με αισθητήρες ασύρματης θερμοκρασίας και δόνησης μεγάλης εμβέλειας: 7 βήματα
Βίντεο: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Ιούνιος
Anonim
Ξεκινώντας με αισθητήρες ασύρματης θερμοκρασίας και δόνησης μεγάλης εμβέλειας
Ξεκινώντας με αισθητήρες ασύρματης θερμοκρασίας και δόνησης μεγάλης εμβέλειας

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

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

  • Μεταλλουργικός
  • Παραγωγή ηλεκτρικής ενέργειας
  • Εξόρυξη
  • Φαγητο και ΠΟΤΟ

Έτσι, σε αυτό το Instructable θα περάσουμε τα εξής:

  • Διαμόρφωση Ασύρματων Αισθητήρων χρησιμοποιώντας XCTU και Labview UI.
  • Λήψη των τιμών δόνησης από τον αισθητήρα.
  • Κατανόηση της λειτουργίας της συσκευής xbee και του πρωτοκόλλου xbee.
  • Διαμόρφωση διαπιστευτηρίων WiFi και διαμόρφωσης IP χρησιμοποιώντας την πύλη αιχμής

Βήμα 1: Προδιαγραφή υλικού και λογισμικού

Προδιαγραφή υλικού και λογισμικού
Προδιαγραφή υλικού και λογισμικού
Προδιαγραφή υλικού και λογισμικού
Προδιαγραφή υλικού και λογισμικού
Προδιαγραφή υλικού και λογισμικού
Προδιαγραφή υλικού και λογισμικού

Προδιαγραφή υλικού

  • Ασύρματοι αισθητήρες δόνησης και θερμοκρασίας
  • Δέκτης Zigmo
  • ESP32 BLE/ συσκευή WiFi

Προδιαγραφές λογισμικού

  • Arduino IDE
  • Βοηθητικό πρόγραμμα LabView

Βήμα 2: Διαμόρφωση ασύρματου αισθητήρα και δέκτη Zigmo χρησιμοποιώντας XCTU

Διαμόρφωση ασύρματου αισθητήρα και δέκτη Zigmo χρησιμοποιώντας XCTU
Διαμόρφωση ασύρματου αισθητήρα και δέκτη Zigmo χρησιμοποιώντας XCTU
Διαμόρφωση ασύρματου αισθητήρα και δέκτη Zigmo χρησιμοποιώντας XCTU
Διαμόρφωση ασύρματου αισθητήρα και δέκτη Zigmo χρησιμοποιώντας XCTU

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

Εδώ οι ασύρματοι αισθητήρες και ο δέκτης Zigmo χρησιμοποιούν λύση χαμηλής ισχύος και μεγάλης εμβέλειας XBee. Το XBee χρησιμοποιεί ένα πρωτόκολλο ZigBee που καθορίζει τη λειτουργία σε ζώνες ISM 902 έως 928 MHz.

Το Xbee μπορεί να διαμορφωθεί χρησιμοποιώντας λογισμικό XCTU

  1. Αναζητήστε τη συσκευή Xbee ή προσθέστε μια νέα συσκευή Xbee κάνοντας κλικ στο επάνω αριστερό εικονίδιο.
  2. Η συσκευή θα εμφανίζεται στην αριστερή πλευρά.
  3. κάντε διπλό κλικ στη συσκευή για να δείτε τις ρυθμίσεις.
  4. Τώρα κάντε κλικ στο εικονίδιο της κονσόλας στην επάνω δεξιά γωνία
  5. Μπορείτε να δείτε την τιμή που έρχεται στην έξοδο της κονσόλας
  6. Εδώ έχουμε το πλαίσιο μήκους 54 byte
  7. Αυτά τα byte θα χειριστούν περαιτέρω για να πάρουν τις πραγματικές τιμές. η διαδικασία για τη λήψη των πραγματικών τιμών θερμοκρασίας και κραδασμών αναφέρεται στα επόμενα βήματα.

Βήμα 3: Ανάλυση ασύρματων τιμών θερμοκρασίας και δόνησης χρησιμοποιώντας το βοηθητικό πρόγραμμα Labview

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

Ο αισθητήρας λειτουργεί σε δύο λειτουργίες

  • Λειτουργία διαμόρφωσης: Διαμορφώστε το αναγνωριστικό Pan, καθυστέρηση, αριθ. Επαναλήψεων κ.λπ.
  • Λειτουργία εκτέλεσης: Εκτελούμε τη συσκευή σε λειτουργία εκτέλεσης. Και για να αναλύσουμε αυτές τις τιμές χρησιμοποιούμε το Βοηθητικό πρόγραμμα Labview

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

κάντε κλικ στο εικονίδιο Εκτέλεση από το μενού της σελίδας προορισμού για να μεταβείτε στη λειτουργία εκτέλεσης.

Βήμα 4: Ρύθμιση παραμέτρων DHCP/Στατικών IP ρυθμίσεων με χρήση της πύλης αιχμαλωσίας

Ρύθμιση παραμέτρων DHCP/Στατικών ρυθμίσεων IP με χρήση πύλης αιχμαλωσίας
Ρύθμιση παραμέτρων DHCP/Στατικών ρυθμίσεων IP με χρήση πύλης αιχμαλωσίας
Ρύθμιση παραμέτρων DHCP/Στατικών ρυθμίσεων IP με χρήση πύλης αιχμαλωσίας
Ρύθμιση παραμέτρων DHCP/Στατικών ρυθμίσεων IP με χρήση πύλης αιχμαλωσίας
Ρύθμιση παραμέτρων DHCP/Στατικών ρυθμίσεων IP με χρήση πύλης αιχμαλωσίας
Ρύθμιση παραμέτρων DHCP/Στατικών ρυθμίσεων IP με χρήση πύλης αιχμαλωσίας

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

Η αιχμηρή πύλη μας δίνει την επιλογή να επιλέξουμε μεταξύ των ρυθμίσεων Static και DHCP. Απλώς εισάγετε τα διαπιστευτήρια όπως το Static IP, Subnet Mask, gateway και η Wireless Sensor Gateway θα διαμορφωθεί σε αυτήν την IP.

Βήμα 5: Αποθήκευση ρυθμίσεων WiFi χρησιμοποιώντας την πύλη αιχμαλωσίας

Αποθήκευση ρυθμίσεων WiFi χρησιμοποιώντας την πύλη αιχμαλωσίας
Αποθήκευση ρυθμίσεων 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.

  1. ncd ESP32 breakout board.
  2. ncd Ασύρματοι αισθητήρες θερμοκρασίας και υγρασίας.
  3. pubsubclient
  4. UbiDots

Συνιστάται: