Программирование ARM Для чего нужна библиотека thinger.io в проектах ESP-IDF? Sun, July 12 2026  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Для чего нужна библиотека thinger.io в проектах ESP-IDF? Печать
Добавил(а) microsin   

Библиотека thinger.io для ESP-IDF предназначена для подключения устройств на базе ESP32 к облачной IoT-платформе Thinger.io, предоставляя нативный и эффективный способ интеграции различных приложений.

Главная задача библиотеки — обеспечить прямую, нативную поддержку Thinger.io в проектах, использующих официальный фреймворк ESP-IDF, в отличие от подхода с использованием Arduino Core, который требует дополнительной прослойки.

Современная библиотека IOTMP-ESPIDF построена на протоколе IOTMP (бинарный протокол Thinger.io) и предоставляет значительно более тесную интеграцию, чем устаревший метод с Arduino-библиотекой.

[Ключевые возможности]

Библиотека предоставляет богатый функционал для работы с облачной платформой:

● Безопасное соединение: использует TLS-шифрование через esp_tls для защиты данных.
● Потокобезопасное API: методы для работы с сервером (свойства, хранилища данных, endpoints) можно вызывать из любой задачи FreeRTOS.
● Автоматическое переподключение: реализована логика повторного подключения с экспоненциальной задержкой.
● Гибкая настройка: полная интеграция с системой конфигурации ESP-IDF (idf.py menuconfig) для настройки размера стека, приоритета задачи, интервалов keep-alive и других параметров.
● Ресурсы и стриминг: позволяет определять ресурсы устройства (например, `temperature`, `relay`) и передавать их данные в облако с настраиваемыми интервалами.

[Как это работает]

Вот пример быстрого старта с использованием библиотеки IOTMP-ESPIDF:

1. Подключение компонентов

В ваш проект необходимо добавить два компонента: iotmp-espidf и iotmp-embedded. Это можно сделать, указав пути к ним в корневом CMakeLists.txt:

cmake_minimum_required(VERSION 3.16)

set(EXTRA_COMPONENT_DIRS
"/path/to/iotmp-espidf"
"/path/to/iotmp-embedded" )

include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(my_thinger_project)

2. Код устройства

В основном файле main.cpp после подключения к Wi-Fi инициализируется клиент Thinger.io:

#include < thinger/iotmp/client.hpp>

// ... после подключения к Wi-Fi ...

static thinger::iotmp::client thing; thing.set_credentials("username", "device_id", "device_credential"); thing.set_host("iot.thinger.io");

// Определение ресурсов thing["temperature"] = [](thinger::iotmp::output& out) {
out["celsius"] = 23.5f; // Здесь должен быть код чтения с датчика };
thing["relay"] = [](thinger::iotmp::input& in) {
bool state = in["on"].get<bool>();
gpio_set_level(RELAY_GPIO, state); };

// Запуск клиента (создает отдельную задачу FreeRTOS) thing.start();

[Сравнение с Arduino-подходом]

Стоит различать два способа работы с Thinger.io на ESP-IDF:

Характеристика IOTMP-ESPIDF (native) Arduino-Library + Arduino Core
Тип интеграции Прямая, нативная библиотека для ESP-IDF. Косвенная, через компонент arduino-esp32.
Используемый протокол Собственный бинарный протокол IOTMP. Стандартный протокол Thinger.io для Arduino.
Требования Только ESP-IDF v5.x/v6.x и компоненты IOTMP. ESP-IDF (версия совместимая с Arduino Core) и сам Arduino Core.
Производительность Оптимизирована для работы в среде FreeRTOS, потокобезопасна. Зависит от прослойки Arduino, выполняется в задаче Arduino.
Рекомендация Рекомендуемый способ для новых проектов на ESP-IDF. Устаревший метод, в основном для обратной совместимости.

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

[Ссылки]

1. How to connect an ESP32 to Thinger.io using ESP-IDF site:thinger.io.

 

Добавить комментарий


Защитный код
Обновить

Top of Page