Sadržaj:

Prvi koraci s bežičnim senzorima temperature i vibracije na daljinu: 7 koraka
Prvi koraci s bežičnim senzorima temperature i vibracije na daljinu: 7 koraka

Video: Prvi koraci s bežičnim senzorima temperature i vibracije na daljinu: 7 koraka

Video: Prvi koraci s bežičnim senzorima temperature i vibracije na daljinu: 7 koraka
Video: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, Novembar
Anonim
Početak rada s bežičnim senzorima temperature i vibracija na daljinu
Početak rada s bežičnim senzorima temperature i vibracija na daljinu

Ponekad su vibracije uzrok ozbiljnih problema u mnogim aplikacijama. Od osovina strojeva i ležajeva do performansi tvrdog diska, vibracije uzrokuju oštećenje stroja, ranu zamjenu, niske performanse i nanose veliki udarac preciznosti. Praćenje i povremena analiza vibracija u stroju mogu riješiti problem ranog oštećenja i istrošenosti dijela stroja.

U ovom uputstvu radit ćemo na IoT bežičnim senzorima vibracija i temperature na daljinu. To su senzori industrijskog razreda sa mnogim široko rasprostranjenim primjenama, poput.

  • Obrada metala
  • Proizvodnja energije
  • Rudarstvo
  • Hrana i piće

Dakle, u ovom Instructable -u ćemo proći kroz sljedeće:

  • Konfiguriranje bežičnih senzora pomoću XCTU i Labview UI.
  • Dobivanje vrijednosti vibracija sa senzora.
  • Razumijevanje rada xbee uređaja i xbee protokola.
  • Konfiguriranje WiFi vjerodajnica i IP konfiguracije pomoću zaštitnog portala

Korak 1: Specifikacija hardvera i softvera

Specifikacije hardvera i softvera
Specifikacije hardvera i softvera
Specifikacije hardvera i softvera
Specifikacije hardvera i softvera
Specifikacije hardvera i softvera
Specifikacije hardvera i softvera

Hardverske specifikacije

  • Bežični senzori za vibracije i temperaturu
  • Zigmo prijemnik
  • ESP32 BLE/ WiFi uređaj

Specifikacije softvera

  • Arduino IDE
  • LabView Utility

Korak 2: Konfiguriranje bežičnog senzora i Zigmo prijemnika pomoću XCTU -a

Konfiguriranje bežičnog senzora i Zigmo prijemnika pomoću XCTU -a
Konfiguriranje bežičnog senzora i Zigmo prijemnika pomoću XCTU -a
Konfiguriranje bežičnog senzora i Zigmo prijemnika pomoću XCTU -a
Konfiguriranje bežičnog senzora i Zigmo prijemnika pomoću XCTU -a

Svaki IoT uređaj treba komunikacijski protokol za postavljanje uređaja preko oblaka i postavljanje bežičnog sučelja između različitih uređaja.

Ovdje bežični senzori i Zigmo prijemnik koriste rješenje male snage i velikog dometa XBee. XBee koristi ZigBee protokol koji specificira rad u ISM opsezima od 902 do 928 MHz.

Xbee se može konfigurirati pomoću XCTU softvera

  1. Potražite Xbee uređaj ili dodajte novi Xbee uređaj klikom na ikonu u gornjem lijevom kutu.
  2. Uređaj će biti naveden na lijevoj strani ploče.
  3. dvaput kliknite na uređaj da vidite postavke.
  4. Sada kliknite na ikonu konzole u gornjem desnom kutu
  5. Možete vidjeti vrijednost koja dolazi na izlazu konzole
  6. Ovdje dobivamo okvir dužine 54 bajta
  7. ovim bajtovima bi se dalje manipuliralo kako bi se dobile prave vrijednosti. postupak za dobijanje stvarne temperature i vrijednosti vibracija spominje se u narednim koracima.

Korak 3: Analiza temperature i vrijednosti vibracija bežične mreže pomoću Labview Utility -a

Bežična analiza temperature i vrijednosti vibracija pomoću Labview Utility -a
Bežična analiza temperature i vrijednosti vibracija pomoću Labview Utility -a
Bežična analiza temperature i vrijednosti vibracija pomoću Labview Utility -a
Bežična analiza temperature i vrijednosti vibracija pomoću Labview Utility -a

Senzor radi u dva načina rada

  • Način konfiguracije: Konfigurirajte Pan ID, kašnjenje, broj pokušaja itd. Više o ovome izlazi iz okvira ovog uputstva i bit će objašnjeno u sljedećim uputama.
  • Način rada: Uređaj pokrećemo u načinu rada. Za analizu ovih vrijednosti koristimo Labview Utility

Ovo korisničko sučelje Labview prikazuje vrijednosti u lijepim grafikonima. Prikazuje trenutne i prošle vrijednosti. Možete otići na ovu vezu za preuzimanje korisničkog interfejsa Labview.

kliknite na ikonu Pokreni u meniju odredišne stranice da biste prešli u način rada.

Korak 4: Konfiguriranje DHCP/statičkih IP postavki pomoću Captive Portala

Konfiguriranje DHCP/statičkih IP postavki pomoću Captive Portala
Konfiguriranje DHCP/statičkih IP postavki pomoću Captive Portala
Konfiguriranje DHCP/statičkih IP postavki pomoću Captive Portala
Konfiguriranje DHCP/statičkih IP postavki pomoću Captive Portala
Konfiguriranje DHCP/statičkih IP postavki pomoću Captive Portala
Konfiguriranje DHCP/statičkih IP postavki pomoću Captive Portala

Koristimo zaštitni portal za spremanje WiFi vjerodajnica i za kretanje kroz IP postavke. Za detaljan uvod na zarobljeničkom portalu možete proći kroz sljedeće upute.

Zaštitni portal daje nam mogućnost izbora između statičkih i DHCP postavki. Samo unesite vjerodajnice poput statičkog IP -a, maske podmreže, pristupnika i bežični pristupnik senzora će se konfigurirati na tom IP -u.

Korak 5: Spremanje WiFi postavki pomoću Captive Portala

Spremanje WiFi postavki pomoću Captive Portala
Spremanje WiFi postavki pomoću Captive Portala

Hostira se web stranica na kojoj se prikazuje popis dostupnih WiFi mreža i RSSI. Odaberite WiFi mrežu i lozinku i unesite submit. Vjerodajnice će se spremiti u EEPROM, a postavka IP -a u SPIFFS. Više o ovome možete pronaći u ovom uputstvu.

Korak 6: Objavljivanje očitanja senzora na UbiDots

Ovdje koristimo bežične senzore temperature i vibracije s prijemnikom pristupnika ESP 32 za dobivanje podataka o temperaturi i vlažnosti. Šaljemo podatke na UbiDots koristeći MQTT protokol. MQTT slijedi mehanizam objavljivanja i pretplate umjesto tog zahtjeva i odgovora. Brži je i pouzdaniji od HTTP -a. Ovo funkcionira na sljedeći način.

Čitanje podataka senzora bežične veze

Od bežičnih senzora temperature i vibracija dobivamo okvir od 29 bajtova. Ovim okvirom se manipulira kako bi se dobile stvarne temperature i podaci o vibracijama

