Inhoudsopgave:
- Stap 1: Hardware- en softwarespecificatie
- Stap 2: Draadloze sensor en Zigmo-ontvanger configureren met XCTU
- Stap 3: Analyse van draadloze temperatuur- en trillingswaarden met behulp van Labview Utility
- Stap 4: DHCP/statische IP-instellingen configureren met behulp van Captive Portal
- Stap 5: WiFi-instellingen opslaan met Captive Portal
- Stap 6: Sensormetingen publiceren naar UbiDots
- Stap 7: De gegevens visualiseren
Video: Aan de slag met draadloze temperatuur- en trillingssensoren met groot bereik: 7 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
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
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
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
- Zoek naar het Xbee-apparaat of voeg een nieuw Xbee-apparaat toe door op het pictogram linksboven te klikken.
- Het apparaat wordt weergegeven in het linker zijpaneel.
- dubbelklik op het apparaat om de instellingen te zien.
- Klik nu op het consolepictogram in de rechterbovenhoek
- Je kunt de waarde zien aankomen op de console-uitvoer
- Hier krijgen we het frame met een lengte van 54 bytes
- 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
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
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
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
- 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.
- ncd ESP32 breakoutboard.
- ncd Draadloze temperatuur- en vochtigheidssensoren.
- pubsubclient
- UbiDots
Aanbevolen:
Structurele gezondheidsbewaking van civiele infrastructuren met behulp van draadloze trillingssensoren - Ajarnpa
Structurele gezondheidsbewaking van civiele infrastructuur met behulp van draadloze trillingssensoren: de verslechtering van het oude gebouw en de civiele infrastructuur kan leiden tot een dodelijke en gevaarlijke situatie. De constante monitoring van deze constructies is verplicht. Structurele gezondheidsmonitoring is een uiterst belangrijke methode bij het evalueren van de
Aan de slag met AWS IoT met draadloze temperatuursensor met MQTT - Ajarnpa
Aan de slag met AWS IoT met draadloze temperatuursensor met behulp van MQTT: in eerdere Instructables hebben we verschillende cloudplatforms doorlopen, zoals Azure, Ubidots, ThingSpeak, Losant enz. We gebruiken het MQTT-protocol voor het verzenden van de sensorgegevens naar de cloud in bijna het hele cloudplatform. Voor meer infor
Lange afstand draadloze waterniveau-indicator met alarm - Bereik tot 1 km - Zeven niveaus: 7 stappen
Lange afstand draadloze waterniveau-indicator met alarm | Bereik tot 1 km | Zeven niveaus: bekijk het op YouTube: https://youtu.be/vdq5BanVS0YJe hebt misschien veel bedrade en draadloze waterniveau-indicatoren gezien die een bereik van 100 tot 200 meter zouden bieden. Maar in deze instructable zie je een Long Range Wireless Water Level Indi
Temperatuur-, regenwater- en trillingssensoren op een Arduino gebruiken om spoorwegen te beschermen - Ajarnpa
Gebruik van temperatuur-, regenwater- en trillingssensoren op een Arduino om spoorwegen te beschermen: In de moderne samenleving betekent een toename van treinreizigers dat spoorwegmaatschappijen meer moeten doen om netwerken te optimaliseren om aan de vraag te kunnen voldoen. In dit project laten we op kleine schaal zien hoe temperatuur-, regenwater- en trillingssensoren
Nietmachine met groot bereik -- Maak je eigen nietmachine - Ajarnpa
Nietmachine met groot bereik -- Maak je eigen nietmachine: als je een boekje moet maken, heb je een nietmachine met groot bereik nodig. Deze kunnen meerdere keren meer kosten dan een standaard bureaunietmachine. Het kantoor waar ik nu werk heeft er hier een staan. Een paar jaar geleden werkte ik op een kantoor waar geen geld was voor