Цель этого урока - объяснить, как кодировать сообщение JSON (Encoding JSON messages) при помощи ESP8266, используя библиотеку ArduinoJson. Предполагаем, что библиотеки ESP8266 для Arduino IDE были ранее установлены. Вы можете узнать, как это сделать, здесь.
Для того чтобы посмотреть предыдущие уроки о декодировании сообщений JSON, посмотрите раздел «Похожие уроки» внизу статьи.
Подключение библиотеки ArduinoJson.
Прежде всего, подключим библиотеку ArduinoJson, реализующую функцию синтаксического анализа. Которую можно установить с помощью диспетчера библиотек Arduino IDE.
#include "ArduinoJson.h"
В целях отладки запускаем последовательное соединение в «функции-настройки» setup().
Serial.begin(115200);
Serial.println(); //Перенос на новую строку
Кодирование сообщений JSON.
Как и в декодировании, сообщение JSON, также объявим объект класса StaticJsonDocument для кодирования. Нам нужно указать размер, достаточный для структуры, которую собираемся создать. В данном случае указываем 300 байт.
StaticJsonDocument<300> JSONencoder;
В этом уроке создадим сообщение JSON, которое будет соответствовать структуре, которую мы использовали в предыдущем уроке, она содержит тип датчика и массив значений, имитирующих измерения этого датчика. Структура, которую мы хотим создать, показана ниже.
{
"SensorType" : "Temperature",
"Value" : [20,21,23]
}
Чтобы создать простую пару «имя : значение» в структуре JSON, используем оператор индекса или, другими словами, мы используем квадратные скобки.
JSONencoder["sensorType"] = "Temperature";
Для создания массивов, вызываем createNestedArray метод.
JsonArray values = JSONencoder.createNestedArray("values");
Затем используем надстройку, метод JsonArray для добавления значения в массив.
values.add(20);
values.add(21);
values.add(23);
Наконец, выводим результат в монитор порта, используя serializeJson метод. Также можем напрямую передать последовательное соединение этому методу, чтобы контент печатался напрямую.
serializeJson(JSONencoder, Serial);
Полный код кодирования сообщения JSON приведен ниже.
void loop() {
Serial.println("—————");
StaticJsonDocument<300> JSONencoder;
JSONencoder["sensorType"] = "Temperature";
JsonArray values = JSONencoder.createNestedArray("values");
values.add(20);
values.add(21);
values.add(23);
serializeJson(JSONencoder, Serial);
Serial.println();
delay(5000);
}
После загрузим кода в плату ESP8266 и откроем монитор порта. Увидим следующий результат.
Как видим, буквально несколько строк кода помогают кодировать нужные данные в формат JSON (Encoding JSON messages).
Понравился ESP8266 урок. Кодирование сообщений JSON? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
|
Код кодирования сообщения JSON.ino | 0 Kb | 590 |
Скачать
Вы можете скачать файл.
|
Комментарии