if (Serial2.available ()) {data [0] = Serial2.read (); kašnjenje (k); if (data [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); za (i = 1; i <55; i ++) {podaci = Serial2.read (); kašnjenje (1); } if (data [15] == 0x7F) /////// da provjerite jesu li prijemni podaci tačni {if (data [22] == 0x08) //////// provjerite tip senzora je ispravno {rms_x = ((uint16_t) (((podaci [24]) << 16) + ((podaci [25]) << 8) + (podaci [26]))/100); rms_y = ((uint16_t) (((podaci [27]) << 16) + ((podaci [28]) << 8) + (podaci [29]))/100); rms_z = ((uint16_t) (((podaci [30]) << 16) + ((podaci [31]) << 8) + (podaci [32]))/100); max_x = ((uint16_t) (((podaci [33]) << 16) + ((podaci [34]) << 8) + (podaci [35]))/100); max_y = ((uint16_t) (((podaci [36]) << 16) + ((podaci [37]) << 8) + (podaci [38]))/100); max_z = ((uint16_t) (((podaci [39]) << 16) + ((podaci [40]) << 8) + (podaci [41]))/100);

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

cTemp = ((((podaci [51]) * 256) + podaci [52])); plovna baterija = ((podaci [18] * 256) + podaci [19]); plivajući napon = 0,00322 * baterija; Serial.print ("Broj senzora"); Serial.println (podaci [16]); Serial.print ("Tip senzora"); Serial.println (podaci [22]); Serial.print ("Verzija firmvera"); Serial.println (podaci [17]); Serial.print ("Temperatura u Celzijusima:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS vibracija na osi X:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS vibracija na osi Y:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS vibracija na osi Z:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("Minimalne vibracije na osi X:");

Serial.print (min_x); Serial.println ("mg"); Serial.print ("Minimalne vibracije na osi Y:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Minimalne vibracije na osi Z:"); Serial.print (min_z); Serial.println ("mg");

Serial.print ("ADC vrijednost:");

Serial.println (baterija); Serial.print ("Napon baterije:"); Serial.print (napon); Serial.println ("\ n"); if (napon <1) {Serial.println ("Vrijeme za zamjenu baterije"); }}} else {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); kašnjenje (1); }}}}

Povezivanje na UbiDots MQTT API

Uključite datoteku zaglavlja za MQTT proces

#include "PubSubClient.h"

definirajte druge varijable za MQTT poput imena klijenta, adrese brokera, ID tokena (Dohvaćamo ID tokena iz EEPROM -a)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; nosivost char [100]; char tema [150]; // kreira varijablu za spremanje ID -a tokena String tokenId;

Kreirajte varijable za spremanje različitih podataka senzora i stvorite char varijablu za spremanje teme

#define VARIABLE_LABEL_TEMPF "tempF" // Dodjeljivanje oznake varijable #define VARIABLE_LABEL_TEMPC "tempC" // Određivanje oznake varijable #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "label

char topic1 [100];

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

objaviti podatke na spomenutu temu MQTT -a korisni teret će izgledati kao {"tempc": {vrijednost: "tempData"}}

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

// čisti korisnički teret sprintf (korisni teret, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// Dodaje vrijednost sprintf (korisni teret, "%s {" vrijednost / ":%s}", korisni teret, str_cTemp);

// Dodaje vrijednost sprintf (korisni teret, "%s}", korisni teret);

// Zatvara zagrade rječnika Serial.println (korisni teret);

Serial.println (client.publish (topic1, korisni teret)? "Objavljeno": "nije objavljeno");

// Učinite isto i za drugu temu

client.publish () objavljuje podatke na UbiDots

Korak 7: Vizualizacija podataka

Vizualizacija podataka
Vizualizacija podataka
  • Idite na Ubidots i prijavite se na svoj račun.
  • Idite na nadzornu ploču s kartice Podaci navedene na vrhu.
  • Sada kliknite ikonu "+" za dodavanje novih widgeta.
  • Odaberite widget s popisa i dodajte varijablu i uređaje.
  • Podaci senzora mogu se vizualizirati na nadzornoj ploči pomoću različitih widgeta.

Cjelokupni kod

Over kod za HTML i ESP32 može se pronaći u ovom GitHub spremištu.

  1. ncd ESP32 ploča za razbijanje.
  2. ncd Bežični senzori za temperaturu i vlažnost.
  3. pubsubclient
  4. UbiDots

Preporučuje se: