Innholdsfortegnelse:

Komme i gang med trådløse temperatur- og vibrasjonssensorer for lang rekkevidde: 7 trinn
Komme i gang med trådløse temperatur- og vibrasjonssensorer for lang rekkevidde: 7 trinn

Video: Komme i gang med trådløse temperatur- og vibrasjonssensorer for lang rekkevidde: 7 trinn

Video: Komme i gang med trådløse temperatur- og vibrasjonssensorer for lang rekkevidde: 7 trinn
Video: Аномально вкусно‼️ ЧЕХОСЛОВАЦКИЙ СУП ИЗ ФАРША. Жена Липована в шоке. 2024, Juli
Anonim
Komme i gang med trådløse temperatur- og vibrasjonssensorer for lang rekkevidde
Komme i gang med trådløse temperatur- og vibrasjonssensorer for lang rekkevidde

Noen ganger er vibrasjon årsaken til alvorlige problemer i mange applikasjoner. Fra maskinaksler og lagre til harddiskytelse, vibrasjoner forårsaker maskinskader, tidlig utskifting, lav ytelse og påfører nøyaktigheten et stort treff. Overvåking og tid til annen analyse av vibrasjoner i maskinen kan løse problemet med tidlig skade og slitasje på maskindelen.

I denne instruksen vil vi jobbe med IoT trådløse vibrasjons- og temperatursensorer for lang rekkevidde. Dette er sensorer av industriell kvalitet med mange utbredte applikasjoner som.

  • Metallbearbeiding
  • Kraftproduksjon
  • Gruvedrift
  • Mat og Drikke

Så i denne instruksen vil vi gå gjennom følgende:

  • Konfigurere trådløse sensorer ved hjelp av XCTU og Labview UI.
  • Henter vibrasjonsverdiene fra sensoren.
  • Forstå hvordan xbee -enheten og xbee -protokollen fungerer.
  • Konfigurering av WiFi -legitimasjon og IP -konfigurasjon ved hjelp av captive -portalen

Trinn 1: Spesifikasjon for maskinvare og programvare

Maskinvare- og programvarespesifikasjon
Maskinvare- og programvarespesifikasjon
Maskinvare- og programvarespesifikasjon
Maskinvare- og programvarespesifikasjon
Maskinvare- og programvarespesifikasjon
Maskinvare- og programvarespesifikasjon

Maskinvarespesifikasjon

  • Trådløse vibrasjons- og temperatursensorer
  • Zigmo mottaker
  • ESP32 BLE/ WiFi -enhet

Programvarespesifikasjon

  • Arduino IDE
  • LabView -verktøy

Trinn 2: Konfigurering av trådløs sensor og Zigmo -mottaker ved hjelp av XCTU

Konfigurere trådløs sensor og Zigmo -mottaker ved hjelp av XCTU
Konfigurere trådløs sensor og Zigmo -mottaker ved hjelp av XCTU
Konfigurere trådløs sensor og Zigmo -mottaker ved hjelp av XCTU
Konfigurere trådløs sensor og Zigmo -mottaker ved hjelp av XCTU

Hver IoT -enhet trenger en kommunikasjonsprotokoll for å sette enheten over skyen og sette opp et trådløst grensesnitt mellom forskjellige enheter.

Her bruker de trådløse sensorene og Zigmo-mottakeren XBee med lav effekt og lang rekkevidde. XBee bruker en ZigBee -protokoll som spesifiserer operasjonen i 902 til 928 MHz ISM -bånd.

Xbee kan konfigureres ved hjelp av XCTU -programvare

  1. Søk etter Xbee -enheten eller legg til en ny Xbee -enhet ved å klikke på ikonet øverst til venstre.
  2. Enheten vil bli oppført på panelet til venstre.
  3. dobbeltklikk på enheten for å se innstillingene.
  4. Klikk nå på konsollikonet øverst til høyre
  5. Du kan se verdien komme på konsollutgangen
  6. Her får vi rammen med lengde 54 byte
  7. disse byte ville bli manipulert ytterligere for å få de virkelige verdiene. prosedyren for å få de virkelige temperatur- og vibrasjonsverdiene er nevnt i kommende trinn.

Trinn 3: Analyse av trådløs temperatur og vibrasjonsverdier ved hjelp av Labview Utility

Analyse av trådløse temperatur- og vibrasjonsverdier ved hjelp av Labview Utility
Analyse av trådløse temperatur- og vibrasjonsverdier ved hjelp av Labview Utility
Analyse av trådløse temperatur- og vibrasjonsverdier ved hjelp av Labview Utility
Analyse av trådløse temperatur- og vibrasjonsverdier ved hjelp av Labview Utility

Sensoren kjøres i to moduser

  • Konfigurasjonsmodus: Konfigurer Pan -ID, forsinkelse, antall forsøk osv. Mer om dette er utenfor omfanget av denne instruksjonsboken og vil bli forklart i neste instruksjonsbaserte.
  • Kjørmodus: Vi kjører enheten i Kjør -modus. Og for å analysere denne verdien bruker vi Labview Utility

Denne Labview UI viser verdiene i fine grafer. Den viser nåværende så vel som tidligere verdier. Du kan gå til denne lenken for å laste ned Labview UI.

klikk på Kjør -ikonet fra landingssidemenyen for å gå til kjøremodus.

Trinn 4: Konfigurering av DHCP/statisk IP -innstillinger ved hjelp av Captive Portal

Konfigurere DHCP/statisk IP -innstillinger ved hjelp av Captive Portal
Konfigurere DHCP/statisk IP -innstillinger ved hjelp av Captive Portal
Konfigurere DHCP/statisk IP -innstillinger ved hjelp av Captive Portal
Konfigurere DHCP/statisk IP -innstillinger ved hjelp av Captive Portal
Konfigurere DHCP/statisk IP -innstillinger ved hjelp av Captive Portal
Konfigurere DHCP/statisk IP -innstillinger ved hjelp av Captive Portal

Vi bruker den fangede portalen til å lagre WiFi -legitimasjonen og for å sveve gjennom IP -innstillingene. For en detaljert introduksjon på portalen, kan du gå gjennom følgende instrukser.

Den fangede portalen gir oss muligheten til å velge mellom statiske og DHCP -innstillinger. Bare skriv inn legitimasjonen som Statisk IP, Nettverksmaske, gateway og Wireless Sensor Gateway vil bli konfigurert på den IP -en.

Trinn 5: Lagre WiFi -innstillinger ved hjelp av Captive Portal

Lagre WiFi -innstillinger ved hjelp av Captive Portal
Lagre WiFi -innstillinger ved hjelp av Captive Portal

En webside blir vert der en liste som viser tilgjengelige WiFi -nettverk og det RSSI. Velg WiFi -nettverket og passordet og skriv inn. Legitimasjonen lagres i EEPROM og IP -innstillingen lagres i SPIFFS. Mer om dette finner du i denne instruksjonsboken.

Trinn 6: Publisering av sensoravlesninger til UbiDots

Her bruker vi trådløse temperatur- og vibrasjonssensorer med ESP 32 gatewaymottaker for å få data om temperatur og fuktighet. Vi sender dataene til UbiDots ved hjelp av MQTT -protokollen. MQTT følger en publiserings- og abonnementsmekanisme i stedet for forespørsel og svar. Det er raskere og pålitelig enn HTTP. Dette fungerer som følger.

Lesing av trådløse sensordata

Vi får en 29-byte ramme fra de trådløse temperatur- og vibrasjonssensorene. Denne rammen manipuleres for å få den faktiske temperaturen og vibrasjonsdata

if (Serial2.available ()) {data [0] = Serial2.read (); forsinkelse (k); if (data [0] == 0x7E) {Serial.println ("Got Packet"); mens (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); forsinkelse (1); } if (data [15] == 0x7F) /////// for å sjekke om mottatte data er riktige {if (data [22] == 0x08) //////// kontroller sensortypen er riktig {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])); flytebatteri = ((data [18] * 256) + data [19]); flytespenning = 0,00322 * batteri; Serial.print ("Sensornummer"); Serial.println (data [16]); Serial.print ("Sensortype"); Serial.println (data [22]); Serial.print ("Fastvareversjon"); Serial.println (data [17]); Serial.print ("Temperatur i Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS-vibrasjon i X-aksen:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS-vibrasjon i Y-aksen:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS-vibrasjon i Z-aksen:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("Min vibrasjon i X-aksen:");

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

Serial.print ("ADC -verdi:");

Serial.println (batteri); Serial.print ("Batterispenning:"); Serial.print (spenning); Serial.println ("\ n"); if (spenning <1) {Serial.println ("Tid til å bytte batteri"); }}} annet {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); forsinkelse (1); }}}}

Koble til UbiDots MQTT API

Inkluder overskriftsfilen for MQTT -prosessen

#include "PubSubClient.h"

definere andre variabler for MQTT som klientnavn, megleradresse, token ID (Vi henter token ID fra EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; røye nyttelast [100]; røye emne [150]; // lage variabel for å lagre token ID String tokenId;

Lag variabler for å lagre forskjellige sensordata og lag en char -variabel for å lagre emne

#define VARIABLE_LABEL_TEMPF "tempF" // Vurder variabeletiketten #definer VARIABLE_LABEL_TEMPC "tempC" // Assosier variabeletiketten #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "variable" //

char topic1 [100];

røye topic2 [100]; røye topic3 [100];

publiser dataene til det nevnte MQTT -emnet, nyttelasten vil se ut som {"tempc": {value: "tempData"}}

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

// Renser nyttelast sprintf (nyttelast, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// Legger til verdien sprintf (nyttelast, "%s {" verdi / ":%s}", nyttelast, str_cTemp);

// Legger til verdien sprintf (nyttelast, "%s}", nyttelast);

// Lukker ordbokens parenteser Serial.println (nyttelast);

Serial.println (client.publish (topic1, nyttelast)? "Publisert": "ikkepublisert");

// Gjør det samme for andre temaer også

client.publish () publiserer dataene til UbiDots

Trinn 7: Visualisering av dataene

Visualisering av dataene
Visualisering av dataene
  • Gå til Ubidots og logg inn på kontoen din.
  • Naviger til oversikten fra kategorien Data som er oppført øverst.
  • Klikk nå på "+" - ikonet for å legge til de nye widgetene.
  • Velg en widget fra listen, og legg til en variabel og enheter.
  • Sensordataene kan visualiseres på dashbordet ved hjelp av forskjellige widgets.

Samlet kode

Over -koden for HTML og ESP32 finnes i dette GitHub -depotet.

  1. ncd ESP32 breakout board.
  2. ncd Trådløse temperatur- og fuktighetssensorer.
  3. pubsubclient
  4. UbiDots

Anbefalt: