Inhaltsverzeichnis:

Erste Schritte mit drahtlosen Temperatur- und Vibrationssensoren mit großer Reichweite - Gunook
Erste Schritte mit drahtlosen Temperatur- und Vibrationssensoren mit großer Reichweite - Gunook

Video: Erste Schritte mit drahtlosen Temperatur- und Vibrationssensoren mit großer Reichweite - Gunook

Video: Erste Schritte mit drahtlosen Temperatur- und Vibrationssensoren mit großer Reichweite - Gunook
Video: Industrial Internet of Things: Potential, Märkte, Zukunft der Produktion 2024, November
Anonim
Erste Schritte mit drahtlosen Temperatur- und Vibrationssensoren mit großer Reichweite
Erste Schritte mit drahtlosen Temperatur- und Vibrationssensoren mit großer Reichweite

Manchmal sind Vibrationen in vielen Anwendungen die Ursache für ernsthafte Probleme. Von Maschinenwellen und Lagern bis hin zur Festplattenleistung führen Vibrationen zu Maschinenschäden, frühzeitigem Austausch, geringer Leistung und beeinträchtigen die Genauigkeit erheblich. Die Überwachung und zeitliche Analyse von Schwingungen in der Maschine kann das Problem der frühzeitigen Beschädigung und des Verschleißes des Maschinenteils lösen.

In diesem anweisbaren werden wir an den drahtlosen IoT-Langstrecken-Vibrations- und Temperatursensoren arbeiten. Dies sind Sensoren in Industriequalität mit vielen weit verbreiteten Anwendungen wie z.

  • Metallbearbeitung
  • Stromerzeugung
  • Bergbau
  • Nahrungsmittel und Getränke

Also, in diesem Instructable werden wir folgendes durchgehen:

  • Konfigurieren von drahtlosen Sensoren mit XCTU und Labview UI.
  • Abrufen der Vibrationswerte vom Sensor.
  • Verstehen der Funktionsweise des xbee-Geräts und des xbee-Protokolls.
  • Konfigurieren von WLAN-Anmeldeinformationen und IP-Konfiguration mit dem Captive-Portal

Schritt 1: Hardware- und Softwarespezifikation

Hardware- und Softwarespezifikation
Hardware- und Softwarespezifikation
Hardware- und Softwarespezifikation
Hardware- und Softwarespezifikation
Hardware- und Softwarespezifikation
Hardware- und Softwarespezifikation

Hardware-Spezifikation

  • Drahtlose Vibrations- und Temperatursensoren
  • Zigmo-Empfänger
  • ESP32 BLE/ WLAN-Gerät

Softwarespezifikation

  • Arduino-IDE
  • LabView-Dienstprogramm

Schritt 2: Konfigurieren des Funksensors und des Zigmo-Empfängers mit XCTU

Konfigurieren von Funksensor und Zigmo-Empfänger mit XCTU
Konfigurieren von Funksensor und Zigmo-Empfänger mit XCTU
Konfigurieren von Funksensor und Zigmo-Empfänger mit XCTU
Konfigurieren von Funksensor und Zigmo-Empfänger mit XCTU

Jedes IoT-Gerät benötigt ein Kommunikationsprotokoll, um das Gerät über die Cloud zu stellen und eine drahtlose Schnittstelle zwischen verschiedenen Geräten einzurichten.

Hier verwenden die drahtlosen Sensoren und der Zigmo-Empfänger die Low-Power- und Long-Range-Lösung XBee. XBee verwendet ein ZigBee-Protokoll, das den Betrieb in 902 bis 928 MHz ISM-Bändern spezifiziert.

Xbee kann mit der XCTU-Software konfiguriert werden

  1. Suchen Sie nach dem Xbee-Gerät oder fügen Sie ein neues Xbee-Gerät hinzu, indem Sie auf das Symbol oben links klicken.
  2. Das Gerät wird auf der linken Seite aufgelistet.
  3. Doppelklicken Sie auf das Gerät, um die Einstellungen anzuzeigen.
  4. Klicken Sie nun auf das Konsolensymbol in der oberen rechten Ecke
  5. Sie können den Wert in der Konsolenausgabe sehen
  6. Hier erhalten wir den Frame der Länge 54 Bytes
  7. diese Bytes würden weiter manipuliert, um die echten Werte zu erhalten. Das Verfahren zum Erhalten der tatsächlichen Temperatur- und Vibrationswerte wird in den nächsten Schritten beschrieben.

Schritt 3: Drahtlose Analyse der Temperatur- und Schwingungswerte mit dem Labview-Dienstprogramm

