No post de hoje iremos falar sobre interoperabilidade de sistemas. O termo pode parecer estranho, mas grande parte dos serviços da Web funciona neste formato, onde algum sistema envia informações para outro. E aqui vem a pergunta, como enviar informações quando os sistemas são desenvolvidos em linguagens diferentes ??
Tempos atrás tínhamos os arquivos XML que eram enviados de um sistema para outro. Exemplo disso é a maneira como os dados de Nota Fiscal Eletrônica ainda são enviados para a Receita Federal.
![]() | ||||||||||
Exemplo de NFe enviada a Receita Federal |
Outro maneira de enviar informações entre sistemas é o formato Json, bastante difundido na maioria das linguagens. A plataforma Arduino não poderia ficar de fora e também tem a biblioteca para realizar o envio e recebimento deste tipo de dados.
Dentre todas as bibliotecas que testei essa é a melhor Arduinojson. Abra o gerenciador de bibliotecas da IDE Arduino e faça a instalação da última versão. Neste momento a 6.15.1
![]() | |||
Gerenciador de bibliotecas Arduino |
Serializando dados - Criando o arquivo Json
#include <ArduinoJson.h>
void setup() {
Serial.begin(9600);
}
void loop() {
DynamicJsonDocument doc(200);
doc["sensor"] = "gps";
doc["time"] = 1351824120;
JsonArray data = doc.createNestedArray("data");
data.add(48.75608);
data.add(2.302038);
serializeJsonPretty(doc, Serial); //imprime na serial em um formato mais legível
serializeJson(doc, Serial); //imprime no formato contínuo
}
DeSerializando dados - Tratando um arquivo Json recebido
#include <ArduinoJson.h>
void setup() {
Serial.begin(9600);
}
void loop() {
DynamicJsonDocument doc(200);
const char* json = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.75608,2.302038]}";
deserializeJson(doc, json);
const char* sensor = doc["sensor"];
long time = doc["time"];
float data_0 = doc["data"][0];
float data_1 = doc["data"][1];
Serial.println(sensor);
Serial.println(time);
Serial.println(data_0);
Serial.println(data_1);
}
Nenhum comentário:
Postar um comentário