Innehållsförteckning:

Komma igång med trådlösa temperatur- och vibrationssensorer för långa avstånd: 7 steg
Komma igång med trådlösa temperatur- och vibrationssensorer för långa avstånd: 7 steg

Video: Komma igång med trådlösa temperatur- och vibrationssensorer för långa avstånd: 7 steg

Video: Komma igång med trådlösa temperatur- och vibrationssensorer för långa avstånd: 7 steg
Video: Kom igång med träningen - del 1 - kost — Kjell-TV 2024, Juli
Anonim
Komma igång med trådlösa temperatur- och vibrationssensorer med lång räckvidd
Komma igång med trådlösa temperatur- och vibrationssensorer med lång räckvidd

Ibland är vibrationer orsaken till allvarliga problem i många applikationer. Från maskinaxlar och lager till hårddiskens prestanda, vibrationer orsakar maskinskador, tidigt byte, låg prestanda och orsakar en stor träff på noggrannheten. Övervakning och tidvis analys av vibrationer i maskinen kan lösa problemet med tidig skada och slitage på maskindelen.

I det här instruerbara kommer vi att arbeta med IoT: s långdistans trådlösa vibrations- och temperaturgivare. Det här är sensorer av industriell kvalitet med många utbredda applikationer som.

  • Metallbearbetning
  • Kraftproduktion
  • Brytning
  • Mat och dryck

Så, i denna instruerbara kommer vi att gå igenom följande:

  • Konfigurera trådlösa sensorer med XCTU och Labview UI.
  • Få värden på vibrationer från sensorn.
  • Förstå hur xbee -enheten och xbee -protokollet fungerar.
  • Konfigurera WiFi -uppgifter och IP -konfiguration med hjälp av captive -portalen

Steg 1: Specifikationer för hårdvara och programvara

Specifikationer för hårdvara och programvara
Specifikationer för hårdvara och programvara
Specifikationer för hårdvara och programvara
Specifikationer för hårdvara och programvara
Specifikationer för hårdvara och programvara
Specifikationer för hårdvara och programvara

Hårdvaruspecifikation

  • Trådlösa vibrations- och temperatursensorer
  • Zigmo mottagare
  • ESP32 BLE/ WiFi -enhet

Programvaruspecifikation

  • Arduino IDE
  • LabView -verktyg

Steg 2: Konfigurera trådlös sensor och Zigmo -mottagare med hjälp av XCTU

Konfigurera trådlös sensor och Zigmo -mottagare med hjälp av XCTU
Konfigurera trådlös sensor och Zigmo -mottagare med hjälp av XCTU
Konfigurera trådlös sensor och Zigmo -mottagare med hjälp av XCTU
Konfigurera trådlös sensor och Zigmo -mottagare med hjälp av XCTU

Varje IoT -enhet behöver ett kommunikationsprotokoll för att placera enheten över molnet och för att skapa ett trådlöst gränssnitt mellan olika enheter.

Här använder de trådlösa sensorerna och Zigmo-mottagaren XBee med låg effekt och lång räckvidd. XBee använder ett ZigBee -protokoll som specificerar operationen i 902 till 928 MHz ISM -band.

Xbee kan konfigureras med XCTU -programvara

  1. Sök efter Xbee -enheten eller lägg till en ny Xbee -enhet genom att klicka på ikonen längst upp till vänster.
  2. Enheten kommer att listas på panelen till vänster.
  3. dubbelklicka på enheten för att se inställningarna.
  4. Klicka nu på konsolikonen i det övre högra hörnet
  5. Du kan se värdet som kommer på konsolutgången
  6. Här får vi ramen med längden 54 byte
  7. dessa byte skulle manipuleras ytterligare för att få de verkliga värdena. proceduren för att få de verkliga temperatur- och vibrationsvärdena nämns i kommande steg.

Steg 3: Analys av trådlös temperatur och vibrationer med hjälp av Labview Utility

Analys av trådlösa temperatur- och vibrationsvärden med hjälp av Labview Utility
Analys av trådlösa temperatur- och vibrationsvärden med hjälp av Labview Utility
Analys av trådlösa temperatur- och vibrationsvärden med hjälp av Labview Utility
Analys av trådlösa temperatur- och vibrationsvärden med hjälp av Labview Utility

Sensorn körs i två lägen

  • Konfigurationsläge: Konfigurera Pan -ID, fördröjning, antal försök etc. Mer om detta ligger utanför räckvidden för denna instruerbara och kommer att förklaras i nästa instruerbara.
  • Körläge: Vi kör enheten i körläge. Och för att analysera detta värde använder vi Labview Utility

Denna Labview UI visar värdena i fina grafer. Det visar både aktuella och tidigare värden. Du kan gå till den här länken för att ladda ner Labview UI.

klicka på Kör -ikonen från målsidans meny för att gå till körläge.

Steg 4: Konfigurera DHCP/statiska IP -inställningar med Captive Portal

Konfigurera DHCP/statiska IP -inställningar med Captive Portal
Konfigurera DHCP/statiska IP -inställningar med Captive Portal
Konfigurera DHCP/statiska IP -inställningar med Captive Portal
Konfigurera DHCP/statiska IP -inställningar med Captive Portal
Konfigurera DHCP/statiska IP -inställningar med Captive Portal
Konfigurera DHCP/statiska IP -inställningar med Captive Portal

Vi använder portalen för att spara WiFi -uppgifterna och för att sväva genom IP -inställningarna. För en detaljerad introduktion på captive -portalen kan du gå igenom följande instruerbara.

