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

Нужна помощь передача кода на ИК светодиод по MQTT

sega6549

New member
Добрый день, вторые сутки мучаюсь и не могу вкурить как правильно преобразовать данные полученные от брокера в формат понимаемый функцией irsend, имею код
Код:
void callback(char* topic, byte* payload, unsigned int length)
{
  Serial.println();
  Serial.print(topic);   // выводим в сериал порт название топика
  Serial.print(" => ");
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
  } // выводим в сериал порт значение полученных данных

  String strTopic = String(topic); //получаем название топика
 
  if (strTopic == "ESPirsend/irr") //проверяем из нужного ли топика пришли данные
  {
    payload[length] = 0; //чистим от мусора, длинна строки
    String strPayload = String((char*)payload);  //считываем значение топика
    unsigned long val = strPayload.toInt(); //конвертируем
    Serial.println(strPayload); //выводит то что присылали
    Serial.println(val);   //выводит 0
    irsend.sendNEC(val, 32); //собственно тоже 0 на выходе
   
  }
}
помогите допилить, если надо то могу полный код выложить, но с ним проблем нет, только с функцией callback
 

Izzm

New member
А что вы отправляешь и в каком формате?
Пробовали переводить код из шестнадцатеричного формата в десятичный перед отправкой?
 

sega6549

New member
А что вы отправляешь и в каком формате?
Пробовали переводить код из шестнадцатеричного формата в десятичный перед отправкой?
пытаюсь отправить команды типа 0x20DFFF00, сканировал примером из ардуино, если прямо прописать irsend.sendNEC(0x20DFFF00, 32); то все отрабатывает а вот по mqtt не могу передать этот код
 

tretyakov_sa

Moderator
Команда форума
пытаюсь отправить команды типа 0x20DFFF00, сканировал примером из ардуино, если прямо прописать irsend.sendNEC(0x20DFFF00, 32); то все отрабатывает а вот по mqtt не могу передать этот код
Используйте код в десятичной системе и преобразования будут не нужны.
 
Сверху Снизу