J’ai désormais des données qui transitent entre un serveur Python et un protocône. 🎉.
J’ai galéré avec le JSon, mais au final ça fonctionne et ça communique comme il faut. Le truc embêtant était au niveau du payload : si tu gères mal le nombre de caractères, le code côté ESP32 casse. Un truc particulièrement vicieux, c’est que le JSon côté Python ajoute des espaces par défaut, et fatalement, si l’ESP32 s’attend à peu de caractères, s’il y a plein d’espaces partout, il panique. Pour changer cela, il « suffit » de separators=(',', ':')
, et ça fonctionne.
Aussi, au lieu d’utiliser le Arduino_Json de base, j’ai utilisé le top notch autre truc https://arduinojson.org/. La gestion des erreurs par contre est funky, mais leur assistant est incroyable. J’ai eu pas mal de LoadProhibited, et il faut que j’explore comment réduire la mémoire, aussi.
Le serveur Python comme indiqué dans un article précédent c’est bêtement ça mais un peu modifié. Dans l’idée, je démarre avec un dictionnaire vide, et dès qu’un protocône envoie des data, on créé une nouvelle entrée à gérer. C’est vraiment basique, mais c’est pratique pour faire des tests. Par la suite, je pense je vais m’inspirer de Salt, et faire en sorte que l’on puisse accepter ou non des clés, ou quelque chose du genre.
Niveau gestion des ressources, j’ai appris beaucoup de trucs, notamment que 1) String
en Arduino, c’est le mal 2) il faut faire attention à la taille de ses array (toujours utiliser strncpy
au lieu de strcpy
etc.)(pourtant je l’ai appris en cours ça).
En passant, pour les noms de base, je me suis amusé à générer une liste alphabétique, et pour les code de capture, c’est du hexword.
La suite
Tout ce qui se trouve dans le log #2, sauf l’échange de données ✨.
- Pour la partie alimentation, j’attends mes composants.
- Pour la partie structure, il faut que je documente.
- Pour la partie webapp, c’est la grosse next step je pense.
- Pour la partie autres protocônes, j’attends mes composants.
- Pour la partie rendre propre, la documentation est faite au fur et à mesure, et le design ça sera fait par une amie.
Article précédent. Article suivant.
1 Comment
1 Pingback