Utilizar char o String para enviar texto


#1

Estoy teniendo problemas para enviar textos a la plataforma thinger.io cada vez que intento enviar me aparecen estas llaves {}. Estoy tratando de enviar los días de la semana por ejemplo utilizando el widget text/value.

este es el codigo que estoy usando con un modulo rtc

#define DEBUG
#define DISABLE_TLS

#include <BridgeSSLClient.h>
#include <ThingerYun.h>

#define USERNAME “xxxx”
#define DEVICE_ID “xxxxx”
#define DEVICE_CREDENTIAL “xxx”
#include <Wire.h>
#include “RTClib.h”

RTC_DS3231 rtc;

char nombreDia[7][12] = {“Domingo”, “Lunes”, “Martes”, “Miercoles”, “Jueves”, “Viernes”, “Sabado”};
char nombreMes[12][12]= {“Enero”, “Febrero”, “Marzo”, “Abril”, “Mayo”, “Junio”, “Julio”,“Agosto”,“Septiembre”,“Octubre”,“Noviembre”,“Diciembre”};
int segundo,minuto,hora,dia,mes,diaDeLaSemana;
long anio; //variable año

ThingerYun thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);
DateTime HoraFecha;

void setup () {
Serial.begin(115200);
rtc.begin(); //Inicializamos el RTC
Bridge.begin();
thing[“millis”] >> outputValue(millis());
thing[“horas”] >> [](pson& out){
const char* nombreDia[7][12] = {“Domingo”, “Lunes”, “Martes”, “Miercoles”, “Jueves”, “Viernes”, “Sabado”};

delay(2000);
};

}

void loop () {
HoraFecha = rtc.now(); //obtenemos la hora y fecha actual

segundo=HoraFecha.second();
minuto=HoraFecha.minute();
hora=HoraFecha.hour();
dia=HoraFecha.day();
mes=HoraFecha.month();
anio=HoraFecha.year();
diaDeLaSemana=HoraFecha.dayOfTheWeek();


//Enviamos por el puerto serie la hora y fecha.
Serial.print(hora);
Serial.print(":");
Serial.print(minuto);
Serial.print(":");
Serial.print(segundo);
Serial.print(" , ");
Serial.print(nombreDia[diaDeLaSemana]);
Serial.print(" ");
Serial.print(dia);
Serial.print(" de ");
Serial.print(nombreMes[mes-1]);
Serial.print(" del ");
Serial.print(anio);
Serial.println();

delay(1000);
thing.handle();
}


#2

Hola @Euribiel_Roberto_Val

Ahora mismo no tengo una placa a mano para testearlo pero¿has probado a mandar el texto en un String?
Eso si, te aconsejo que elimines todos los delay() que puedas, utiliza en su lugar estructuras no bloqueantes como en el ejemplo de arduino “blink without delay” para evitar que el router o el server te cierren la comunicación durante el bloqueo


#3

Hola @jtrinc26 , si intente con el String me funcionó declarando cada día por separado y aplicando un IF ya que por ejemplo el día sábado en el código corresponde al numero 6 y de esa manera fui declarando, sin embargo me faltaría aplicar tu sugerencia con los delay y ver si logro que me envié los días sin tener que declarar uno a uno. Muchas gracias por tu ayuda cualquier otra sugerencia que tengas me comentas.