Оглавление:

Начало работы с беспроводными датчиками температуры и вибрации большого радиуса действия: 7 шагов
Начало работы с беспроводными датчиками температуры и вибрации большого радиуса действия: 7 шагов

Видео: Начало работы с беспроводными датчиками температуры и вибрации большого радиуса действия: 7 шагов

Видео: Начало работы с беспроводными датчиками температуры и вибрации большого радиуса действия: 7 шагов
Видео: ТЕХНИКА БЕЗОПАСНОСТИ. Вид Грубейшего Нарушения ТРЕБОВАНИЙ ТБ при работе на СТАНКАХ. 2024, Июнь
Anonim
Начало работы с беспроводными датчиками температуры и вибрации с большим радиусом действия
Начало работы с беспроводными датчиками температуры и вибрации с большим радиусом действия

Иногда вибрация является причиной серьезных проблем во многих приложениях. От валов и подшипников машин до производительности жесткого диска - вибрация вызывает повреждение машины, преждевременную замену, низкую производительность и существенно снижает точность. Мониторинг и периодический анализ вибрации в машине может решить проблему раннего повреждения и износа деталей машины.

В этом руководстве мы будем работать над беспроводными датчиками вибрации и температуры большого радиуса действия для Интернета вещей. Это датчики промышленного класса, которые широко используются во многих сферах применения, например.

  • Металлообработка
  • Выработка энергии
  • Добыча полезных ископаемых
  • Еда и напитки

Итак, в этом руководстве мы рассмотрим следующее:

  • Настройка беспроводных датчиков с помощью XCTU и Labview UI.
  • Получение значений вибрации с датчика.
  • Понимание работы устройства xbee и протокола xbee.
  • Настройка учетных данных WiFi и конфигурации IP с помощью адаптивного портала

Шаг 1. Спецификация оборудования и программного обеспечения

Спецификация аппаратного и программного обеспечения
Спецификация аппаратного и программного обеспечения
Технические характеристики оборудования и программного обеспечения
Технические характеристики оборудования и программного обеспечения
Технические характеристики оборудования и программного обеспечения
Технические характеристики оборудования и программного обеспечения

Спецификация оборудования

  • Беспроводные датчики вибрации и температуры
  • Приемник Zigmo
  • Устройство ESP32 BLE / WiFi

Спецификация программного обеспечения

  • IDE Arduino
  • Утилита LabView

Шаг 2: Настройка беспроводного датчика и Zigmo-приемника с помощью XCTU

Настройка беспроводного датчика и приемника Zigmo с помощью XCTU
Настройка беспроводного датчика и приемника Zigmo с помощью XCTU
Настройка беспроводного датчика и приемника Zigmo с помощью XCTU
Настройка беспроводного датчика и приемника Zigmo с помощью XCTU

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

Здесь беспроводные датчики и приемник Zigmo используют решение XBee с низким энергопотреблением и большим радиусом действия. XBee использует протокол ZigBee, который определяет работу в диапазонах ISM от 902 до 928 МГц.

Xbee можно настроить с помощью программного обеспечения XCTU

  1. Найдите устройство Xbee или добавьте новое устройство Xbee, щелкнув значок в верхнем левом углу.
  2. Устройство будет указано на левой боковой панели.
  3. дважды щелкните устройство, чтобы просмотреть настройки.
  4. Теперь щелкните значок консоли в правом верхнем углу.
  5. Вы можете увидеть значение, поступающее на консольный вывод
  6. Получаем фрейм длиной 54 байта
  7. эти байты будут подвергнуты дальнейшим манипуляциям для получения реальных значений. Процедура получения реальных значений температуры и вибрации упоминается в следующих шагах.

Шаг 3. Анализ значений температуры и вибрации беспроводной сети с помощью утилиты Labview

Анализ значений температуры и вибрации беспроводной сети с помощью утилиты Labview
Анализ значений температуры и вибрации беспроводной сети с помощью утилиты Labview
Анализ значений температуры и вибрации беспроводной сети с помощью утилиты Labview
Анализ значений температуры и вибрации беспроводной сети с помощью утилиты Labview

Датчик работает в двух режимах

  • Режим конфигурации: настройте идентификатор панорамирования, задержку, количество повторных попыток и т. Д. Более подробная информация об этом выходит за рамки данной инструкции и будет объяснена в следующей инструкции.
  • Рабочий режим: мы запускаем устройство в рабочем режиме. И для анализа этих значений мы используем служебную программу Labview.

Этот пользовательский интерфейс Labview показывает значения в красивых графиках. Он показывает текущие, а также прошлые значения. Вы можете перейти по этой ссылке, чтобы загрузить пользовательский интерфейс Labview.

щелкните значок «Выполнить» в меню целевой страницы, чтобы перейти в режим выполнения.

