• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь конвертация int в char для передачи по MQTT

Zhenya88

Member
Добрый день.
Ребят, нужна Ваша помощь:
Код:
..
int a
a = analogRead (pin);
if (b == HIGH ) 
{
       client.publish("/test", a);
  }
...
ошибка "converting to 'String' from initializer list would use explicit constructor 'String::String(int, unsigned char)'"
Подскажите, как снять показания с сенсора и отправить данные полученные в int через mqtt?
Я так понимаю, что надо конвертировать значения int в char?
Но в интернете я так и не нашёл, как это просто сделать, везде какие-то громоздкие костыли через кучи переменных, неужели нет какой-то библиотеки, способа, которая бы упростила это? Может у кого есть какой-то пример понятный или что-то иное? Конвертировать полученные из mqtt значения в int проблемы не составило, а вот наоборот...
Заранее, спасибо.
про передачу float я вообще молчу...
 

Zhenya88

Member
прочитал, мозг кипит...а способов проще (библиотек в два клика или т.п.) не существует?
а то вот эти слова "Лучше преобразовать до int16_t и через sprintf()." для меня непонятны.
 

Сергей_Ф

Moderator
Команда форума
@Zhenya88 читаем описание sprintf().
Определяем сколько надо знаков после запятой. Умножаем на 10 столько раз, сколько надо знаков. Берём целое от результата. Отправляем куда надо преобразовав в char через sprintf. Потом делим и получаем обратно float.
 

nikolz

Well-known member
в инете полно примеров функций преобразования.
Напишите сами на дурине или возьмите из инета на СИ и в ставьте.
 
Сверху Снизу