Je suis hésitant à demander ceci ici; J'ai fait an issue on GitHub, et j'ai vraiment besoin résolu. Fondamentalement, j'envoie des messages à dweetPro toutes les 15 secondes. Il fonctionnera parfaitement pendant des heures, puis il s'arrêtera au hasard, en envoyant un succès pour 20 réponses ratées.ESP8266 demandes de post échec
J'ai essayé tout ce que je peux penser, je suis assez sûr que mon code est correct, je ne sais pas si c'est quelque chose avec la bibliothèque ou quoi. Je peux envoyer les messages de Python sur mon PC indéfiniment et n'échoue jamais, donc c'est définitivement du côté de l'ESP. J'utilise une alimentation propre de 2A, donc ce n'est pas un problème d'alimentation.
Voici le lien d'un couple de journaux Wireshark provenant des postes d'envoi ESP. Les deux valide et invalide sont sur eux.
Certains plus d'informations peuvent être trouvées sur la question sur GitHub. Voici le code que je utilise, avec des lignes de débogage utilisé:
void send_to_server(String* time_sent, float magnitude, String status,
int earthquake_occured, float* data, int data_size)
{
int content_length;
String content = make_json_content(&content_length, magnitude,
status, earthquake_occured, data, data_size);
int s = -100;
int c = 0;
while (s<0 && c<10)
{
HTTPClient http;
http.setTimeout(1000);
bool suc = http.begin("http://dweetpro.io/v2/dweets");
Serial.print("Success?: "); Serial.println(suc);
http.addHeader("Content-Type", "application/json");
http.addHeader("Accept", "application/json");
http.addHeader("X-DWEET-AUTH", "xxx");
int timerr = millis();
Serial.println("Posting");
s = http.POST(content);
Serial.print("Posted: "); Serial.println(millis() - timerr);
Serial.print("Post len: "); Serial.println(s);
http.writeToStream(&Serial);
Serial.println("");
http.end();
++c;
}
Serial.println("Ended");
}
En cas de succès, s imprime 200, lors d'un échec, il imprime -1.
Sur Wireshark, tous les messages réussis afficheront des données, mais pour les posts infructueux, il affichera des données pour les premiers échecs, puis il s'arrêtera. C'est comme si elle se surchargeait ou quelque chose.
Encore une fois, désolé pour ce groupe de questions, mais je ne sais pas quoi faire d'autre. J'ai passé tellement de temps là-dessus sans fin en vue. Merci beaucoup à vous tous.
EDIT: Une autre information que j'aurais dû ajouter est que si elle n'envoie pas de messages valides, je peux réinitialiser l'ESP et cela ne fonctionnera toujours pas. C'est vraiment bizarre, c'est pourquoi je suis tellement perdu. S'il est sur un rouleau en envoyant des messages valides, je peux réinitialiser/débrancher et cela fonctionnera encore. Si ça ne marche pas et que je fais la même chose, ça ne marchera pas encore.
Y a-t-il une chance que ce soit juste une sorte d'interférence à mon domicile?
Plutôt que des liens externes vers un casier de fichiers Google, il peut être préférable d'afficher ces journaux Wireshark dans la question. Les informations essentielles peuvent-elles être affichées dans les captures d'écran? Nous avons tendance à décourager les casiers de fichiers, car leurs liens sont fragiles et s'ils meurent dans le futur, alors la question peut ne pas avoir beaucoup de sens sans elle. – halfer