• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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
в инете полно примеров функций преобразования.
Напишите сами на дурине или возьмите из инета на СИ и в ставьте.
 
Сверху Снизу