Senhores, boa noite.
Eu tenho um kit YRDK RX63N e estou querendo fazer um projeto que envia dados (medições de temperatura na verdade) para o ThingsSpeak.
Pra isso, resolvi adotar a seguinte estratégia: tomei como base o demo Ethernet_uIP, retirei a chamada para iniciar um servidor http (com o intuito de deixar somente a placa em rede sem uma função específica). Além disso, aproveitei a chamada de 10 em 10 segundos do uip_arp_timer para virar um flag:
-------------------------------------------------
/* Call the ARP timer function every 10 seconds. */
if (timer_expired(&arp_timer))
{
timer_reset(&arp_timer);
uip_arp_timer();
Cont30s++;
if (Cont30s == 3)
{
EnviaTempThingSpeak = 1;
Cont30s = 0;
}
}
-------------------------------------------------
E reescrevi a função user_app() para:
-------------------------------------------------
void user_app(void)
{
uip_ipaddr_t ipaddr;
char ComandoHTTP[]="GET /update?key=RLUWUDK9Q4ALHQZ4&field1="; //começo da requisição HTTP para o ThingSpeak
char RequisicaoHTTP[50];
if (EnviaTempThingSpeak)
{
EnviaTempThingSpeak = 0;
uip_ipaddr(&ipaddr, 184,106,153,149); //ip do thingspeak
uip_connect(&ipaddr, HTONS(80));
sprintf(RequisicaoHTTP, "%s%02d\r\n", ComandoHTTP, 55); //envia o dado fixo para o thingspeak
uip_send(RequisicaoHTTP, 44);
}
}
-------------------------------------------------
O problema é que de jeito nenhum há conexão! Eu fiz o mesmo teste tentando me conectar a um TCP Server no meu pc (ou seja, na mesma rede que o kit) e o efeito foi o mesmo).
Vocês poderiam por favor me ajudar nisto? Estou sem alternativas.
Atenciosamente,
Pedro Bertoleti