Оглавление:
- Шаг 1. Спецификация оборудования и программного обеспечения
- Шаг 2: Настройка беспроводного датчика и Zigmo-приемника с помощью XCTU
- Шаг 3. Анализ значений температуры и вибрации беспроводной сети с помощью утилиты Labview
- Шаг 4. Настройка DHCP / статического IP-адреса с помощью Captive Portal
- Шаг 5: Сохранение настроек WiFi с помощью Captive Portal
- Шаг 6: Публикация показаний датчика в UbiDots
- Шаг 7: Визуализация данных
Видео: Начало работы с беспроводными датчиками температуры и вибрации большого радиуса действия: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:47
Иногда вибрация является причиной серьезных проблем во многих приложениях. От валов и подшипников машин до производительности жесткого диска - вибрация вызывает повреждение машины, преждевременную замену, низкую производительность и существенно снижает точность. Мониторинг и периодический анализ вибрации в машине может решить проблему раннего повреждения и износа деталей машины.
В этом руководстве мы будем работать над беспроводными датчиками вибрации и температуры большого радиуса действия для Интернета вещей. Это датчики промышленного класса, которые широко используются во многих сферах применения, например.
- Металлообработка
- Выработка энергии
- Добыча полезных ископаемых
- Еда и напитки
Итак, в этом руководстве мы рассмотрим следующее:
- Настройка беспроводных датчиков с помощью XCTU и Labview UI.
- Получение значений вибрации с датчика.
- Понимание работы устройства xbee и протокола xbee.
- Настройка учетных данных WiFi и конфигурации IP с помощью адаптивного портала
Шаг 1. Спецификация оборудования и программного обеспечения
Спецификация оборудования
- Беспроводные датчики вибрации и температуры
- Приемник Zigmo
- Устройство ESP32 BLE / WiFi
Спецификация программного обеспечения
- IDE Arduino
- Утилита LabView
Шаг 2: Настройка беспроводного датчика и Zigmo-приемника с помощью XCTU
Каждому устройству IoT необходим протокол связи, чтобы переместить устройство в облако и настроить беспроводной интерфейс между различными устройствами.
Здесь беспроводные датчики и приемник Zigmo используют решение XBee с низким энергопотреблением и большим радиусом действия. XBee использует протокол ZigBee, который определяет работу в диапазонах ISM от 902 до 928 МГц.
Xbee можно настроить с помощью программного обеспечения XCTU
- Найдите устройство Xbee или добавьте новое устройство Xbee, щелкнув значок в верхнем левом углу.
- Устройство будет указано на левой боковой панели.
- дважды щелкните устройство, чтобы просмотреть настройки.
- Теперь щелкните значок консоли в правом верхнем углу.
- Вы можете увидеть значение, поступающее на консольный вывод
- Получаем фрейм длиной 54 байта
- эти байты будут подвергнуты дальнейшим манипуляциям для получения реальных значений. Процедура получения реальных значений температуры и вибрации упоминается в следующих шагах.
Шаг 3. Анализ значений температуры и вибрации беспроводной сети с помощью утилиты Labview
Датчик работает в двух режимах
- Режим конфигурации: настройте идентификатор панорамирования, задержку, количество повторных попыток и т. Д. Более подробная информация об этом выходит за рамки данной инструкции и будет объяснена в следующей инструкции.
- Рабочий режим: мы запускаем устройство в рабочем режиме. И для анализа этих значений мы используем служебную программу Labview.
Этот пользовательский интерфейс Labview показывает значения в красивых графиках. Он показывает текущие, а также прошлые значения. Вы можете перейти по этой ссылке, чтобы загрузить пользовательский интерфейс Labview.
щелкните значок «Выполнить» в меню целевой страницы, чтобы перейти в режим выполнения.
Шаг 4. Настройка DHCP / статического IP-адреса с помощью Captive Portal
Мы используем захватывающий портал для сохранения учетных данных WiFi и наведения курсора на настройки IP. Для подробного ознакомления с адаптивным порталом вы можете ознакомиться со следующими инструкциями.
Адаптивный портал дает нам возможность выбирать между статическими настройками и настройками DHCP. Просто введите учетные данные, такие как статический IP-адрес, маска подсети, шлюз, и шлюз беспроводного датчика будет настроен на этом IP-адресе.
Шаг 5: Сохранение настроек 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.
- Коммутационная плата ncd ESP32.
- Ncd Беспроводные датчики температуры и влажности.
- pubsubclient
- UbiDots
Рекомендуемые:
Метеостанция большого радиуса действия HC-12 и датчики DHT: 9 шагов
HC-12 Метеостанция для больших расстояний и датчики DHT: в этом уроке мы узнаем, как сделать удаленную метеостанцию для больших расстояний, используя два датчика DHT, модули HC12 и ЖК-дисплей I2C. Посмотрите видео
Интернет вещей - Ubidots - ESP32 + Беспроводной датчик вибрации и температуры большого радиуса действия: 7 шагов
IoT-Ubidots-ESP32 + Беспроводной датчик вибрации и температуры с большим радиусом действия: Вибрация - это действительно движение туда-сюда - или колебание - машин и компонентов в моторизованных гаджетах. Вибрация в промышленной системе может быть симптомом или мотивом неприятностей или может быть связана с повседневной работой. Например, osci
Node-RED с датчиком температуры и вибрации большого радиуса действия IoT: 34 шага
Node-RED с датчиком вибрации и температуры большого радиуса действия IoT: представляем беспроводной датчик температуры и влажности большого радиуса действия NCD, обеспечивающий дальность действия до 28 миль с использованием архитектуры беспроводной ячеистой сети. Датчик температуры и влажности Honeywell HIH9130 передает высокоточные данные о температуре и
Беспроводной датчик температуры и влажности большого радиуса действия IOT с красным узлом: 27 шагов
Беспроводной датчик температуры и влажности большого радиуса действия IOT с Node-Red: Представляем беспроводной датчик температуры-влажности большого радиуса действия NCD, обеспечивающий дальность действия до 28 миль с использованием архитектуры беспроводной ячеистой сети. Датчик температуры-влажности Honeywell HIH9130 передает высокоточные данные о температуре и
Беспроводной индикатор уровня воды большого радиуса действия с сигнализацией - Дальность действия до 1 км - Семь уровней: 7 шагов
Беспроводной индикатор уровня воды большого радиуса действия с сигнализацией | Дальность действия до 1 км | Семь уровней: посмотрите это на Youtube: https://youtu.be/vdq5BanVS0Y Возможно, вы видели множество проводных и беспроводных индикаторов уровня воды, которые обеспечивают диапазон от 100 до 200 метров. Но в этом руководстве вы увидите индикатор уровня воды с большим радиусом действия