Go Down

Topic: como convertir un objeto json, a un char[], para enviarlo a traves de mqtt?  (Read 819 times) previous topic - next topic

wanderjose

Hola, tengo un inconveniente en mi proyecto, no tengo mucho conocimiento sobre el tema, necesito extraer lecturas de un sensor y luego insertarlas en un json para enviarlo a través de mqtt, estoy usando un LDR por ahora, Pero la idea es ejecutar el Código para cualquier tipo de sensor.

El problema surge porque la biblioteca pubsubclient no me permite enviar objetos json, tengo que convertirlo en char[],  ¿alguien sabe cómo puedo resolver este problema?


Code:


#include <UIPEthernet.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>

int tiempo = 500;
int i =0;
int foto = 1;
int medida = 0;
int luzled = 0;
// Update these with values suitable for your network.
byte server[] = { 192, 168, 1, 102 };
boolean blink = false;
char json[100];
EthernetClient ethClient;
PubSubClient client(server, 1883, ethClient);
DynamicJsonBuffer jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
void setup() {
Serial.begin(115200);
byte mac[] = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 180};

Serial.println("iniciando conexion");
Ethernet.begin(mac, ip);

if (client.connect("arduinoClient")) {
  client.publish("wander/ejemplo","ready");
  client.subscribe("wander/ejemplo");
}
Serial.println("conexion establecida");

pinMode(6, OUTPUT);
pinMode(3, OUTPUT);

}

void loop()
{
client.loop();


 medida = analogRead(foto);
 luzled = 255 - (medida/4);
Serial.println(luzled);
for(i=0 ; i<2 ; i++)
{
  analogWrite(6, luzled);
  analogWrite(3, luzled);
  delay(tiempo);}
 
root["Dispositivo"] = "LDR";
root["Luz"] = luzled;

root.printTo(json);

  client.publish("wander/ejemplo",json);

 delay(3000);
}

cuando cargo el codigo, a la salida solo recibo:

" {}
{}
{}
{}... "



Además, no puedo enviarlo a través de mqtt

estoy utilizando Arduino UNO y Ethercard ..


El montaje está bien hecho, a la salida serial puedo apreciar los valores de la LDR, y puedo introducirlos en el json y visualizar los contenidos, pero al momento de imprimirlo en la variable char, "char json [ 100]; En la salida sólo recibo "{}".


Alguien podría ayudarme Gracias.!


Go Up