Увеличьте echoMAX_DATA_LENGTH
до размера, достаточного для всего вашего сообщения JSON.
Статическая часть JSON в вашем коде (без значений, заполненных snprintf()
) имеет длину 34 символа, так что это никак не может сработать, если echoMAX_DATA_LENGTH
установлен в 20 - он всегда будет генерировать фрагмент JSON вместо всего объекта JSON.
Помните, что длина, которую snprintf () использует, включает в себя байт для завершающего символа строки C '\ 0', поэтому вам нужно, чтобы echoMAX_DATA_LENGTH
был на единицу больше, чем максимальный общий JSON длина сообщения.
Когда вы увеличиваете echoMAX_DATA_LENGTH
, попробуйте добавить отладочное сообщение после snprintf()
, чтобы вы могли видеть JSON, который вы генерируете. Если ваш код уже настроен на использование Serial
, добавьте:
Serial.println(cDataBuffer);
после snprintf()
, чтобы вы могли подтвердить, что вы сгенерировали JSON правильно.