Inhoudsopgave:

Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: 7 stappen
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: 7 stappen

Video: Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: 7 stappen

Video: Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: 7 stappen
Video: Smart Building Webinar juni 2020 2024, Juli-
Anonim
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik
Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik

Soms zijn trillingen de oorzaak van ernstige problemen in veel toepassingen. Van machineassen en lagers tot de prestaties van de harde schijf, trillingen veroorzaken schade aan de machine, vroegtijdige vervanging, lage prestaties en veroorzaken een grote aanslag op de nauwkeurigheid. Monitoring en periodieke analyse van trillingen in de machine kan het probleem van vroegtijdige schade en slijtage van het machineonderdeel oplossen.

In deze instructable zullen we werken aan de IoT lange afstand draadloze vibratie- en temperatuursensoren. Dit zijn sensoren van industriële kwaliteit met veel wijdverbreide toepassingen zoals.

  • Metaalbewerking
  • Stroomopwekking
  • Mijnbouw
  • Eten en drinken

Dus, in deze Instructable zullen we het volgende doornemen:

  • Draadloze sensoren configureren met XCTU en Labview UI.
  • De trillingswaarden van de sensor halen.
  • De werking van het xbee-apparaat en het xbee-protocol begrijpen.
  • Wifi-inloggegevens en IP-configuratie configureren met behulp van de captive portal

Stap 1: Hardware- en softwarespecificatie

Hardware- en softwarespecificatie
Hardware- en softwarespecificatie
Hardware- en softwarespecificatie
Hardware- en softwarespecificatie
Hardware- en softwarespecificatie
Hardware- en softwarespecificatie

Hardwarespecificatie:

  • Draadloze trillings- en temperatuursensoren
  • Zigmo-ontvanger
  • ESP32 BLE/WiFi-apparaat

Softwarespecificatie:

  • Arduino IDE
  • LabView-hulpprogramma

Stap 2: Draadloze sensor en Zigmo-ontvanger configureren met XCTU

Draadloze sensor en Zigmo-ontvanger configureren met XCTU
Draadloze sensor en Zigmo-ontvanger configureren met XCTU
Draadloze sensor en Zigmo-ontvanger configureren met XCTU
Draadloze sensor en Zigmo-ontvanger configureren met XCTU

Elk IoT-apparaat heeft een communicatieprotocol nodig om het apparaat over de cloud te zetten en om een draadloze interface tussen verschillende apparaten op te zetten.

Hier gebruiken de draadloze sensoren en de Zigmo-ontvanger de XBee-oplossing met laag vermogen en lange afstand. XBee gebruikt een ZigBee-protocol dat de werking specificeert in 902 tot 928 MHz ISM-banden.

Xbee kan worden geconfigureerd met behulp van XCTU-software

  1. Zoek naar het Xbee-apparaat of voeg een nieuw Xbee-apparaat toe door op het pictogram linksboven te klikken.
  2. Het apparaat wordt weergegeven in het linker zijpaneel.
  3. dubbelklik op het apparaat om de instellingen te zien.
  4. Klik nu op het consolepictogram in de rechterbovenhoek
  5. Je kunt de waarde zien aankomen op de console-uitvoer
  6. Hier krijgen we het frame met een lengte van 54 bytes
  7. deze bytes zouden verder worden gemanipuleerd om de echte waarden te krijgen. de procedure om de echte temperatuur- en trillingswaarden te krijgen, wordt vermeld in de volgende stappen.

Stap 3: Analyse van draadloze temperatuur- en trillingswaarden met behulp van Labview Utility

Draadloze temperatuur- en trillingswaardenanalyse met behulp van Labview Utility
Draadloze temperatuur- en trillingswaardenanalyse met behulp van Labview Utility
Draadloze temperatuur- en trillingswaardenanalyse met behulp van Labview Utility
Draadloze temperatuur- en trillingswaardenanalyse met behulp van Labview Utility

De sensor werkt in twee modi:

  • Configuratiemodus: Configureer de Pan-ID, vertraging, aantal nieuwe pogingen enz. Meer hierover valt buiten het bestek van deze instructable en zal worden uitgelegd in de volgende instructable.
  • Run-modus: we gebruiken het apparaat in de Run-modus. En om deze waarde te analyseren gebruiken we de Labview Utility

Deze Labview UI toont de waarden in mooie grafieken. Het toont zowel de huidige als de vorige waarden. U kunt naar deze link gaan om de Labview UI te downloaden.

klik op het pictogram Uitvoeren in het menu van de bestemmingspagina om naar de uitvoeringsmodus te gaan.

Stap 4: DHCP/statische IP-instellingen configureren met behulp van Captive Portal

DHCP/statische IP-instellingen configureren met behulp van Captive Portal
DHCP/statische IP-instellingen configureren met behulp van Captive Portal
DHCP/Statische IP-instellingen configureren met Captive Portal
DHCP/Statische IP-instellingen configureren met Captive Portal
DHCP/statische IP-instellingen configureren met behulp van Captive Portal
DHCP/statische IP-instellingen configureren met behulp van Captive Portal

We gebruiken de captive portal om de wifi-inloggegevens op te slaan en door de IP-instellingen te navigeren. Voor de gedetailleerde introductie op de captive portal kunt u de volgende instructable doorlopen.

De captive portal geeft ons de mogelijkheid om te kiezen tussen statische en DHCP-instellingen. Voer gewoon de inloggegevens in zoals Static IP, Subnet Mask, gateway en de Wireless Sensor Gateway wordt geconfigureerd op dat IP.

Stap 5: WiFi-instellingen opslaan met Captive Portal

WiFi-instellingen opslaan met Captive Portal
WiFi-instellingen opslaan met Captive Portal

Er wordt een webpagina gehost waar een lijst wordt weergegeven met beschikbare WiFi-netwerken en daar RSSI. Selecteer het wifi-netwerk en wachtwoord en voer verzenden in. De inloggegevens worden opgeslagen in de EEPROM en de IP-instelling wordt opgeslagen in de SPIFFS. Meer hierover is te vinden in deze instructable.

Stap 6: Sensormetingen publiceren naar UbiDots

Hier gebruiken we draadloze temperatuur- en trillingssensoren met de ESP 32-gateway-ontvanger om de temperatuur- en vochtigheidsgegevens te krijgen. We sturen de gegevens naar UbiDots met behulp van het MQTT-protocol. MQTT volgt een publicatie- en abonnementsmechanisme in plaats van dat verzoek en antwoord. Het is sneller en betrouwbaarder dan HTTP. Dit werkt als volgt.

De draadloze sensorgegevens lezen

We krijgen een frame van 29 bytes van de draadloze temperatuur- en trillingssensoren. Dit frame wordt gemanipuleerd om de werkelijke temperatuur en trillingsgegevens te krijgen

if (Serial2.available()) { data[0] = Serial2.read(); vertraging (k); if(data[0]==0x7E) { Serial.println("Gekregen pakket"); while (!Serial2.available()); voor (i = 1; i< 55; i++) { data = Serial2.read(); vertraging(1); } if(data[15]==0x7F) /////// om te controleren of de ontvangen gegevens correct zijn { if(data[22]==0x08) //////// zorg ervoor dat het sensortype is correct { 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 = ((((gegevens[51]) * 256) + gegevens[52])); float-batterij = ((data[18] * 256) + data[19]); vlotterspanning = 0,00322 * batterij; Serial.print("Sensornummer"); Serial.println(data[16]); Serial.print("Sensortype "); Serial.println(data[22]); Serial.print("Firmwareversie"); Serial.println(data[17]); Serial.print ("Temperatuur in Celsius:"); Serieel.print(cTemp); Serieel.println("C"); Serial.print ("RMS-trilling in X-as:"); Serial.print(rms_x); Serial.println ("mg"); Serial.print ("RMS-trilling in Y-as:"); Serial.print(rms_y); Serial.println ("mg"); Serial.print ("RMS-trilling in Z-as:"); Serial.print(rms_z); Serial.println ("mg");

Serial.print ("Min trilling in X-as:");

Serial.print(min_x); Serial.println ("mg"); Serial.print ("Min trilling in Y-as:"); Serial.print(min_y); Serial.println ("mg"); Serial.print ("Min trilling in Z-as:"); Serial.print(min_z); Serial.println ("mg");

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

Serial.println(batterij); Serial.print ("Batterijspanning:"); Seriële.afdruk (spanning); Serieel.println("\n"); if (voltage < 1) { Serial.println ("Tijd om de batterij te vervangen"); } } } else { for (i = 0; i< 54; i++) { Serial.print(data); Serieel.print(", "); vertraging(1); } } } }

Verbinding maken met UbiDots MQTT API

Voeg het headerbestand voor het MQTT-proces toe

#include "PubSubClient.h"

definieer andere variabelen voor MQTT zoals klantnaam, brokeradres, token-ID (we halen de token-ID op uit EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123"char mqttBroker = "things.ubidots.com"; char-lading [100]; char-onderwerp [150]; // maak een variabele om token-ID op te slaan String tokenId;

Maak variabelen om verschillende sensorgegevens op te slaan en maak een char-variabele om een onderwerp op te slaan

#define VARIABLE_LABEL_TEMPF "tempF" // Het variabele label toekennen#define VARIABLE_LABEL_TEMPC "tempC" // Het variabele label toekennen #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Het variabele label toekennen

char onderwerp1 [100];

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

publiceer de gegevens naar het genoemde MQTT-onderwerp, de payload zal er als volgt uitzien { "tempc": {value: "tempData"}}

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

// Reinigt de payload sprintf(payload, "{"%s\":", VARIABLE_LABEL_TEMPC);

// Voegt de waarde toe sprintf(payload, "%s{"value\":%s}", payload, str_cTemp);

// Voegt de waarde toe sprintf(payload, "%s}", payload);

// Sluit de woordenboekhaakjes Serial.println(payload);

Serial.println(client.publish(topic1, payload)? "gepubliceerd": "niet gepubliceerd");

//Doe hetzelfde ook voor een ander onderwerp

client.publish() publiceert de gegevens naar UbiDots

Stap 7: De gegevens visualiseren

De gegevens visualiseren
De gegevens visualiseren
  • Ga naar Ubidots en log in op uw account.
  • Navigeer naar het Dashboard vanaf het tabblad Gegevens bovenaan.
  • Klik nu op het pictogram "+" om de nieuwe widgets toe te voegen.
  • Selecteer een widget uit de lijst en voeg een variabele en apparaten toe.
  • De sensorgegevens kunnen op het dashboard worden gevisualiseerd met behulp van verschillende widgets.

Algemene code

De Over-code voor HTML en ESP32 is te vinden in deze GitHub-repository.

  1. ncd ESP32 breakoutboard.
  2. ncd Draadloze temperatuur- en vochtigheidssensoren.
  3. pubsubclient
  4. UbiDots

Aanbevolen: