Le but est d'activer un moteur pas à pas lié à cet ESP32 grâce à au téléphone, à distance. J'ai réussi à adapter le code pour faire une boucle qui s'active toutes les 2 secs pour checker sur mon API si une demande d'ouverture a été demandée ou non. Mais cette technique est très coûteuse en data (même si le serveur ne renvoie pas grands choses) si je laisse la carte connectée à longueur de journée.
Sur mon API, j'ai installé Mercure (qui fonctionne un peu comme un socket mais amélioré) et j'aimerais que mon arduino soit abonné à Mercure (infos : https://mercure.rocks/).
Est-ce que vous avez déjà tenté d'interconnecter votre ESP/Arduino à cette technologie ? Si oui, pouvez-vous m'aider/m'aiguiller car je ne vois pas comment faire ? (Je vais continuer mes recherches en parallèle ). Si non, avez-vous des idées ?
Sur une carte en téléphonie cellulaire vous n’êtes (généralement) pas joignable de manière directe depuis internet, vous êtes dans le réseau IP de l’opérateur et votre IP peut changer et l’opérateur bloque les appels directs à une IP/port.
Il n’est donc pas possible d’être joint en 4G sans avoir initié vous même depuis la carte une connexion vers le serveur. Il faudra ensuite un keep alive pour que ce "tunnel" reste actif et que votre socket ne soit pas fermée d’autorité par un des intervenants sur la route. Vous consommerez donc des data.
Avez vous pensé aux sms ? Votre carte écoute en permanence, ça coûte rien en data. Quand le serveur a quelque chose à dire il envoie un sms a la carte client qui alors effectue la connexion IP au serveur pour aller récupérer les infos (ou vous les mettez dans le sms)
(Il existe des passerelles pour envoyer des SMS depuis un serveur)
Ton serveur Mercure, semble accepter des requêtes HTTP pour passer en Websocket, il faut utiliser cette solution.
Les "data" consommé sur ton forfait seront alors uniquement ceux pour le "keep alive" de la websocket.
Si il y a des trucs qui coupent la connexion, il faudra détecter et rétablir la connexion systématiquement.