Sadržaj:

Početak rada s bežičnim osjetnicima temperature i vibracija na daljinu: 7 koraka
Početak rada s bežičnim osjetnicima temperature i vibracija na daljinu: 7 koraka

Video: Početak rada s bežičnim osjetnicima temperature i vibracija na daljinu: 7 koraka

Video: Početak rada s bežičnim osjetnicima temperature i vibracija na daljinu: 7 koraka
Video: SOUNDPEATS WATCH 1: Things To Know Before Buy // Real Life Review 2024, Srpanj
Anonim
Početak rada s bežičnim osjetnicima temperature i vibracija na daljinu
Početak rada s bežičnim osjetnicima 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 točnosti. 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 osjetnicima vibracija i temperature na daljinu. To su senzori industrijskog stupnja s mnogo raširenih primjena, poput.

  • Obrada metala
  • Proizvodnja energije
  • Rudarstvo
  • Hrane i pića

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

  • Konfiguriranje bežičnih senzora pomoću sučelja XCTU i Labview.
  • Dobivanje vrijednosti vibracija s senzora.
  • Razumijevanje rada xbee uređaja i xbee protokola.
  • Konfiguriranje WiFi vjerodajnica i IP konfiguracije pomoću zarobljenog 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

Specifikacija hardvera

  • Bežični osjetnici vibracija i temperature
  • 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 prijamnik koriste rješenje XBee male snage i velikog dometa. XBee koristi ZigBee protokol koji specificira rad u ISM opsezima od 902 do 928 MHz.

Xbee se može konfigurirati pomoću softvera XCTU

  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 bočnoj ploči.
  3. dvaput kliknite na uređaj da biste vidjeli postavke.
  4. Sada kliknite ikonu konzole u gornjem desnom kutu
  5. Možete vidjeti vrijednost koja dolazi na izlazu konzole
  6. Ovdje dobivamo okvir duljine 54 bajta
  7. tim bi se bajtovima dalje manipuliralo kako bi se dobile prave vrijednosti. postupak za dobivanje stvarne temperature i vrijednosti vibracija spominje se u nadolazećim 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 programa Labview Utility
Bežična analiza temperature i vrijednosti vibracija pomoću programa Labview Utility

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 sučelja Labview.

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

Korak 4: Konfiguriranje postavki DHCP -a/statičkog IP -a 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 zarobljeni portal za spremanje vjerodajnica za WiFi i lebdenje kroz postavke IP -a. 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 postavki WiFi -a 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 tome 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, a ne taj zahtjev i odgovor. Brži je i pouzdaniji od HTTP -a. Ovo funkcionira na sljedeći način.

Očitavanje podataka bežičnog senzora

Od bežičnih senzora temperature i vibracija dobivamo okvir od 29 bajtova. Ovim se okvirom 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 (); odgoda (1); } if (data [15] == 0x7F) /////// da provjerite jesu li primljeni podaci točni {if (data [22] == 0x08) //////// provjerite vrstu 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:"); Serijski.ispis (cTemp); Serial.println ("C"); Serial.print ("RMS vibracija na osi X:"); Serijski.ispis (rms_x); Serial.println ("mg"); Serial.print ("RMS vibracija na osi Y:"); Serijski.ispis (rms_y); Serial.println ("mg"); Serial.print ("RMS vibracija u osi Z:"); Serijski.ispis (rms_z); Serial.println ("mg");

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

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

Serial.print ("ADC vrijednost:");

Serial.println (baterija); Serial.print ("Napon baterije:"); Serijski.ispis (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 (","); odgoda (1); }}}}

Povezivanje s UbiDots MQTT API

Uključite datoteku zaglavlja za proces MQTT

#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]; // stvoriti varijablu za spremanje ID -a tokena String tokenId;

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

#define VARIABLE_LABEL_TEMPF "tempF" // Određivanje 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": {value: "tempData"}}

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

// Čisti sprintf korisnog tereta (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 probijanje.
  2. ncd Bežični osjetnici temperature i vlage.
  3. pubsubclient
  4. UbiDots

Preporučeni: