Inhaltsverzeichnis:
- Schritt 1: Hardware- und Softwarespezifikation
- Schritt 2: Konfigurieren des Funksensors und des Zigmo-Empfängers mit XCTU
- Schritt 3: Drahtlose Analyse der Temperatur- und Schwingungswerte mit dem Labview-Dienstprogramm
- Schritt 4: Konfigurieren der DHCP-/Statischen IP-Einstellungen mit dem Captive Portal
- Schritt 5: Speichern der WLAN-Einstellungen mit dem Captive Portal
- Schritt 6: Veröffentlichen von Sensormesswerten in UbiDots
- Schritt 7: Visualisierung der Daten
Video: Erste Schritte mit drahtlosen Temperatur- und Vibrationssensoren mit großer Reichweite - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
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-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
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
- 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.
- Das Gerät wird auf der linken Seite aufgelistet.
- Doppelklicken Sie auf das Gerät, um die Einstellungen anzuzeigen.
- Klicken Sie nun auf das Konsolensymbol in der oberen rechten Ecke
- Sie können den Wert in der Konsolenausgabe sehen
- Hier erhalten wir den Frame der Länge 54 Bytes
- 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
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
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
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
- 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.
- ncd ESP32 Breakout-Board.
- ncd Drahtlose Temperatur- und Feuchtigkeitssensoren.
- pubsubclient
- UbiDots
Empfohlen:
Erste Schritte mit Amara: 7 Schritte
Erste Schritte mit Amara: Amara ist ein kostenloser Untertitel-Editor, mit dem Sie ganz einfach Untertitel zu Videos hinzufügen können – vom Unterricht bis zum persönlichen Gebrauch. Diese Anweisungen helfen Ihnen, ein Amara-Konto einzurichten, damit Sie schnell und einfach Untertitel hinzufügen können
Erste Schritte mit der Heimautomatisierung: Home Assistant installieren: 3 Schritte
Erste Schritte mit der Hausautomation: Home Assistant installieren: Wir starten jetzt die Hausautomationsserie, in der wir ein Smart Home erstellen, das es uns ermöglicht, Dinge wie Licht, Lautsprecher, Sensoren usw. über einen zentralen Hub zusammen mit einem Sprachassistent. In diesem Beitrag erfahren Sie, wie Sie in
Erste Schritte mit dem SkiiiD-Editor: 11 Schritte
Erste Schritte mit dem SkiiiD-Editor: skiiiD-Editor, Entwicklungsboard-Firmware IDEskiiiD-Editor basiert auf skiiiD (Firmware Development Engine). Jetzt ist es mit Arduino UNO, MEGA und NANO mit 70+ Komponenten kompatibel.BetriebssystemmacOS / WindowsInstallierenBesuchen Sie die Website https:
Erste Schritte mit Python: 7 Schritte (mit Bildern)
Erste Schritte mit Python: Programmieren ist großartig! Es ist kreativ, macht Spaß und gibt Ihrem Gehirn ein mentales Training. Viele von uns wollen etwas über Programmieren lernen, aber überzeugen sich selbst davon, dass wir es nicht können. Vielleicht hat es zu viel Mathematik, vielleicht der Jargon, der erschreckend herumgeworfen wird
Kabellose Wasserstandsanzeige mit großer Reichweite und Alarm - Reichweite bis zu 1 km - Sieben Ebenen: 7 Schritte
Kabellose Wasserstandsanzeige mit großer Reichweite und Alarm | Reichweite bis zu 1 km | Seven Levels: Sehen Sie es sich auf Youtube an: https://youtu.be/vdq5BanVS0YSie haben vielleicht viele kabelgebundene und kabellose Wasserstandsanzeigen gesehen, die eine Reichweite von 100 bis 200 Metern bieten. Aber in diesem anweisbaren werden Sie eine drahtlose Wasserstandsanzeige mit langer Reichweite sehen