Съдържание:

Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки

Видео: Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки

Видео: Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Видео: HK9 Ultra 2 Smartwatch | Specs, OS 10, AMOLED, 2GB & More! 🔥 2024, Ноември
Anonim
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния

Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторингът и периодичният анализ на вибрациите в машината могат да решат проблема с ранните повреди и износването на машинната част.

В тази инструкция ще работим върху безжичните сензори за вибрации и температура на IoT на дълги разстояния. Това са сензори от промишлен клас с много широко разпространени приложения като.

  • Металообработване
  • Производство на електроенергия
  • Минен
  • Храни и напитки

Така че в тази инструкция ще преминем през следното:

  • Конфигуриране на безжични сензори с помощта на XCTU и потребителския интерфейс на Labview.
  • Получаване на стойностите на вибрации от сензора.
  • Разбиране на работата на xbee устройство и xbee протокол.
  • Конфигуриране на идентификационни данни за WiFi и IP конфигурация с помощта на портала за задържане

Стъпка 1: Спецификация на хардуера и софтуера

Характеристики на хардуера и софтуера
Характеристики на хардуера и софтуера
Характеристика на хардуера и софтуера
Характеристика на хардуера и софтуера
Характеристики на хардуера и софтуера
Характеристики на хардуера и софтуера

Спецификация на хардуера

  • Безжични сензори за вибрации и температура
  • Зигмо приемник
  • ESP32 BLE/ WiFi устройство

Спецификация на софтуера

  • Arduino IDE
  • Помощна програма LabView

Стъпка 2: Конфигуриране на безжичен сензор и Zigmo приемник с помощта на XCTU

Конфигуриране на безжичен сензор и Zigmo приемник с помощта на XCTU
Конфигуриране на безжичен сензор и Zigmo приемник с помощта на XCTU
Конфигуриране на безжичен сензор и Zigmo приемник с помощта на XCTU
Конфигуриране на безжичен сензор и Zigmo приемник с помощта на XCTU

Всяко IoT устройство се нуждае от комуникационен протокол, за да постави устройството над облака и да настрои безжичен интерфейс между различни устройства.

Тук безжичните сензори и приемникът Zigmo използват решение XBee с ниска мощност и дълги разстояния. XBee използва протокол ZigBee, който определя операцията в 902 до 928 MHz ISM ленти.

Xbee може да бъде конфигуриран с помощта на софтуер XCTU

  1. Потърсете устройството Xbee или добавете ново устройство Xbee, като щракнете върху иконата в горния ляв ъгъл.
  2. Устройството ще бъде изброено в панела вляво.
  3. щракнете двукратно върху устройството, за да видите настройките.
  4. Сега кликнете върху иконата на конзолата в горния десен ъгъл
  5. Можете да видите стойността, идваща на изхода на конзолата
  6. Тук получаваме рамката с дължина 54 байта
  7. тези байтове ще бъдат допълнително манипулирани, за да се получат реалните стойности. процедурата за получаване на реалната температура и стойностите на вибрациите са споменати в предстоящите стъпки.

Стъпка 3: Анализ на температурата и вибрационните стойности на безжичната мрежа с помощта на Labview Utility

Анализ на безжичните температури и стойностите на вибрациите с помощта на помощната програма Labview
Анализ на безжичните температури и стойностите на вибрациите с помощта на помощната програма Labview
Анализ на безжичните температури и стойностите на вибрациите с помощта на помощната програма Labview
Анализ на безжичните температури и стойностите на вибрациите с помощта на помощната програма Labview

Сензорът работи в два режима

  • Режим на конфигуриране: Конфигурирайте Pan ID, забавяне, брой повторения и др. Повече за това е извън обхвата на тази инструкция и ще бъде обяснено в следващата инструкция.
  • Режим на изпълнение: Работим с устройството в режим на изпълнение. И за да анализираме тези стойности, използваме помощната програма Labview

Този потребителски интерфейс на Labview показва стойностите в хубави графики. Той показва текущите, както и миналите стойности. Можете да отидете на тази връзка, за да изтеглите потребителския интерфейс на Labview.

щракнете върху иконата Run от менюто на целевата страница, за да преминете към режим Run.

Стъпка 4: Конфигуриране на DHCP/статични IP настройки с помощта на Captive Portal

Конфигуриране на DHCP/статични IP настройки чрез Captive Portal
Конфигуриране на DHCP/статични IP настройки чрез Captive Portal
Конфигуриране на DHCP/статични IP настройки чрез Captive Portal
Конфигуриране на DHCP/статични IP настройки чрез Captive Portal
Конфигуриране на DHCP/статични IP настройки чрез Captive Portal
Конфигуриране на DHCP/статични IP настройки чрез Captive Portal

Използваме портала за задържане, за да запазим идентификационните данни за WiFi и да задържим курсора на мишката през настройките на IP. За подробно представяне на портала за задържане можете да преминете през следните инструкции.

Порталът за задържане ни дава възможност да избираме между статични и DHCP настройки. Просто въведете идентификационните данни като Static IP, Subnet Mask, gateway и Wireless Sensor Gateway ще бъдат конфигурирани на този IP.

Стъпка 5: Запазване на настройките за WiFi с помощта на Captive Portal

Запазване на WiFi настройки с помощта на Captive Portal
Запазване на WiFi настройки с помощта на Captive Portal

Хоства се уеб страница, където има списък с наличните WiFi мрежи и RSSI. Изберете WiFi мрежата и паролата и въведете submit. Идентификационните данни ще бъдат записани в EEPROM, а настройката на IP ще бъде запазена в SPIFFS. Повече за това можете да намерите в тази инструкция.