Den fångade portalen ger oss möjlighet att välja mellan statiska och DHCP -inställningar. Ange bara autentiseringsuppgifterna som statisk IP, nätmask, gateway och Wireless Sensor Gateway kommer att konfigureras på den IP: n.

Steg 5: Spara WiFi -inställningar med Captive Portal

Spara WiFi -inställningar med Captive Portal
Spara WiFi -inställningar med Captive Portal

En webbsida är värd där en lista som visar tillgängliga WiFi -nätverk och där RSSI. Välj WiFi -nätverket och lösenordet och skriv in. Uppgifterna sparas i EEPROM och IP -inställningen sparas i SPIFFS. Mer om detta finns i denna instruerbara.

Steg 6: Publicera sensoravläsningar till UbiDots

Här använder vi trådlösa temperatur- och vibrationssensorer med ESP 32 -gatewaymottagaren för att få data om temperatur och luftfuktighet. Vi skickar data till UbiDots med MQTT -protokollet. MQTT följer en publicerings- och prenumerationsmekanism snarare den begäran och svaret. Det är snabbare och pålitligare än HTTP. Detta fungerar enligt följande.

Läser data om trådlös sensor

Vi får en ram på 29 byte från trådlösa temperatur- och vibrationssensorer. Denna ram manipuleras för att få den faktiska temperaturen och vibrationsdata

if (Serial2.available ()) {data [0] = Serial2.read (); fördröjning (k); if (data [0] == 0x7E) {Serial.println ("Got Packet"); medan (! Serial2.available ()); för (i = 1; i <55; i ++) {data = Serial2.read (); fördröjning (1); } if (data [15] == 0x7F) /////// för att kontrollera om mottagna data är korrekta {if (data [22] == 0x08) //////// se till att sensortypen är korrekt {rms_x = ((uint16_t) (((data [24]) << 16) + ((data [25]) << 8) + (data [26]))/100); rms_y = ((uint16_t) (((data [27]) << 16) + ((data [28]) << 8) + (data [29])))/100); rms_z = ((uint16_t) (((data [30]) << 16) + ((data [31]) << 8) + (data [32])))/100); max_x = ((uint16_t) (((data [33]) << 16) + ((data [34]) << 8) + (data [35]))/100); max_y = ((uint16_t) (((data [36]) << 16) + ((data [37]) << 8) + (data [38])))/100); max_z = ((uint16_t) (((data [39]) << 16) + ((data [40]) << 8) + (data [41])))/100);

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

cTemp = ((((data [51]) * 256) + data [52])); flottörbatteri = ((data [18] * 256) + data [19]); flottörspänning = 0,00322 * batteri; Serial.print ("Sensornummer"); Serial.println (data [16]); Serial.print ("Sensortyp"); Serial.println (data [22]); Serial.print ("firmwareversion"); Serial.println (data [17]); Serial.print ("Temperatur i Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS-vibration i X-axeln:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS-vibration i Y-axeln:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS-vibration i Z-axeln:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("Min vibration i X-axeln:");

Serial.print (min_x); Serial.println ("mg"); Serial.print ("Min vibration i Y-axeln:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Min vibration i Z-axeln:"); Serial.print (min_z); Serial.println ("mg");

Serial.print ("ADC -värde:");

Serial.println (batteri); Serial.print ("Batterispänning:"); Serial.print (spänning); Serial.println ("\ n"); if (spänning <1) {Serial.println ("Dags att byta batteri"); }}} annat {för (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); fördröjning (1); }}}}

Ansluter till UbiDots MQTT API

Inkludera rubrikfilen för MQTT -processen

#inkludera "PubSubClient.h"

definiera andra variabler för MQTT som klientnamn, mäklaradress, token -ID (Vi hämtar token -ID från EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; röding nyttolast [100]; röding ämne [150]; // skapa variabel för att lagra token ID String tokenId;

Skapa variabler för att lagra olika sensordata och skapa en char -variabel för att lagra ämne

#define VARIABLE_LABEL_TEMPF "tempF" // Utvärdera variabeln etikett #definiera VARIABLE_LABEL_TEMPC "tempC" // Utvärdera variabeln etikett #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "variabel" //

char topic1 [100];

char topic2 [100]; char topic3 [100];

publicera data till det nämnda MQTT -ämnet nyttolasten kommer att se ut som {"tempc": {value: "tempData"}}

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

// Rensar nyttolasten sprintf (nyttolast, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// Lägger till värdet sprintf (nyttolast, "%s {" värde / ":%s}", nyttolast, str_cTemp);

// Lägger till värdet sprintf (nyttolast, "%s}", nyttolast);

// Stänger ordlistans parenteser Serial.println (nyttolast);

Serial.println (client.publish (topic1, nyttolast)? "Publicerad": "notpublished");

// Gör samma sak för andra ämnen också

client.publish () publicerar data till UbiDots

Steg 7: Visualisera data

Visualisera data
Visualisera data
  • Gå till Ubidots och logga in på ditt konto.
  • Navigera till instrumentpanelen från fliken Data ovan.
  • Klicka nu på "+" -ikonen för att lägga till de nya widgetarna.
  • Välj en widget från listan och lägg till en variabel och enheter.
  • Sensordata kan visualiseras på instrumentpanelen med hjälp av olika widgets.

Övergripande kod

Över -koden för HTML och ESP32 finns i detta GitHub -arkiv.

  1. ncd ESP32 breakout board.
  2. ncd Trådlösa temperatur- och luftfuktighetssensorer.
  3. pubsubclient
  4. UbiDots

Rekommenderad: