Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "Прочее", создана пользователем Zhenya88, 14 фев 2019.

Метки:
  1. Zhenya88

    Zhenya88 Новичок

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

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.050
    Симпатии:
    175
  3. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.148
    Симпатии:
    226
  4. Zhenya88

    Zhenya88 Новичок

    Сообщения:
    30
    Симпатии:
    0
    прочитал, мозг кипит...а способов проще (библиотек в два клика или т.п.) не существует?
    а то вот эти слова "Лучше преобразовать до int16_t и через sprintf()." для меня непонятны.
     
  5. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.148
    Симпатии:
    226
    @Zhenya88 читаем описание sprintf().
    Определяем сколько надо знаков после запятой. Умножаем на 10 столько раз, сколько надо знаков. Берём целое от результата. Отправляем куда надо преобразовав в char через sprintf. Потом делим и получаем обратно float.
     
  6. nikolz

    nikolz Гуру

    Сообщения:
    4.491
    Симпатии:
    443
    в инете полно примеров функций преобразования.
    Напишите сами на дурине или возьмите из инета на СИ и в ставьте.
     

Поделиться этой страницей