Стъпка 6: Публикуване на показанията на сензорите в UbiDots

Тук използваме безжични сензори за температура и вибрации с приемника на шлюза ESP 32, за да получим данните за температурата и влажността. Изпращаме данните към UbiDots, използвайки протокола MQTT. MQTT следва механизъм за публикуване и абониране, а не тази заявка и отговор. Той е по -бърз и надежден от HTTP. Това работи по следния начин.

Четене на данните за безжичния сензор

Получаваме 29-байтова рамка от безжичните сензори за температура и вибрации. Тази рамка се манипулира, за да се получат действителната температура и данните за вибрациите

if (Serial2.available ()) {data [0] = Serial2.read (); забавяне (к); if (данни [0] == 0x7E) {Serial.println ("Получен пакет"); while (! Serial2.available ()); за (i = 1; i <55; i ++) {данни = Serial2.read (); забавяне (1); } if (data [15] == 0x7F) /////// за да проверите дали данните за получаване са правилни {if (data [22] == 0x08) //////// уверете се, че типът на сензора е правилно {rms_x = ((uint16_t) (((данни [24]) << 16) + ((данни [25]) << 8) + (данни [26]))/100); rms_y = ((uint16_t) (((данни [27]) << 16) + ((данни [28]) << 8) + (данни [29]))/100); rms_z = ((uint16_t) (((данни [30]) << 16) + ((данни [31]) << 8) + (данни [32]))/100); max_x = ((uint16_t) (((данни [33]) << 16) + ((данни [34]) << 8) + (данни [35]))/100); max_y = ((uint16_t) (((данни [36]) << 16) + ((данни [37]) << 8) + (данни [38]))/100); max_z = ((uint16_t) (((данни [39]) << 16) + ((данни [40]) << 8) + (данни [41]))/100);

min_x = ((uint16_t) (((данни [42]) << 16) + ((данни [43]) << 8) + (данни [44]))/100); min_y = ((uint16_t) (((данни [45]) << 16) + ((данни [46]) << 8) + (данни [47]))/100); min_z = ((uint16_t) (((данни [48]) << 16) + ((данни [49]) << 8) + (данни [50]))/100);

cTemp = ((((данни [51]) * 256) + данни [52])); плаваща батерия = ((данни [18] * 256) + данни [19]); плаващо напрежение = 0,00322 * батерия; Serial.print ("Номер на сензора"); Serial.println (данни [16]); Serial.print ("Тип сензор"); Serial.println (данни [22]); Serial.print ("Версия на фърмуера"); Serial.println (данни [17]); Serial.print ("Температура в Целзий:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS вибрация по оста X:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS вибрация по оста Y:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS вибрация по оста Z:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("Минимални вибрации по оста X:");

Serial.print (min_x); Serial.println ("mg"); Serial.print ("Минимални вибрации по оста Y:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Минимални вибрации по оста Z:"); Serial.print (min_z); Serial.println ("mg");

Serial.print ("ADC стойност:");

Serial.println (батерия); Serial.print ("Напрежение на батерията:"); Serial.print (напрежение); Serial.println ("\ n"); if (напрежение <1) {Serial.println ("Време за смяна на батерията"); }}} else {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); забавяне (1); }}}}

Свързване към UbiDots MQTT API

Включете заглавния файл за процеса MQTT

#include "PubSubClient.h"

дефинирайте други променливи за MQTT като име на клиент, адрес на брокер, идентификационен номер на маркера (Извличаме идентификационния номер на маркера от EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; полезен товар char [100]; char тема [150]; // създаване на променлива за съхраняване на идентификатор на маркер String tokenId;

Създайте променливи за съхраняване на различни сензорни данни и създайте променлива char за съхраняване на тема

#define VARIABLE_LABEL_TEMPF "tempF" // Задаване на етикета на променливата #define VARIABLE_LABEL_TEMPC "tempC" // Определяне на етикета на променливата #define VARIABLE_LABEL_BAT "bat" #дефиниране на VARIABLE_LABEL_HUMID "влажен" етикет

char topic1 [100];

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

публикуване на данните към споменатата тема за MQTT полезният товар ще изглежда като {"tempc": {стойност: "tempData"}}

sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (полезен товар, "%s", "");

// Почиства полезния товар sprintf (полезен товар, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// Добавя стойността sprintf (полезен товар, "%s {" стойност / ":%s}", полезен товар, str_cTemp);

// Добавя стойността sprintf (полезен товар, "%s}", полезен товар);

// Затваря скобите на речника Serial.println (полезен товар);

Serial.println (client.publish (topic1, полезен товар)? "Published": "notpublished");

// Направете същото и за друга тема

client.publish () публикува данните в UbiDots

Стъпка 7: Визуализиране на данните

Визуализиране на данните
Визуализиране на данните
  • Отидете на Ubidots и влезте в профила си.
  • Придвижете се до таблото за управление от раздела Данни, посочен в горната част.
  • Сега щракнете върху иконата "+", за да добавите новите джаджи.
  • Изберете приспособление от списъка и добавете променлива и устройства.
  • Данните от сензора могат да се визуализират на таблото за управление, като се използват различни приспособления.

Общ код

Over кодът за HTML и ESP32 може да бъде намерен в това хранилище на GitHub.

  1. ncd ESP32 пробивна платка.
  2. ncd Безжични сензори за температура и влажност.
  3. pubsubclient
  4. UbiDots

Препоръчано: