// Prepare Request header send to thingboard cloud.
memset(sbuffer, 0, sizeof(sbuffer));
// ACCESS_TOKEN = hp5sVXZjfgcl706hlHo j(STM32_DEVICE_LIN1) / Ye2Lx6bkBYfc6nnp950g j(STM32_DEVICE_LIN)
sprintf((char*)sbuffer, "POST /api/v1/localservertbhw16lab/telemetry HTTP/1.1\r\nHost: 2001:db8:abcd:a:d54c:4b07:8738:9bfc\r\nContent-Type: application/json\r\nContent-Length: %d\r\n\r\n", payload_str_len);
//sprintf((char*)sbuffer, "POST /api/v1/localservertbhw16lab/telemetry HTTP/1.1\r\nHost: %s\r\nContent-Type: application/json\r\nContent-Length: %d\r\n\r\n", server, payload_str_len);
str_len = strlen((char*)sbuffer);
printf("str len = %d, ", str_len);
DigitalIn pir_out(PA_9, PullUp); //PIR_OUTPUT = PA_9
PIR = pir_out;
printf("HTS221: [temp] %7s C, [hum] %s%%\r\n", print_double(buffer1, temp_val), print_double(buffer2, hum_val));
printf("PIR: [Human_Status] %s\r\n", PIR ? "Presence":"Absence");
// Prepare Request payload data and calculate it's length to send to thingboard cloud.
memset(sbuffer1, 0, sizeof(sbuffer1));
sprintf((char*)sbuffer1, "{\"Temperature\": %s, \"Humidity\": %s, \"Human-Status\": %s}", print_double(buffer1, temp_val) , print_double(buffer2, hum_val) ,print_double(buffer3, PIR) );
payload_str_len = strlen((char*)sbuffer1);
printf("payload data len = %d : ", payload_str_len);
// Prepare Request header send to thingboard cloud.
memset(sbuffer, 0, sizeof(sbuffer));
// ACCESS_TOKEN = hp5sVXZjfgcl706hlHo j(STM32_DEVICE_LIN1) / Ye2Lx6bkBYfc6nnp950g j(STM32_DEVICE_LIN)
sprintf((char*)sbuffer, "POST /api/v1/localservertbhw16lab/telemetry HTTP/1.1\r\nHost: 2001:db8:abcd:a:d54c:4b07:8738:9bfc\r\nContent-Type: application/json\r\nContent-Length: %d\r\n\r\n", payload_str_len);
//sprintf((char*)sbuffer, "POST /api/v1/localservertbhw16lab/telemetry HTTP/1.1\r\nHost: %s\r\nContent-Type: application/json\r\nContent-Length: %d\r\n\r\n", server, payload_str_len);
str_len = strlen((char*)sbuffer);
printf("str len = %d, ", str_len);
// Send Request header to thingboard cloud.
scount = my_socket.send(sbuffer, str_len);
printf("sent data = %d : ", scount);
for(uint8_t cnt=0; cnt<scount; cnt++)
{
printf("%c", sbuffer[cnt]);
}
// Send Request payload data to thingboard cloud.
uint8_t scount1 = my_socket.send(sbuffer1, payload_str_len);
printf("sent data = %d \n", scount1);
for(uint8_t cnt=0; cnt<scount1; cnt++)
{
printf("%c ", sbuffer1[cnt]);
}
// Recieve a simple http response and print out the response line
rcount = my_socket.recv(rbuffer, sizeof rbuffer);
printf("recv data = %d : ", rcount);
for(int cnt=0; cnt<rcount; cnt++)
{
printf("%c", rbuffer[cnt]);
}
//usleep(20);
//sleep();
wait(10);
}
Ok, how have you created my_socket ? that is the bit that will use the IPV6 address and open a connection to the remote server if i am not mistaken.
once you have that then im not sure you need to pass the address in the data stream like you have...
"POST /api/v1/localservertbhw16lab/telemetry HTTP/1.1\r\nHost: 2001:db8:abcd:a:d54c:4b07:8738:9bfc\r\nContent-Type: application/json\r\nContent-Length: %d\r\n\r\n", payload_str_len);
unless there is a handler of some kind that builds the link based on this data then just passes the data over.
nsapi_error_t open_result = my_socket.open(network_if);
if (open_result != 0)
{
printf("Error! socket.open(net) returned: %d\n", open_result);
}
int errConnect = my_socket.connect(server, 8080); //"demo.thingsboard.io", 80
while(true)
{
if(errConnect != 0)
{
printf("Could not connect to socket : error = %d\r\n", errConnect);
wait(60);
errConnect = my_socket.connect(server, 8080);
// TODO Manage connection issues here !!!!
}
else
{
printf("Socket connected\r\n");
break;
}
hello i used postman for send telemetry data to device
postman http code 200ok but i dont see telemetry data on device
how to fixed it?