конвертация int в char для передачи по MQTT

Тема в разделе "Arduino & Shields", создана пользователем Евгений_88, 14 фев 2019.

  1. Добрый день.
    Ребят, нужна Ваша помощь:
    Код (Text):
    ..
    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 я вообще молчу...
     
  2. Это не относится к тому обрывку кода, что вы привели.
     
  3. проверил, да, действительно. Я просто для наглядности накидал сюда структуру кода, которую пытаюсь использовать, а ошибку взял из своего проекта (там много проб было).
    Можете показать, как должен код выглядеть на примере того, что я выложил, чтобы понять, на примере?
    А то сейчас доходит до абсурда, я проверяю условие и если на пине High, то выполняю отправить "1", если Low, то "0", вместо того чтобы просто переменную написать. Ясное дело о передаче динамических данных вообще и говорить не приходится.
     
  4. Код (C++):

    char buf[5]; // выделяем память для строки - 4 символа и терминатор.
    itoa(a, buf, 10); // записываем в эту память текстовое представление переменной а в десятичной системе
    client.publish("/test", buf); //отправляем
     
     
    Последнее редактирование: 16 фев 2019
    ZAZ-965 и Евгений_88 нравится это.
  5. Спасибо большое! буду пробовать.
    я правильно понимаю, что для переменной мне лучше char buf[] (без цифры) ставить, чтобы программа сама длинну определила?
     
  6. parovoZZ

    parovoZZ Гуру

    Почему две «н»?
     
  7. Т.к. с телефона, здесь всё возможно.
     
  8. Программа сама определить этого не может
     
  9. как раз только что это проверил (в ошибку ушло). Ещё раз спасибо, всё нормально работает и данные на сервер шлёт