Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • A ArduinoJson
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 24
    • Issues 24
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Benoît Blanchon
  • ArduinoJson
  • Issues
  • #324
Closed
Open
Issue created Jul 20, 2016 by Administrator@rootContributor

root.printTo( buff, sizeof(buff)) introduces : at random times

Created by: jescarri

It also seems that the float conversion is not working. It changes the values as you can see the temperature reported is different from what is resulting in the conversion

Hardware: NodeMCU v1.0

Humidity at json conv 44.00
Temp at json conv 27.40
HIC at json conv 27.40
{"node_id":"S1","sensor_list":["DHT","BMP"],"satus":"ok","vcc":2770,"dht_failures":1,"temp":27.3:,"humidity":44.00,"hic":27.40,"pressure":1.00e3}

code:

char *build_json( boolean dht_read_ok, float t, float h, float hic, double pressure, int dht_failures){
  char buff[JBUFF];
  char p_buff[15];
  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& root = jsonBuffer.createObject();
  root["node_id"] = "S1";
  JsonArray& data = root.createNestedArray("sensor_list");
  data.add("DHT");
  #if defined (BMPPRESENT)
    data.add("BMP");
  #endif
  if ( dht_read_ok == true ){
    root["satus"] = "ok";
    root["vcc"] = ESP.getVcc();
    root["dht_failures"] = dht_failures;
    root["temp"] = t;
    root["humidity"] = h;
    Serial.print("Humidity at json conv ");
    Serial.println(h);
    Serial.print("Temp at json conv ");
    Serial.println(t);
    Serial.print("HIC at json conv ");
    Serial.println(hic);
    root["hic"] = hic;
    #if defined (BMPPRESENT)
       root["pressure"] = atof(deblank(dtostrf(pressure,11,3,p_buff)));
    #endif
    root.printTo(buff, sizeof(buff));
  }else{
    root["satus"] = "error";
    root["dht_failures"] = dht_failures;
    root.printTo( buff, sizeof(buff));
  }
  return buff;
}

Latest Arduino Json Library

Output:

.......
WiFi connected
IP address: 
192.168.1.39
18:FE:34:CF:7D:0F
SeaLevel Comp pressure 
1004.64
nan
nan
Failed to read from DHT sensor!
44.00
27.40
 Reconecting
Attempting MQTT connection...connected
Humidity at json conv 44.00
Temp at json conv 27.40
HIC at json conv 27.40
{"node_id":"S1","sensor_list":["DHT","BMP"],"satus":"ok","vcc":2770,"dht_failures":1,"temp":27.3:,"humidity":44.00,"hic":27.40,"pressure":1.00e3}
Entering deep sleep mode for 1 secs 

Notice the : at the humidity reading

a good json output:

...........
WiFi connected
IP address: 
192.168.1.39
18:FE:34:CF:7D:0F
SeaLevel Comp pressure 
1004.67
nan
nan
Failed to read from DHT sensor!
44.00
27.50
 Reconecting
Attempting MQTT connection...connected
Humidity at json conv 44.00
Temp at json conv 27.50
HIC at json conv 27.49
{"node_id":"S1","sensor_list":["DHT","BMP"],"satus":"ok","vcc":2770,"dht_failures":1,"temp":27.50,"humidity":44.00,"hic":27.49,"pressure":1.00e3}
Entering deep sleep mode for 1 secs 
Assignee
Assign to
Time tracking