#include <ArduinoJson.h>
/*{"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}*/
DynamicJsonDocument INPUT_JSON ( 1024 ), // Objeto que almacena el mensaje de la consola serial.
OUTPUT_JSON (1024); // Objeto que traspasa la información del JSON de recepción hacia el de salida.
void setup ( void ) {
Serial.begin ( 115200 );
Serial.println ( "Hello, ESP32!" );
}
void loop ( void ) {
if ( Serial.available ( ) ) { // Si llegaron bytes al buffer de recepción serial.
Serial.println("Ha llegado una trama: ");
deserializeJson ( INPUT_JSON, byte_x_byte ( ) ); // Almacenar como objeto el string que ha llegado por consola.
serializeJsonPretty( INPUT_JSON, Serial ); // Mostrar en consola para verificar que si llegó correctamente.
Serial.println ( );
/*Crear un nuevo JSON de salida con los datos del JSON de entrada*/
OUTPUT_JSON [ "sensor" ] = INPUT_JSON [ "sensor" ];
OUTPUT_JSON [ "time" ] = INPUT_JSON [ "time" ];
OUTPUT_JSON [ "data" ] [ 0 ] = INPUT_JSON [ "data" ] [ 0 ];
OUTPUT_JSON [ "data" ] [ 1 ] = INPUT_JSON [ "data" ] [ 1 ];
Serial.println ( "Nuevo objeto JSON: " );
serializeJsonPretty( OUTPUT_JSON, Serial );
}
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}
String byte_x_byte ( void ) {
String mensaje = "";
while ( Serial.available ( ) != 0 )
mensaje += ( char ) Serial.read ( ) ;
return mensaje;
}