Spisu treści:
- Krok 1: Specyfikacja sprzętu i oprogramowania
- Krok 2: Konfiguracja czujnika bezprzewodowego i odbiornika Zigmo za pomocą XCTU
- Krok 3: Bezprzewodowa analiza wartości temperatury i wibracji za pomocą narzędzia Labview
- Krok 4: Konfiguracja ustawień DHCP/statycznego adresu IP za pomocą portalu przechwytującego
- Krok 5: Zapisywanie ustawień Wi-Fi za pomocą Captive Portal
- Krok 6: Publikowanie odczytów czujników w UbiDots
- Krok 7: Wizualizacja danych
Wideo: Pierwsze kroki z bezprzewodowymi czujnikami temperatury i wibracji dalekiego zasięgu: 7 kroków
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Czasami wibracje są przyczyną poważnych problemów w wielu aplikacjach. Od wałów maszyn i łożysk po wydajność dysków twardych, wibracje powodują uszkodzenie maszyny, wczesną wymianę, niską wydajność i poważnie wpływają na dokładność. Monitorowanie i od czasu do czasu analiza drgań w maszynie może rozwiązać problem wczesnego uszkodzenia i zużycia części maszyny.
W tej instrukcji będziemy pracować nad bezprzewodowymi czujnikami wibracji i temperatury dalekiego zasięgu IoT. Są to czujniki klasy przemysłowej o wielu powszechnych zastosowaniach, takich jak.
- Obróbka metalu
- Wytwarzanie energii
- Górnictwo
- Żywność i napoje
Tak więc w tym Instruktażowym przejdziemy przez następujące czynności:
- Konfiguracja czujników bezprzewodowych za pomocą XCTU i Labview UI.
- Pobieranie wartości drgań z czujnika.
- Zrozumienie działania urządzenia xbee i protokołu xbee.
- Konfigurowanie danych logowania Wi-Fi i konfiguracji IP za pomocą portalu przechwytującego
Krok 1: Specyfikacja sprzętu i oprogramowania
Specyfikacja sprzętu
- Bezprzewodowe czujniki wibracji i temperatury
- Odbiornik Zigmo
- Urządzenie ESP32 BLE/WiFi
Specyfikacja oprogramowania
- IDE Arduino
- Narzędzie LabView
Krok 2: Konfiguracja czujnika bezprzewodowego i odbiornika Zigmo za pomocą XCTU
Każde urządzenie IoT potrzebuje protokołu komunikacyjnego, aby umieścić urządzenie w chmurze i skonfigurować interfejs bezprzewodowy między różnymi urządzeniami.
Tutaj czujniki bezprzewodowe i odbiornik Zigmo wykorzystują rozwiązanie XBee o niskim poborze mocy i dalekim zasięgu. XBee używa protokołu ZigBee, który określa działanie w pasmach ISM od 902 do 928 MHz.
Xbee można skonfigurować za pomocą oprogramowania XCTU
- Wyszukaj urządzenie Xbee lub dodaj nowe urządzenie Xbee, klikając ikonę w lewym górnym rogu.
- Urządzenie zostanie wyświetlone na lewym panelu bocznym.
- kliknij dwukrotnie urządzenie, aby zobaczyć ustawienia.
- Teraz kliknij ikonę konsoli w prawym górnym rogu
- Możesz zobaczyć wartość nadchodzącą na wyjściu konsoli
- Tutaj otrzymujemy ramkę o długości 54 bajtów
- te bajty byłyby dalej manipulowane, aby uzyskać rzeczywiste wartości. procedura uzyskiwania rzeczywistych wartości temperatury i wibracji jest opisana w kolejnych krokach.
Krok 3: Bezprzewodowa analiza wartości temperatury i wibracji za pomocą narzędzia Labview
Czujnik działa w dwóch trybach
- Tryb konfiguracji: Skonfiguruj Pan ID, opóźnienie, liczbę ponownych prób itp. Więcej na ten temat wykracza poza zakres tej instrukcji i zostanie wyjaśnione w następnej instrukcji.
- Tryb Run: Uruchamiamy urządzenie w trybie Run. Do analizy tych wartości używamy narzędzia Labview
Ten interfejs użytkownika Labview pokazuje wartości na ładnych wykresach. Pokazuje aktualne i przeszłe wartości. Możesz przejść do tego linku, aby pobrać interfejs użytkownika Labview.
kliknij ikonę Uruchom z menu strony docelowej, aby przejść do trybu uruchamiania.
Krok 4: Konfiguracja ustawień DHCP/statycznego adresu IP za pomocą portalu przechwytującego
Używamy portalu przechwytującego, aby zapisać poświadczenia Wi-Fi i najechać na ustawienia IP. Aby uzyskać szczegółowe wprowadzenie do portalu dla niewoli, możesz przejść przez następujące instrukcje.
Portal przechwytujący daje nam możliwość wyboru między ustawieniami statycznymi i DHCP. Wystarczy wprowadzić dane uwierzytelniające, takie jak statyczny adres IP, maska podsieci, brama i brama czujnika bezprzewodowego zostaną skonfigurowane na tym adresie IP.
Krok 5: Zapisywanie ustawień Wi-Fi za pomocą Captive Portal
Hostowana jest strona internetowa, na której znajduje się lista z dostępnymi sieciami Wi-Fi i RSSI. Wybierz sieć Wi-Fi i hasło i wprowadź prześlij. Poświadczenia zostaną zapisane w pamięci EEPROM, a ustawienia IP zostaną zapisane w SPIFFS. Więcej na ten temat można znaleźć w tej instrukcji.
Krok 6: Publikowanie odczytów czujników w UbiDots
Tutaj używamy bezprzewodowych czujników temperatury i wibracji z odbiornikiem bramki ESP 32, aby uzyskać dane dotyczące temperatury i wilgotności. Dane przesyłamy do UbiDots za pomocą protokołu MQTT. MQTT stosuje mechanizm publikowania i subskrybowania, a nie żądanie i odpowiedź. Jest szybszy i niezawodny niż HTTP. Działa to w następujący sposób.
Odczytywanie danych czujnika bezprzewodowego
Otrzymujemy 29-bajtową ramkę z bezprzewodowych czujników temperatury i wibracji. Ta ramka jest manipulowana, aby uzyskać rzeczywistą temperaturę i dane dotyczące wibracji
if (Serial2.available()) { data[0] = Serial2.read(); opóźnienie(k); if(data[0]==0x7E) { Serial.println("Mam pakiet"); while (!Serial2.available()); for (i = 1; i< 55; i++) { dane = Serial2.odczyt(); opóźnienie(1); } if(data[15]==0x7F) /////// aby sprawdzić, czy otrzymane dane są poprawne { if(data[22]==0x08) //////// upewnij się, że typ czujnika jest poprawne { rms_x = ((uint16_t)(((dane[24])<<16) + ((dane[25])<<8) + (dane[26]))/100); rms_y = ((uint16_t)(((dane[27])<<16) + ((dane[28])<<8) + (dane[29]))/100); rms_z = ((uint16_t)(((dane[30])<<16) + ((dane[31])<<8) + (dane[32]))/100); max_x = ((uint16_t)(((dane[33])<<16) + ((dane[34])<<8) + (dane[35]))/100); max_y = ((uint16_t)(((dane[36])<<16) + ((dane[37])<<8) + (dane[38]))/100); max_z = ((uint16_t)(((dane[39])<<16) + ((dane[40])<<8) + (dane[41]))/100);
min_x = ((uint16_t)(((dane[42])<<16) + ((dane[43])<<8) + (dane[44]))/100); min_y = ((uint16_t)(((dane[45])<<16) + ((dane[46])<<8) + (dane[47]))/100); min_z = ((uint16_t)(((dane[48])<<16) + ((dane[49])<<8) + (dane[50]))/100);
cTemp = ((((dane[51]) * 256) + dane[52])); bateria podtrzymująca = ((dane[18] * 256) + dane[19]); napięcie podtrzymujące = 0,00322 * bateria; Serial.print("Numer czujnika"); Serial.println(dane[16]); Serial.print("Typ czujnika"); Serial.println(dane[22]); Serial.print("Wersja oprogramowania"); Serial.println(dane[17]); Serial.print("Temperatura w stopniach Celsjusza:"); druk.seryjny(cTemp); Serial.println("C"); Serial.print("Wibracje RMS w osi X:"); Serial.print(rms_x); Serial.println(" mg"); Serial.print("Wibracje RMS w osi Y:"); Serial.print(rms_y); Serial.println(" mg"); Serial.print("Wibracje RMS w osi Z:"); Serial.print(rms_z); Serial.println(" mg");
Serial.print("Minimalne wibracje w osi X:");
Serial.print(min_x); Serial.println(" mg"); Serial.print("Minimalne wibracje w osi Y:"); Serial.print(min_y); Serial.println(" mg"); Serial.print("Minimalne wibracje w osi Z:"); Serial.print(min_z); Serial.println(" mg");
Serial.print("wartość ADC:");
Serial.println(akumulator); Serial.print("Napięcie baterii:"); Serial.print(napięcie); Serial.println("\n"); if (napięcie < 1) { Serial.println("Czas na wymianę baterii"); } } } else { for (i = 0; i< 54; i++) { Serial.print(data); Serial.print(", "); opóźnienie(1); } } } }
Łączenie z UbiDots MQTT API
Dołącz plik nagłówkowy dla procesu MQTT
#include "PubSubClient.h"
zdefiniować inne zmienne dla MQTT, takie jak nazwa klienta, adres brokera, identyfikator tokena (pobieramy identyfikator tokena z EEPROM)
#define MQTT_CLIENT_NAME "ClientVBShightime123"char mqttBroker = "things.ubidots.com"; ładunek znaków[100]; temat char[150]; //utwórz zmienną do przechowywania identyfikatora tokena String tokenId;
Utwórz zmienne do przechowywania różnych danych z czujników i utwórz zmienną typu char do przechowywania tematu
#define VARIABLE_LABEL_TEMPF "tempF" // Przypisanie etykiety zmiennej#define VARIABLE_LABEL_TEMPC "tempC" // Przypisanie etykiety zmiennej #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "wilgotny" // Przypisanie etykiety zmiennej
char temat1[100];
char temat2[100]; char temat3[100];
opublikuj dane we wspomnianym temacie MQTT, ładunek będzie wyglądał następująco { "tempc": {value: "tempData"}}
sprintf(temat1, "%s", "");sprintf(temat1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf(ładunek, "%s", "");
// Czyści sprintf(payload, "{"%s\":", VARIABLE_LABEL_TEMPC);
// Dodaje wartość sprintf(payload, "%s{"value\":%s}", payload, str_cTemp);
// Dodaje wartość sprintf(payload, "%s}", payload);
// Zamyka nawiasy słownikowe Serial.println(payload);
Serial.println(client.publish(topic1, payload) ? "opublikowane": "nieopublikowane");
//Zrób to samo dla innego tematu
client.publish() publikuje dane do UbiDots
Krok 7: Wizualizacja danych
- Przejdź do Ubidots i zaloguj się na swoje konto.
- Przejdź do pulpitu nawigacyjnego z karty Dane wymienionej na górze.
- Teraz kliknij ikonę „+”, aby dodać nowe widżety.
- Wybierz widżet z listy i dodaj zmienną oraz urządzenia.
- Dane z czujników można wizualizować na desce rozdzielczej za pomocą różnych widżetów.
Ogólny kod
Kod Over dla HTML i ESP32 można znaleźć w tym repozytorium GitHub.
- Płytka zaciskowa ncd ESP32.
- ncd Bezprzewodowe czujniki temperatury i wilgotności.
- pubsubklient
- UbiDots