Drahtlose Analyse von Temperatur- und Schwingungswerten mit dem Labview-Dienstprogramm
Drahtlose Analyse von Temperatur- und Schwingungswerten mit dem Labview-Dienstprogramm
Drahtlose Analyse von Temperatur- und Schwingungswerten mit dem Labview-Dienstprogramm
Drahtlose Analyse von Temperatur- und Schwingungswerten mit dem Labview-Dienstprogramm

Der Sensor läuft in zwei Modi

  • Konfigurationsmodus: Konfigurieren Sie die Pan-ID, die Verzögerung, die Anzahl der Wiederholungen usw. Mehr dazu liegt außerhalb des Rahmens dieser Anleitung und wird in der nächsten Anleitung erläutert.
  • Run-Modus: Wir führen das Gerät im Run-Modus aus. Und um diese Werte zu analysieren, verwenden wir das Labview Utility

Diese Labview-Benutzeroberfläche zeigt die Werte in schönen Diagrammen an. Es zeigt sowohl die aktuellen als auch die vergangenen Werte an. Sie können zu diesem Link gehen, um die Labview-Benutzeroberfläche herunterzuladen.

Klicken Sie im Menü der Zielseite auf das Symbol Ausführen, um in den Ausführungsmodus zu wechseln.

Schritt 4: Konfigurieren der DHCP-/Statischen IP-Einstellungen mit dem Captive Portal

Konfigurieren von DHCP/Statische IP-Einstellungen mit Captive Portal
Konfigurieren von DHCP/Statische IP-Einstellungen mit Captive Portal
Konfigurieren von DHCP/Statische IP-Einstellungen mit Captive Portal
Konfigurieren von DHCP/Statische IP-Einstellungen mit Captive Portal
Konfigurieren von DHCP/Statische IP-Einstellungen mit Captive Portal
Konfigurieren von DHCP/Statische IP-Einstellungen mit Captive Portal

Wir verwenden das Captive-Portal, um die WLAN-Anmeldeinformationen zu speichern und durch die IP-Einstellungen zu schweben. Für die detaillierte Einführung in das Captive-Portal können Sie die folgenden Anweisungen durchgehen.

Das Captive-Portal bietet uns die Möglichkeit, zwischen statischen und DHCP-Einstellungen zu wählen. Geben Sie einfach die Anmeldeinformationen wie Static IP, Subnet Mask, Gateway ein und das Wireless Sensor Gateway wird auf dieser IP konfiguriert.

Schritt 5: Speichern der WLAN-Einstellungen mit dem Captive Portal

Speichern von WLAN-Einstellungen mit dem Captive Portal
Speichern von WLAN-Einstellungen mit dem Captive Portal

Es wird eine Webseite gehostet, auf der eine Liste verfügbarer WiFi-Netzwerke und dort RSSI angezeigt wird. Wählen Sie das WLAN-Netzwerk und das Passwort aus und geben Sie Senden ein. Die Zugangsdaten werden im EEPROM gespeichert und die IP-Einstellung wird im SPIFFS gespeichert. Mehr dazu finden Sie in diesem anweisbaren.

Schritt 6: Veröffentlichen von Sensormesswerten in UbiDots

Hier verwenden wir drahtlose Temperatur- und Vibrationssensoren mit dem ESP 32-Gateway-Empfänger, um die Temperatur- und Feuchtigkeitsdaten zu erhalten. Wir senden die Daten über das MQTT-Protokoll an UbiDots. MQTT folgt einem Publish-and-Subscribe-Mechanismus anstelle von Request und Response. Es ist schneller und zuverlässiger als HTTP. Dies funktioniert wie folgt.

Auslesen der Funksensordaten

Wir erhalten einen 29-Byte-Frame von den drahtlosen Temperatur- und Vibrationssensoren. Dieser Rahmen wird manipuliert, um die tatsächlichen Temperatur- und Vibrationsdaten zu erhalten

