Turinys:

Darbo su belaidžiu belaidžiu temperatūros ir vibracijos jutikliu pradžia: 7 žingsniai
Darbo su belaidžiu belaidžiu temperatūros ir vibracijos jutikliu pradžia: 7 žingsniai

Video: Darbo su belaidžiu belaidžiu temperatūros ir vibracijos jutikliu pradžia: 7 žingsniai

Video: Darbo su belaidžiu belaidžiu temperatūros ir vibracijos jutikliu pradžia: 7 žingsniai
Video: This is how Schaeffler OPTIME works (How2-Video) 2024, Lapkritis
Anonim
Darbo pradžia naudojant ilgo nuotolio belaidžius temperatūros ir vibracijos jutiklius
Darbo pradžia naudojant ilgo nuotolio belaidžius temperatūros ir vibracijos jutiklius

Kartais vibracija sukelia rimtų problemų daugelyje programų. Nuo mašinos velenų ir guolių iki kietojo disko veikimo vibracija sukelia mašinos pažeidimus, ankstyvą pakeitimą, mažą našumą ir daro didelę įtaką tikslumui. Mašinos vibracijos stebėjimas ir laikas nuo laiko analizė gali išspręsti ankstyvos mašinos dalies pažeidimo ir nusidėvėjimo problemą.

Šioje instrukcijoje mes dirbsime su tolimojo nuotolio IoT belaidžio vibracijos ir temperatūros jutikliais. Tai pramoninio lygio jutikliai, turintys daugybę plačiai naudojamų programų.

  • Metalo apdirbimas
  • Energijos gamyba
  • Kasyba
  • Maisto ir gėrimų

Taigi, šioje instrukcijoje mes atliksime šiuos veiksmus:

  • Belaidžių jutiklių konfigūravimas naudojant XCTU ir „Labview“vartotojo sąsają.
  • Vibracijos verčių gavimas iš jutiklio.
  • „Xbee“įrenginio ir „xbee“protokolo veikimo supratimas.
  • „WiFi“prisijungimo duomenų ir IP konfigūracijos konfigūravimas naudojant užfiksuotą portalą

1 žingsnis: Aparatūros ir programinės įrangos specifikacija

Techninės ir programinės įrangos specifikacijos
Techninės ir programinės įrangos specifikacijos
Techninės ir programinės įrangos specifikacijos
Techninės ir programinės įrangos specifikacijos
Techninės ir programinės įrangos specifikacijos
Techninės ir programinės įrangos specifikacijos

Techninės įrangos specifikacija

  • Belaidžiai vibracijos ir temperatūros jutikliai
  • „Zigmo“imtuvas
  • ESP32 BLE/ WiFi įrenginys

Programinės įrangos specifikacija

  • „Arduino IDE“
  • „LabView Utility“

2 veiksmas: belaidžio jutiklio ir „Zigmo“imtuvo konfigūravimas naudojant XCTU

Belaidžio jutiklio ir „Zigmo“imtuvo konfigūravimas naudojant XCTU
Belaidžio jutiklio ir „Zigmo“imtuvo konfigūravimas naudojant XCTU
Belaidžio jutiklio ir „Zigmo“imtuvo konfigūravimas naudojant XCTU
Belaidžio jutiklio ir „Zigmo“imtuvo konfigūravimas naudojant XCTU

Kiekvienam daiktų interneto įrenginiui reikalingas ryšio protokolas, kad įrenginys būtų perkeliamas į debesį ir būtų nustatyta belaidė sąsaja tarp skirtingų įrenginių.

Čia belaidžiai jutikliai ir „Zigmo“imtuvas naudoja mažos galios ir didelio nuotolio sprendimą „XBee“. „XBee“naudoja „ZigBee“protokolą, kuris nurodo operaciją 902–928 MHz ISM juostose.

„Xbee“galima sukonfigūruoti naudojant „XCTU“programinę įrangą

  1. Ieškokite „Xbee“įrenginio arba pridėkite naują „Xbee“įrenginį spustelėdami viršutinę kairę piktogramą.
  2. Įrenginys bus nurodytas kairiajame skydelyje.
  3. dukart spustelėkite įrenginį, kad pamatytumėte nustatymus.
  4. Dabar spustelėkite konsolės piktogramą viršutiniame dešiniajame kampe
  5. Galite matyti vertę, rodomą konsolės išvestyje
  6. Čia mes gauname 54 baitų ilgio rėmelį
  7. šiais baitais būtų toliau manipuliuojama, kad būtų gautos tikrosios vertės. procedūra, skirta tikroms temperatūros ir vibracijos vertėms gauti, yra paminėta būsimuose žingsniuose.

3 veiksmas: belaidžio ryšio temperatūros ir vibracijos verčių analizė naudojant „Labview Utility“

Belaidžio temperatūros ir vibracijos verčių analizė naudojant „Labview Utility“
Belaidžio temperatūros ir vibracijos verčių analizė naudojant „Labview Utility“
Belaidžio temperatūros ir vibracijos verčių analizė naudojant „Labview Utility“
Belaidžio temperatūros ir vibracijos verčių analizė naudojant „Labview Utility“

Jutiklis veikia dviem režimais

  • Konfigūracijos režimas: sukonfigūruokite „Pan ID“, vėlavimą, pakartotinių bandymų skaičių ir tt Daugiau.
  • Vykdymo režimas: Įrenginys veikia paleidimo režimu. Šiai vertei analizuoti naudojame „Labview Utility“

Ši „Labview“vartotojo sąsaja rodo vertes gražiose diagramose. Tai rodo dabartines ir praeities vertybes. Norėdami atsisiųsti „Labview“vartotojo sąsają, galite eiti į šią nuorodą.

nukreipimo puslapio meniu spustelėkite piktogramą Vykdyti, kad pereitumėte į veikimo režimą.

4 veiksmas: DHCP/statinio IP nustatymų konfigūravimas naudojant „Captive Portal“

DHCP/statinio IP nustatymų konfigūravimas naudojant „Captive Portal“
DHCP/statinio IP nustatymų konfigūravimas naudojant „Captive Portal“
DHCP/statinio IP nustatymų konfigūravimas naudojant „Captive Portal“
DHCP/statinio IP nustatymų konfigūravimas naudojant „Captive Portal“
DHCP/statinio IP nustatymų konfigūravimas naudojant „Captive Portal“
DHCP/statinio IP nustatymų konfigūravimas naudojant „Captive Portal“

Mes naudojame uždarąjį portalą, norėdami išsaugoti „WiFi“prisijungimo duomenis ir slinkti per IP nustatymus. Norėdami gauti išsamų įvadą į nelaisvės portalą, galite perskaityti šią instrukciją.

Nepriklausomas portalas suteikia mums galimybę pasirinkti tarp statinio ir DHCP nustatymų. Tiesiog įveskite tokius įgaliojimus kaip statinis IP, potinklio kaukė, šliuzas ir belaidžio jutiklio šliuzas bus sukonfigūruoti tuo IP.

5 veiksmas: „WiFi“nustatymų išsaugojimas naudojant „Captive Portal“

„WiFi“nustatymų išsaugojimas naudojant „Captive Portal“
„WiFi“nustatymų išsaugojimas naudojant „Captive Portal“

Priglobiamas tinklalapis, kuriame pateikiamas galimų „WiFi“tinklų ir RSSI sąrašas. Pasirinkite „WiFi“tinklą ir slaptažodį ir įveskite „Pateikti“. Įgaliojimai bus išsaugoti EEPROM, o IP nustatymai - SPIFFS. Daugiau apie tai galite rasti šioje instrukcijoje.

6 veiksmas: jutiklių rodmenų paskelbimas „UbiDots“

Čia mes naudojame belaidžius temperatūros ir vibracijos jutiklius su ESP 32 šliuzo imtuvu, kad gautume temperatūros ir drėgmės duomenis. Mes siunčiame duomenis į „UbiDots“naudodami MQTT protokolą. MQTT vadovaujasi paskelbimo ir prenumeratos mechanizmu, o ne tuo prašymu ir atsakymu. Jis yra greitesnis ir patikimesnis nei HTTP. Tai veikia taip.

Belaidžio jutiklio duomenų skaitymas

Mes gauname 29 baitų kadrą iš belaidžių temperatūros ir vibracijos jutiklių. Šiuo rėmeliu manipuliuojama, kad būtų gauti tikri temperatūros ir vibracijos duomenys

if (Serial2.available ()) {data [0] = Serial2.read (); vėlavimas (k); if (duomenys [0] == 0x7E) {Serial.println („Gavo paketą“); while (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); uždelsimas (1); } if (duomenys [15] == 0x7F) ///////, kad patikrintumėte, ar gaunami duomenys teisingi {if (duomenys [22] == 0x08) //////// įsitikinkite, kad jutiklio tipas yra teisingas {rms_x = ((uint16_t) (((duomenys [24]) << 16) + ((duomenys [25]) << 8) + (duomenys [26]))/100); rms_y = ((uint16_t) (((duomenys [27]) << 16) + ((duomenys [28]) << 8) + (duomenys [29]))/100); rms_z = ((uint16_t) (((duomenys [30]) << 16) + ((duomenys [31]) << 8) + (duomenys [32]))/100); max_x = ((uint16_t) (((duomenys [33]) << 16) + ((duomenys [34]) << 8) + (duomenys [35]))/100); max_y = ((uint16_t) (((duomenys [36]) << 16) + ((duomenys [37]) << 8) + (duomenys [38]))/100); max_z = ((uint16_t) (((duomenys [39]) << 16) + ((duomenys [40]) << 8) + (duomenys [41]))/100);

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

cTemp = ((((duomenys [51]) * 256) + duomenys [52])); plūdinė baterija = ((duomenys [18] * 256) + duomenys [19]); plūdės įtampa = 0,00322 * baterija; Serial.print („Jutiklio numeris“); Serial.println (duomenys [16]); Serial.print („Jutiklio tipas“); Serial.println (duomenys [22]); Serial.print („Firmware Version“); Serial.println (duomenys [17]); Serial.print ("Temperatūra Celsijaus laipsniais:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS vibracija X ašyje:"); Serijinis atspaudas (rms_x); Serial.println („mg“); Serial.print („RMS vibracija Y ašyje:“); Serial.print (rms_y); Serial.println („mg“); Serial.print ("RMS vibracija Z ašyje:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print („Min. Vibracija X ašyje:“);

Serijinis atspaudas (min_x); Serial.println („mg“); Serial.print („Min. Vibracija Y ašyje:“); Serijinis atspaudas (min_y); Serial.println ("mg"); Serial.print („Min. Vibracija Z ašyje:“); Serial.print (min_z); Serial.println („mg“);

Serial.print ("ADC reikšmė:");

Serial.println (baterija); Serial.print ("Baterijos įtampa:"); Serijinis atspaudas (įtampa); Serial.println ("\ n"); if (įtampa <1) {Serial.println („Laikas pakeisti bateriją“); }}} else {for (i = 0; i <54; i ++) {Serial.print (duomenys ); Serial.print (","); uždelsimas (1); }}}}

Prisijungimas prie „UbiDots MQTT“API

Įtraukite MQTT proceso antraštės failą

#include "PubSubClient.h"

apibrėžti kitus MQTT kintamuosius, pvz., kliento vardą, tarpininko adresą, prieigos rakto ID (mes gauname žetono ID iš EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; anglies naudingoji apkrova [100]; char tema [150]; // sukurti kintamąjį, kad būtų išsaugotas prieigos rakto ID String tokenId;

Sukurkite kintamuosius skirtingiems jutiklių duomenims saugoti ir sukurkite char kintamąjį, kad išsaugotumėte temą

#define VARIABLE_LABEL_TEMPF "tempF" // Kintamosios etiketės priskyrimas #define VARIABLE_LABEL_TEMPC "tempC" // Kintamosios etiketės #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "drėgnos etiketės" priskyrimas // Assing

char tema1 [100];

char tema2 [100]; char tema3 [100];

paskelbti duomenis minėtoje MQTT temoje, naudingoji apkrova atrodys {"tempc": {value: "tempData"}}

sprintf (tema1, „%s“, „“); sprintf (tema1, „%s%s“, „/v1.6/devices/“, DEVICE_LABEL); sprintf (naudingoji apkrova, „%s“, „“);

// Išvalo naudingąją apkrovą sprintf (naudingoji apkrova, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// Prideda vertę sprintf (naudingoji apkrova, "%s {" vertė / ":%s}", naudingoji apkrova, str_cTemp);

// Prideda vertę sprintf (naudingoji apkrova, "%s}", naudingoji apkrova);

// Uždaro žodyno skliaustus Serial.println (naudingoji apkrova);

Serial.println (client.publish (tema1, naudingoji apkrova)? "Paskelbta": "nepaskelbta");

// Darykite tą patį ir kitai temai

client.publish () skelbia duomenis „UbiDots“

7 žingsnis: vizualizuokite duomenis

Duomenų vizualizavimas
Duomenų vizualizavimas
  • Eikite į „Ubidots“ir prisijunkite prie savo paskyros.
  • Viršuje esančiame skirtuke Duomenys eikite į informacijos suvestinę.
  • Dabar spustelėkite „+“piktogramą, kad pridėtumėte naujų valdiklių.
  • Iš sąrašo pasirinkite valdiklį ir pridėkite kintamąjį bei įrenginius.
  • Jutiklio duomenis galima vizualizuoti prietaisų skydelyje naudojant skirtingus valdiklius.

Bendras kodas

HTML ir ESP32 „Over“kodą galima rasti šioje „GitHub“saugykloje.

  1. ncd ESP32 pertraukimo plokštė.
  2. ncd Belaidžiai temperatūros ir drėgmės jutikliai.
  3. pubsclubient
  4. „UbiDots“

Rekomenduojamas: