Оглавление:
- Шаг 1. Спецификация оборудования и программного обеспечения
- Шаг 2: Беспроводные датчики давления и температуры
- Шаг 3. Подключение к Wi-Fi
- Шаг 4: Настройка UbiDots на ESP32
- Шаг 5: Публикация показаний датчика в UbiDots
- Шаг 6: Визуализация данных
- Шаг 7: Общий код
Видео: Публикация данных беспроводного датчика давления с помощью MQTT: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
ESP32 и ESP 8266 - очень знакомые SoC в области Интернета вещей. Это своего рода благо для проектов Интернета вещей. ESP 32 - это устройство со встроенным Wi-Fi и BLE. Просто укажите свой SSID, пароль и конфигурации IP и интегрируйте все в облако. Здесь, в этом руководстве, мы обсудим некоторые из основных терминов IoT, таких как платформа IoT, MQTT, Captive Portals и т. Д. Итак, давайте рассмотрим это.
- Проще говоря, IoT-архитектура состоит из встроенного устройства и платформы IoT для размещения устройства в облаке. Здесь мы используем платформу UbiDots IoT для визуализации данных датчиков.
- Управление настройками IP и учетными данными пользователя может быть головной болью для пользователя. Что делать, если пользователь хочет изменить учетные данные WiFi? Что делать, если пользователь хочет переключить настройки DHCP / статического IP? Постоянная перепрошивка ESP32 ненадежна и даже не является решением этих проблем. Итак, мы пройдем через портал авторизации, чтобы сохранить учетные данные WiFi и другие конфигурации.
- MQTT теперь становится очень распространенным термином в мире Интернета вещей. он превзошел запросы и ответы (HTTP) при публикации и подписке из-за быстрой, надежной и экономичной архитектуры.
Здесь, в этом руководстве, мы собираемся продемонстрировать.
- Предоставление учетных данных WiFi и MQTT с помощью Captive Portal.
- Публикация и подписка нескольких данных датчиков на UbiDots.
- Считывание данных датчика с беспроводного датчика давления и температуры
- Размещение веб-формы из ESP32.
- Чтение и запись из SPIFFS ESP32.
Шаг 1. Спецификация оборудования и программного обеспечения
Спецификация оборудования
- ESP32 WiFi / BLE
- Беспроводной датчик давления и температуры
Спецификация программного обеспечения
- IDE Arduino
- XCTU
- Утилита Labview
Шаг 2: Беспроводные датчики давления и температуры
Функции
- Датчик промышленного класса, беспроводной датчик давления и температуры с большим диапазоном …
- Рабочий диапазон от 0 до 14000 мбар от -40 ° до + 85 ° C (от -40 ° до 185 ° F)
- Конфигурируемое внутреннее расчетное разрешение по давлению от 0,012 до 0,065 мбар
- Настраиваемое внутреннее расчетное разрешение по температуре от 0,002 до 0,012 ° C
- Точность ± 2,5 мбар, ± 2 ° C
- Абсолютное давление, относительное давление и изменение относительной высоты
- 2 миля прямой видимости с бортовой антенной
- Превосходная дальность видимости до 28 миль с антеннами с высоким коэффициентом усиления
- Интерфейс для Raspberry Pi, Microsoft® Azure®, Arduino и др.
- Беспроводная ячеистая сеть с использованием DigiMesh®
Настройка беспроводного датчика давления и температуры с помощью Labview Utility и XCTU
Датчик работает в двух режимах
- Режим конфигурации: настройте идентификатор панорамирования, задержку, количество повторных попыток и т. Д. Более подробная информация об этом выходит за рамки данной инструкции и будет объяснена в следующей инструкции.
- Рабочий режим: мы запускаем устройство в рабочем режиме. И для анализа этих значений мы используем служебную программу Labview.
Этот пользовательский интерфейс Labview показывает значения в красивых графиках. Он показывает как текущие, так и прошлые значения. Вы можете перейти по этой ссылке, чтобы загрузить пользовательский интерфейс Labview. щелкните значок «Выполнить» в меню целевой страницы, чтобы перейти в режим выполнения.
Шаг 3. Подключение к Wi-Fi
Мы используем захватывающий портал для сохранения учетных данных WiFi и для наведения курсора на настройки IP. Для подробного ознакомления с адаптивным порталом вы можете ознакомиться со следующими инструкциями.
Адаптивный портал дает нам возможность выбирать между статическими настройками и настройками DHCP. Просто введите учетные данные, такие как статический IP-адрес, маска подсети, шлюз, и шлюз беспроводного датчика будет настроен на этом IP-адресе.
Размещается веб-страница, на которой отображается список доступных сетей Wi-Fi и RSSI. Выберите сеть Wi-Fi и пароль и введите "Отправить". Учетные данные будут сохранены в EEPROM, а настройки IP будут сохранены в SPIFFS. Подробнее об этом можно прочитать в этой инструкции.
Шаг 4: Настройка UbiDots на ESP32
Здесь мы используем беспроводные датчики давления и температуры с устройством ESP 32 для получения данных о температуре и влажности. Мы отправляем данные в UbiDots по протоколу MQTT. MQTT следует за механизмом публикации и подписки, а не за запросом и ответом. Это быстрее и надежнее, чем HTTP. Это работает следующим образом.
- Мы используем планировщик задач для планирования таких задач, как получение данных с датчиков, публикация показаний датчиков, подписка на тему MQTT.
- Во-первых, включите файлы заголовков планировщика заданий, его экземпляр и составьте расписание задач.
- Мы запланировали две задачи, относящиеся к двум различным операциям контроля.
#define _TASK_TIMEOUT # include Scheduler ts; // --------- Задачи ------------ // Задача tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Задача tWiFi (10 * TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Задача 1 предназначена для считывания значения датчика, эта задача выполняется в течение 1 секунды, пока не истечет время ожидания в 10 секунд.
- Когда Task1 достигает своего тайм-аута, мы подключаемся к локальному Wi-Fi и брокеру MQTT.
- Теперь задача 2 включена, и мы отключаем задачу 1.
- Задача 2 предназначена для публикации данных датчика в брокере UbiDots MQTT. Эта задача выполняется в течение 20 секунд, пока не истечет время ожидания в 20 секунд.
- Когда Task2 достигает своего тайм-аута, Task 1 снова включается, а Task2 отключается. Здесь мы снова получаем обновленное значение, и процесс продолжается.
Чтение данных датчика I2C
Мы получаем 29-байтовый фрейм от беспроводных датчиков температуры и влажности. Этот кадр используется для получения фактических данных о температуре и влажности
если (Serial1.available ())
{данные [0] = Serial1.read (); задержка (k); если (данные [0] == 0x7E) {в то время как (! Serial1.available ()); для (я = 1; я <36; я ++) {данные [я] = Serial1.read (); задержка (1); } if (data [15] == 0x7F) /////// для проверки правильности полученных данных {if (data [22] == 0x06) //////// убедитесь, что тип датчика правильно {int cTemp = ((((данные [24]) * 256) + данные [25])); int16_t abs_pressure = ((((uint16_t) (данные [26]) << 8) | данные [27]) * 0,001); int rlt_pressure = ((((данные [28]) * 256) + данные [29]) * 0,001); int16_t delta_alt = ((((uint16_t) (данные [30]) << 8) | данные [31]) * 0,01); плавающая батарея = ((данные [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 («Абсолютное давление:»); Serial.println (abs_pressure); Serial.print («мбар»); Serial.print («Относительное давление:»); Serial.println (rlt_pressure); Serial.print («мбар»); Serial.print ("Дельта-высота:"); Serial.println (delta_alt); Serial.print («метр»); Serial.print ("Значение АЦП:"); Serial.println (аккумулятор); Serial.print («Напряжение аккумулятора:»); Serial.print (напряжение); Serial.println ("\ п"); if (Voltage <1) {Serial.println («Пора заменить батарею»); }}} else {для (я = 0; я <36; я ++) {Serial.print (данные [я]); Serial.print (","); задержка (1); }}}}
Подключение к UbiDots MQTT API
Включите файл заголовка для процесса MQTT
#включают
определить другие переменные для MQTT, такие как имя клиента, адрес брокера, идентификатор токена
#define TOKEN "BBFF - ***********************************" // Ваш ЖЕТОН Ubidots # определить MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
полезная нагрузка char [100]; тема char [150]; // создаем переменную для хранения токена ID токена
Шаг 5: Публикация показаний датчика в UbiDots
Создайте переменные для хранения различных данных датчиков и создайте символьную переменную для хранения темы
#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
Шаг 6: Визуализация данных
- Зайдите в Ubidots и войдите в свою учетную запись.
- Перейдите на панель управления с вкладки «Данные», расположенной вверху.
- Теперь щелкните значок «+», чтобы добавить новые виджеты.
- Выберите виджет из списка и добавьте переменную и устройства.
- Данные датчиков можно визуализировать на панели управления с помощью различных виджетов.
Шаг 7: Общий код
Код Over для HTML и ESP32 можно найти в этом репозитории GitHub.
Кредиты
- Коммутационная плата ncd ESP32.
- Беспроводные датчики давления и температуры ncd
- pubsubclient
- UbiDots
- Планировщик заданий
Рекомендуемые:
IOT - Публикация данных в Thingspeak с помощью ESP8266: 3 шага
IOT | Публикуйте данные в Thingspeak с помощью ESP8266: в настоящее время IoT является тенденцией, и многие машины имеют данные для загрузки через облако и анализа данных. Маленькие датчики обновляют данные в облаке, а исполнительный механизм на другом конце воздействует на него. Я собираюсь объяснить один из примеров IoT. Я эту статью и
Отправка данных беспроводного датчика температуры и влажности в Excel: 34 шага
Отправка данных беспроводного датчика температуры и влажности в Excel: мы используем здесь датчик температуры и влажности NCD, но шаги остаются одинаковыми для любого продукта ncd, поэтому, если у вас есть другие беспроводные датчики ncd, вы можете свободно наблюдать за ними. Путем остановки этого текста вам нужно
Отправка данных беспроводного датчика вибрации и температуры в Excel с помощью Node-RED: 25 шагов
Отправка данных беспроводного датчика вибрации и температуры в Excel с помощью Node-RED: представляем промышленный беспроводной датчик вибрации и температуры для Интернета вещей большого радиуса действия от NCD, обеспечивающий радиус действия до 2 миль за счет использования беспроводной ячеистой сетевой структуры. Это устройство, оснащенное прецизионным 16-битным датчиком вибрации и температуры, может
Отправка данных беспроводного датчика температуры и влажности IoT с большим радиусом действия в Google Sheet: 39 шагов
Отправка данных беспроводного датчика температуры и влажности IoT с большим радиусом действия в таблицу Google: мы используем датчик температуры и влажности NCD, но шаги остаются одинаковыми для любого продукта ncd, поэтому, если у вас есть другие беспроводные датчики ncd, вы можете свободно наблюдать рядом кроме того. Путем остановки этого текста вам нужно
Визуализация данных беспроводного датчика с помощью Google Charts: 6 шагов
Визуализация данных беспроводных датчиков с помощью Google Charts: Прогнозный анализ машин очень необходим, чтобы минимизировать время простоя машины. Регулярные проверки помогают увеличить время работы машины и, в свою очередь, повысить ее отказоустойчивость. Беспроводной датчик вибрации и температуры