Service Météo par Sms

Auteur :

Auteur(s) du travail : Léopold(Moi)

Date : Printemps 2026

Technologie(s) : Twilio, Sms, Node, Serveur, Base64, Json, OpenWeatherApi

Interoperabilité : Téléphone Que Android pour l'instant

Ce projet vise à rendre possible pour un utilisateur ne disposant pas de connexion réseau Wifi, LTE, 5G, 4G, 3G ou peu importe d’accéder à la météo actuelle, des 32 prochaines heures et des sept prochains jours. Ça peut aussi être utile pour quelqu’un qui serait en région éloignée ou il ne capte pas très bien, mais juste assez pour envoyer et recevoir un SMS. Pour rendre le processus plus simple, j’ai ajouté sur mon téléphone Android une macro qui permet de prendre mes coordonnées GPS actuelles et de les envoyer au numéro de téléphone relié à mon serveur. Lorsque le serveur reçoit une alerte qui l’avertit qu’un SMS est arrivé, il parcourt mon message pour attraper les coordonnées. Lorsqu’il a les coordonnées il va chercher les prévisions météorologiques pour la position GPS qu’il a reçue. Ensuite il compresse les données nécessaires pour que le message puisse rentrer dans la limite de 160 caractères des SMS pour limiter les coûts liés à l’envoi des SMS et me l’envoie. Par la suite, je peux copier le message et le coller dans mon application. L’application décompresse le message et affiche les données que nous pouvons voir dans la capture d’écran ci-haut.

 

 

Github SmsWeather

Le projet utilise Twilio pour la communication SMS dans les deux sens (recevoir et envoyer). Lorsque j’envoie un message au numéro Twilio, il notifie mon serveur via un webhook sur une URL. L’URL envoie ensuite la requête sur le port 3000 où un service node est déjà lancé et prêt à recevoir le SMS que le client a envoyé et son contenu. Lorsqu’il a son contenu, il peut ensuite parser celui-ci pour avoir la position GPS du client. Lorsqu’il a la position GPS, il passe par l’API OneCall 3.0 d’OpenWeather pour aller chercher les prévisions météorologiques en JSON. Il garde seulement les informations dont il a besoin pour garder le message SMS le plus court possible et le compresse en base64. Il envoie par la suite tout cela par SMS. Lorsque sur mon téléphone je reçois ce même message et qu’une macro sur mon téléphone copie le message pour plus d’efficacité et de rapidité puisque mon app recherche dans le presse-papier pour trouver la ligne de base64. Il la décompresse ensuite pour récolter le JSON de base et l’affiche dans l’application.

 

Automatisation

Le service node est entièrement automatisé pour se lancer au redémarrage du serveur et pour tenter de le redémarrer si le service crash. Pareil avec la copie du message du côté client la copie du message reçu est automatisée. L’envoi côté client est aussi automatisé avec une macro qui, au simple clic, envoie les coordonnées GPS.

 

Toujours au niveau de la communication voici mon projet de documentation pour lancer de A-Z un serveur mail postfix/dovecot : https://portefolio.leopold.monster/showoff/documentation-de-la-creation-dun-serveur-mail-postfix-dovecot/