if (Serial2.available ()) { data[0] = Serial2.read (); Verzögerung(k); if (data [0] = = 0x7E) {Serial.println ("Paket erhalten"); while (!Seriell2.verfügbar()); für (i = 1; i<55; i++) {Daten = Serial2.read(); Verzögerung(1); } if(data[15]==0x7F) /////// um zu überprüfen, ob die empfangenen Daten korrekt sind { if(data[22]==0x08) //////// Stellen Sie sicher, dass der Sensortyp ist ist richtig { rms_x = ((uint16_t)(((data[24])<<16) + ((data[25])<<8) + (data[26]))/100); rms_y = ((uint16_t)(((Daten[27])<<16) + ((Daten[28])<<8) + (Daten[29]))/100); rms_z = ((uint16_t)(((Daten[30])<<16) + ((Daten[31])<<8) + (Daten[32]))/100); max_x = ((uint16_t)(((Daten[33])<<16) + ((Daten[34])<<8) + (Daten[35]))/100); max_y = ((uint16_t)(((Daten[36])<<16) + ((Daten[37])<<8) + (Daten[38]))/100); max_z = ((uint16_t)(((Daten[39])<<16) + ((Daten[40])<<8) + (Daten[41]))/100);

min_x = ((uint16_t)(((Daten[42])<<16) + ((Daten[43])<<8) + (Daten[44]))/100); min_y = ((uint16_t)(((Daten[45])<<16) + ((Daten[46])<<8) + (Daten[47]))/100); min_z = ((uint16_t)(((Daten[48])<<16) + ((Daten[49])<<8) + (Daten[50]))/100);

cTemp = ((((Daten[51]) * 256) + Daten[52])); Schwimmerbatterie = ((Daten [18] * 256) + Daten [19]); Erhaltungsspannung = 0,00322 * Batterie; Serial.print ("Sensornummer"); Serial.println (Daten [16]); Serial.print ("Sensortyp"); Serial.println (Daten[22]); Serial.print ("Firmware-Version"); Serial.println (Daten [17]); Serial.print ("Temperatur in Celsius:"); Serial.print (cTemp); Serial.println("C"); Serial.print ("RMS-Vibration in der X-Achse:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS-Vibration in der Y-Achse:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS-Vibration in der Z-Achse:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("Min. Vibration in der X-Achse:");

Serial.print (min_x); Serial.println ("mg"); Serial.print ("Min. Vibration in der Y-Achse:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Min. Vibration in der Z-Achse:"); Serial.print (min_z); Serial.println ("mg");

Serial.print ("ADC-Wert:");

Serial.println (Batterie); Serial.print ("Batteriespannung:"); Serial.print (Spannung); Serial.println("\n"); Wenn (Spannung < 1) {Serial.println ("Zeit zum Austauschen der Batterie"); } } } Else { for (i = 0; i<54; i++) {Serial.print (data); Serial.print (", "); Verzögerung(1); } } } }

Verbindung zur UbiDots MQTT-API herstellen

Fügen Sie die Header-Datei für den MQTT-Prozess ein

#include "PubSubClient.h"

Definieren Sie andere Variablen für MQTT wie Clientname, Brokeradresse, Token-ID (Wir holen die Token-ID aus dem EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123"char mqttBroker = "things.ubidots.com"; char-Nutzlast[100]; Zeichenthema[150]; //Variable zum Speichern der Token-ID erstellen String tokenId;

Erstellen Sie Variablen zum Speichern verschiedener Sensordaten und erstellen Sie eine char-Variable zum Speichern des Themas

#define VARIABLE_LABEL_TEMPF "tempF" // Bewertung des Variablenlabels#define VARIABLE_LABEL_TEMPC "tempC" // Bewertung des Variablenlabels #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Bewertung des Variablenlabels

char Thema1[100];

char Thema2[100]; char Thema3[100];

Veröffentlichen Sie die Daten im erwähnten MQTT-Thema, die Nutzlast sieht wie folgt aus { "tempc": {value: "tempData"}}

sprintf(topic1, "%s", "");sprintf(topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf(Nutzlast, "%s", "");

// Bereinigung der Nutzdaten sprintf(payload, "{"%s\":", VARIABLE_LABEL_TEMPC);

// Fügt den Wert hinzu sprintf(payload, "%s{"value\":%s}", payload, str_cTemp);

// Fügt den Wert hinzu sprintf(payload, "%s}", payload);

// Schließt die Wörterbuchklammern Serial.println(payload);

Serial.println (client.publish (topic1, payload)? "veröffentlicht": "nicht veröffentlicht");

// Machen Sie dasselbe auch für andere Themen

client.publish() veröffentlicht die Daten an UbiDots

Schritt 7: Visualisierung der Daten

Visualisierung der Daten
Visualisierung der Daten
  • Gehen Sie zu Ubidots und melden Sie sich bei Ihrem Konto an.
  • Navigieren Sie über die oben aufgeführte Registerkarte Daten zum Dashboard.
  • Klicken Sie nun auf das Symbol "+", um die neuen Widgets hinzuzufügen.
  • Wählen Sie ein Widget aus der Liste aus und fügen Sie eine Variable und Geräte hinzu.
  • Die Sensordaten können über verschiedene Widgets auf dem Dashboard visualisiert werden.

Gesamtcode

Den Over-Code für HTML und ESP32 finden Sie in diesem GitHub-Repository.

  1. ncd ESP32 Breakout-Board.
  2. ncd Drahtlose Temperatur- und Feuchtigkeitssensoren.
  3. pubsubclient
  4. UbiDots

Empfohlen: