Turinys:
- 1 žingsnis: Aparatūros ir programinės įrangos specifikacija
- 2 veiksmas: belaidžio jutiklio ir „Zigmo“imtuvo konfigūravimas naudojant XCTU
- 3 veiksmas: belaidžio ryšio temperatūros ir vibracijos verčių analizė naudojant „Labview Utility“
- 4 veiksmas: DHCP/statinio IP nustatymų konfigūravimas naudojant „Captive Portal“
- 5 veiksmas: „WiFi“nustatymų išsaugojimas naudojant „Captive Portal“
- 6 veiksmas: jutiklių rodmenų paskelbimas „UbiDots“
- 7 žingsnis: vizualizuokite duomenis
Video: Darbo su belaidžiu belaidžiu temperatūros ir vibracijos jutikliu pradžia: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
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 į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
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ą
- Ieškokite „Xbee“įrenginio arba pridėkite naują „Xbee“įrenginį spustelėdami viršutinę kairę piktogramą.
- Įrenginys bus nurodytas kairiajame skydelyje.
- dukart spustelėkite įrenginį, kad pamatytumėte nustatymus.
- Dabar spustelėkite konsolės piktogramą viršutiniame dešiniajame kampe
- Galite matyti vertę, rodomą konsolės išvestyje
- Čia mes gauname 54 baitų ilgio rėmelį
- š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“
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“
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“
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
- 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.
- ncd ESP32 pertraukimo plokštė.
- ncd Belaidžiai temperatūros ir drėgmės jutikliai.
- pubsclubient
- „UbiDots“
Rekomenduojamas:
„Arduino“aliarmas su skaitmeniniu vibracijos jutikliu: 5 žingsniai
„Arduino“aliarmas su skaitmeniniu vibracijos jutikliu: Šis nurodymas yra apie tai, kaip patiems pasidaryti paprastą ir pigų signalizacijos įrenginį. Viskas, ko jums reikia, yra pagrindinės elektronikos ir arduino programavimo žinios. Jei turite klausimų ar problemų, galite susisiekti su manimi el. Paštu: [email protected]
„Arduino“sąsaja su ultragarso jutikliu ir bekontakčiu temperatūros jutikliu: 8 žingsniai
„Arduino“sąsaja su ultragarso jutikliu ir bekontakčiu temperatūros jutikliu: Šiuo metu kūrėjai ir kūrėjai teikia pirmenybę „Arduino“, norėdami greitai plėtoti projektų prototipus. „Arduino“yra atviro kodo elektronikos platforma, pagrįsta lengvai naudojama aparatine ir programine įranga. „Arduino“turi labai gerą vartotojų bendruomenę. Šiame projekte
Raudonas mazgas su IoT tolimojo nuotolio vibracijos ir temperatūros jutikliu: 34 žingsniai
Raudonas mazgas su IoT didelio nuotolio vibracijos ir temperatūros jutikliu: pristatome NCD didelio nuotolio belaidį temperatūros drėgmės jutiklį, kuris gali pasigirti iki 28 mylių atstumu, naudojant belaidžio tinklo tinklo architektūrą. Sudėtyje esantis Honeywell HIH9130 temperatūros drėgmės jutiklis perduoda labai tikslią temperatūrą ir
Darbo su „AWS IoT“pradžia naudojant belaidį temperatūros jutiklį naudojant MQTT: 8 žingsniai
Darbo su „AWS IoT“su belaidžiu temperatūros jutikliu naudojimas naudojant MQTT: Ankstesnėse instrukcijose mes perėjome įvairias debesų platformas, tokias kaip „Azure“, „Ubidots“, „ThingSpeak“, „Losant“ir kt. Mes beveik naudojome MQTT protokolą, skirtą jutiklių duomenims į debesį siųsti. visa debesų platforma. Norėdami gauti daugiau informacijos
Temperatūros, lietaus vandens ir vibracijos jutiklių naudojimas „Arduino“geležinkeliams apsaugoti: 8 žingsniai (su nuotraukomis)
Temperatūros, lietaus vandens ir vibracijos jutiklių naudojimas „Arduino“geležinkeliams apsaugoti: Šiuolaikinėje visuomenėje geležinkelio keleivių skaičiaus padidėjimas reiškia, kad geležinkelio įmonės turi daugiau stengtis optimizuoti tinklus, kad neatsiliktų nuo paklausos. Šiame projekte nedideliu mastu parodysime, kaip veikia temperatūros, lietaus vandens ir vibracijos jutikliai