Spisu treści:

Pierwsze kroki z bezprzewodowymi czujnikami temperatury i wibracji dalekiego zasięgu: 7 kroków
Pierwsze kroki z bezprzewodowymi czujnikami temperatury i wibracji dalekiego zasięgu: 7 kroków

Wideo: Pierwsze kroki z bezprzewodowymi czujnikami temperatury i wibracji dalekiego zasięgu: 7 kroków

Wideo: Pierwsze kroki z bezprzewodowymi czujnikami temperatury i wibracji dalekiego zasięgu: 7 kroków
Wideo: IIoT - Internet Rzeczy w Przemyśle - praktyczny poradnik jak zacząć 2024, Listopad
Anonim
Pierwsze kroki z bezprzewodowymi czujnikami temperatury i wibracji dalekiego zasięgu
Pierwsze kroki z bezprzewodowymi czujnikami temperatury i wibracji dalekiego zasięgu

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 i oprogramowania
Specyfikacja sprzętu i oprogramowania
Specyfikacja sprzętu i oprogramowania
Specyfikacja sprzętu i oprogramowania
Specyfikacja sprzętu i oprogramowania
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

Konfiguracja czujnika bezprzewodowego i odbiornika Zigmo za pomocą XCTU
Konfiguracja czujnika bezprzewodowego i odbiornika Zigmo za pomocą XCTU
Konfiguracja czujnika bezprzewodowego i odbiornika Zigmo za pomocą XCTU
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

  1. Wyszukaj urządzenie Xbee lub dodaj nowe urządzenie Xbee, klikając ikonę w lewym górnym rogu.
  2. Urządzenie zostanie wyświetlone na lewym panelu bocznym.
  3. kliknij dwukrotnie urządzenie, aby zobaczyć ustawienia.
  4. Teraz kliknij ikonę konsoli w prawym górnym rogu
  5. Możesz zobaczyć wartość nadchodzącą na wyjściu konsoli
  6. Tutaj otrzymujemy ramkę o długości 54 bajtów
  7. 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

Bezprzewodowa analiza wartości temperatury i wibracji za pomocą narzędzia Labview
Bezprzewodowa analiza wartości temperatury i wibracji za pomocą narzędzia Labview
Bezprzewodowa analiza wartości temperatury i wibracji za pomocą narzędzia Labview
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

Konfigurowanie ustawień DHCP/statycznego adresu IP za pomocą portalu przechwytującego
Konfigurowanie ustawień DHCP/statycznego adresu IP za pomocą portalu przechwytującego
Konfigurowanie ustawień DHCP/statycznego adresu IP za pomocą portalu przechwytującego
Konfigurowanie ustawień DHCP/statycznego adresu IP za pomocą portalu przechwytującego
Konfigurowanie ustawień DHCP/statycznego adresu IP za pomocą portalu przechwytującego
Konfigurowanie 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

Zapisywanie ustawień Wi-Fi za pomocą Captive Portal
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

Wizualizacja danych
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.

  1. Płytka zaciskowa ncd ESP32.
  2. ncd Bezprzewodowe czujniki temperatury i wilgotności.
  3. pubsubklient
  4. UbiDots

Zalecana: