No estoy seguro de si debería publicar esto aquí o en Stackoverflow, pero como esta audiencia probablemente tiene la mayor experiencia con Arduino, pensé que este sería el mejor lugar.
Acabo de comprar un protector Ethernet, y como primer proyecto con él, estoy tratando de publicar una lectura de temperatura TMP36 en Pachube. Mientras Pachube acepta múltiples formatos para sus datos, estoy tratando de publicar estas cosas en JSON, porque me gusta JSON. Sin embargo, estoy teniendo problemas para obtener mi valor de temperatura, que es un flotador, en la cadena JSON. Soy un desarrollador de Python / PHP, y relativamente nuevo en C, así que he buscado en Google pero todavía no he descubierto la forma correcta de hacerlo. Aquí está mi código:
float temperature = 85.4; // Or whatever
String jsonData = sprintf("{'version':'1.0.0', 'datastreams':[{'id':'%s', 'current_value':'%f'}]}\n", datastream1, temperature);
Sigo recibiendo el siguiente error del Arduino IDE (versión 1.0): "No se puede convertir 'String' en 'const char' para el argumento '2' en 'int sprintf (char, const char *, ...)' "
Descubrí que estoy llamando a sprintf () con el número incorrecto de argumentos / argumentos en el orden incorrecto, ya que no devuelve la cadena con formato. Sin embargo, ni siquiera estoy seguro de que sprintf () sea la mejor función a utilizar para lograr el objetivo de obtener el valor de punto flotante del sensor en una cadena. ¿Hay una mejor manera de hacer esto?