Я работаю над проектом, в котором мне нужно отправить некоторые данные датчика в мой веб-сервис по протоколу tcp. Я использовал StaticJsonDocument для хранения этих данных датчика. Проблема в том, что с кодом ниже я не могу быть в состоянии опубликовать какие-либо данные. В настоящее время я использую ENC28J60 для подключения ethe rnet.
void sendToApi (StaticJsonDocument<600> root) {
byte sd = stash.create();
String json_string;
serializeJson(root, json_string);
stash.print(json_string);
stash.save();
int stash_size = stash.size();
Serial.println(stash_size);
Stash::prepare(PSTR("POST /api/module HTTP/1.1" "\r\n"
"Host: 192.168.1.5:8181" "\r\n"
"Content-Type: application/json" "\r\n"
"Content-Length: $D" "\r\n"
"Authorization: Basic bWV0Ok1ldEF0czE4Kio=" "\r\n"
"\r\n"
"$H"),
stash_size, sd);
session = ether.tcpSend();
//Serial.println(session);
delay(2000);
}
Нет проблем с контроллером ethe rnet (я могу пропинговать Google). Также нет проблем со стороны сервера. HTTP-запрос почтальона приведен ниже.
POST /api/module/ HTTP/1.1
Host: 192.168.1.5:8181
Content-Type: application/json
Authorization: Basic bWV0Ok1ldEF0czE4Kio=
Cache-Control: no-cache
Postman-Token: e160d927-7e05-414f-e0d8-102f3d039ce3
{"id":"0001","module_no":1,"m1":22.5625,"m2":22.5625,"m3":22.5625,"m4":22.5625,"m5":22.5625,"m6":22.5625,"m7":22.5625,"m8":22.5625,"m9":22.5625,"m10":22.5625,"m11":22.5625,"m12":22.5625,"m13":22.5625,"m14":22.5625,"m15":22.5625,"m16":22.5625,"t1":22.5625,"t2":22.5625,"t3":22.5625,"t4":22.5625,"t5":22.5625,"t6":22.5625,"t7":22.5625,"t8":22.5625,"t9":22.5625,"t10":22.5625,"t11":22.5625,"t12":22.5625,"t13":22.5625,"t14":22.5625,"t15":22.5625,"t16":22.5625,"af":22.5625,"uf":22.5625,"sg":22.5625,"sc":22.5625,"a1":946,"a2":946,"a3":946,"a4":946,"a5":946,"a6":32,"a7":32,"a8":32,"a9":946,"a10":946,"a11":946,"a12":946,"a13":32,"a14":32,"a15":32,"a16":32}
Так чего мне здесь не хватает?