Шаг 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. Просто введите учетные данные, такие как статический IP-адрес, маска подсети, шлюз, и шлюз беспроводного датчика будет настроен на этом IP-адресе.

Шаг 5: Сохранение настроек WiFi с помощью Captive Portal

Сохранение настроек WiFi с помощью Captive Portal
Сохранение настроек WiFi с помощью Captive Portal

Размещается веб-страница, на которой отображается список доступных сетей Wi-Fi и RSSI. Выберите сеть Wi-Fi и пароль и введите "Отправить". Учетные данные будут сохранены в EEPROM, а настройки IP будут сохранены в SPIFFS. Подробнее об этом можно прочитать в этой инструкции.

Шаг 6: Публикация показаний датчика в UbiDots

Здесь мы используем беспроводные датчики температуры и вибрации с приемником шлюза ESP 32 для получения данных о температуре и влажности. Мы отправляем данные в UbiDots по протоколу MQTT. MQTT следует за механизмом публикации и подписки, а не за запросом и ответом. Это быстрее и надежнее, чем HTTP. Это работает следующим образом.

Чтение данных беспроводного датчика

Мы получаем 29-байтовый фрейм от беспроводных датчиков температуры и вибрации. Эта рамка используется для получения фактических данных о температуре и вибрации

если (Serial2.available ()) {данные [0] = Serial2.read (); задержка (k); if (data [0] == 0x7E) {Serial.println ("Получил пакет"); while (! Serial2.available ()); для (я = 1; я <55; я ++) {данные [я] = Serial2.read (); задержка (1); } if (data [15] == 0x7F) /////// для проверки правильности полученных данных {if (data [22] == 0x08) //////// убедитесь, что тип датчика правильно {rms_x = ((uint16_t) (((data [24]) << 16) + ((data [25]) << 8) + (data [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 («Среднеквадратичная вибрация по оси X:»); Серийный.печать (rms_x); Serial.println («мг»); Serial.print («Среднеквадратичная вибрация по оси Y:»); Серийный.печать (rms_y); Serial.println («мг»); Serial.print («Среднеквадратичная вибрация по оси Z:»); Serial.print (rms_z); Serial.println («мг»);

Serial.print («Минимальная вибрация по оси X:»);

Серийный.печать (min_x); Serial.println («мг»); Serial.print («Минимальная вибрация по оси Y:»); Серийный.печать (min_y); Serial.println («мг»); Serial.print («Минимальная вибрация по оси Z:»); Серийный.печать (min_z); Serial.println («мг»);

Serial.print ("Значение АЦП:");

Serial.println (аккумулятор); Serial.print («Напряжение аккумулятора:»); Serial.print (напряжение); Serial.println ("\ п"); if (Voltage <1) {Serial.println («Пора заменить батарею»); }}} else {для (я = 0; я <54; я ++) {Serial.print (данные [я]); 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;

Создайте переменные для хранения различных данных датчиков и создайте символьную переменную для хранения темы

#define VARIABLE_LABEL_TEMPF "tempF" // Назначение метки переменной #define VARIABLE_LABEL_TEMPC "tempC" // Назначение метки переменной #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "влажная метка" //

char topic1 [100];

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

опубликуйте данные в упомянутой теме MQTT, полезная нагрузка будет иметь вид {"tempc": {value: "tempData"}}

sprintf (topic1, "% s", ""); sprintf (topic1, "% s% s", "/v1.6/devices/", DEVICE_LABEL); sprintf (полезная нагрузка, "% s", "");

// Очищает полезную нагрузку sprintf (payload, "{"% s / ":", VARIABLE_LABEL_TEMPC);

// Добавляет значение sprintf (payload, "% s {" value / ":% s}", payload, str_cTemp);

// Добавляет значение sprintf (payload, "% s}", payload);

// Закрываем словарные скобки Serial.println (payload);

Serial.println (client.publish (topic1, payload)? "Опубликовано": "не опубликовано");

// Сделайте то же самое и для другой темы

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

Шаг 7: Визуализация данных

Визуализация данных
Визуализация данных
  • Зайдите в Ubidots и войдите в свою учетную запись.
  • Перейдите на панель управления с вкладки «Данные», расположенной вверху.
  • Теперь щелкните значок «+», чтобы добавить новые виджеты.
  • Выберите виджет из списка и добавьте переменную и устройства.
  • Данные датчиков можно визуализировать на панели управления с помощью различных виджетов.

Общий код

Код Over для HTML и ESP32 можно найти в этом репозитории GitHub.

  1. Коммутационная плата ncd ESP32.
  2. Ncd Беспроводные датчики температуры и влажности.
  3. pubsubclient
  4. UbiDots

Рекомендуемые: