POCL : Hawaiiiii : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Catégorie 3 : partie logicielle)
(Catégorie 3 : partie logicielle)
Ligne 70 : Ligne 70 :
 
'''Récupération et format des données :'''
 
'''Récupération et format des données :'''
 
Notre maquette récupère les données auprès du serveur Rednode, sous un format standard dans le monde Web : '''JSON''' (JavaScript Object Notation). Il s'agit en fait d'un simple format texte, mais qui peut être interprété comme une structure plus ou moins complexe. Dans notre cas, ce que récupère le logiciel du Wemos D1 Mini, c'est ceci (nous avons juste ôté quelques sauts de ligne) :
 
Notre maquette récupère les données auprès du serveur Rednode, sous un format standard dans le monde Web : '''JSON''' (JavaScript Object Notation). Il s'agit en fait d'un simple format texte, mais qui peut être interprété comme une structure plus ou moins complexe. Dans notre cas, ce que récupère le logiciel du Wemos D1 Mini, c'est ceci (nous avons juste ôté quelques sauts de ligne) :
<code>
+
<code>{
  {
 
 
     "nbrecords":6,
 
     "nbrecords":6,
 
     "records":
 
     "records":
Ligne 82 : Ligne 81 :
 
             {  "spot": "Saint-Malo", "houle": 0, "etoiles": 0 }
 
             {  "spot": "Saint-Malo", "houle": 0, "etoiles": 0 }
 
         ]
 
         ]
  }
+
}</code>
</code>
 
  
  

Version du 6 janvier 2022 à 17:49

résumé du projet

Surf Breizh Light : Comment savoir où est-ce qu'on peut aller surfer sans mourir / souffrir ?

POCL-Surf-Breizh.JPG

Ce POCL "Surf Breizh Light" est une carte de la Bretagne indiquant des plages connues avec une signalisation des prévisions, pour savoir quand est-ce que les conditions sont optimales pour aller surfer. Six "spots" de surf y sont représentés à l'aide d'un phare, qui prendra une couleur différente selon la qualité de surf obtenue sur un site bien connu des surfers (Surf Report) :

  • 0 étoile : couleur Rouge,
  • 1 étoile : couleur Orange,
  • 2 étoiles : couleur Jaune,
  • 3 étoiles : couleur Verte.

Un autre élément est pris en compte : la hauteur de houle, qui sera représentée par un clignotement plus ou moins rapide des phares :

  • calme plat (houle inférieure à 1) : pas de clignotement,
  • houle légère (entre 1 et 2) : clignotement toutes les 2 secondes,
  • houle moyenne (entre 2 et 4) : clignotement toutes les secondes,
  • houle forte (plus de 4) : clignotement toutes les 1/2 secondes.


membres du projet

  • Sarah Boulanger,
  • Adriana Verdot,
  • Maëlle Jaffredou,
  • Tonino Rizzo,
  • Philippe Blusseau

POCL-equipe-breizh.JPG

prototype qu'on souhaite réaliser

POCL-breizh-etape.JPG

POCL-Breizh-prez.JPG

premier diaporama : Alors ? Comment ça se passe ?

Données :

Windguru : hauteur des vagues, échelle de valeur sur 3 niveaux de conditions idéales pour aller surfer

Lumières leds : indique que le système est en route ; indique que le système est connecté au wifi ; clignote au cours de la réception des données.


Procédure

Catégorie 1 : modélisation et réalisation de la maquette

  • Vectoriser les contours de la Bretagne
  • Concevoir un motif de vagues (Illustrator)
  • Concevoir 5 phares bretons :
  1. Télécharger le logiciel Cura
  2. Trouver le lien du phare à envoyer sur l'imprimante 3D

Imprimante 3D - Phare .jpg

Catégorie 2 : partie électronique

Le montage électronique s'appuie sur un microcontrôleur de type Wemos D1 Mini. Celui-ci à l'avantage d'être peu onéreux (quelques euros), et il est largement suffisant pour notre besoin, puisque nous n'en exploiterons qu'une seule sortie (en dehors de l'alimentation). Cette sortie servira à contrôler la couleur et le clignotement des leds habilement cachées dans les phares.

Nous avons utilisé des leds disponibles sous forme de ruban, de type Adafruit NeoPixel. Sous la forme de ruban, il suffit de l'alimenter depuis le Wemos D1 Mini (sorties GND et 5V), et d'ajouter la sortie de commande unique pour toutes les leds du ruban. Nous avons utilisé la sortie D3 du Wemos D1 Mini pour cette commande de leds. Seule (petite) difficulté : dans notre cas, chaque phare étant distinct, il nous a fallu couper chacune des leds, et reconstituer la liaison de commande, avec quelques fils, de la soudure, et un peu de patience, comme suit :

Breizh Surf Light Schema.png Led RVB.jpg

Catégorie 3 : partie logicielle

Récupération et format des données : Notre maquette récupère les données auprès du serveur Rednode, sous un format standard dans le monde Web : JSON (JavaScript Object Notation). Il s'agit en fait d'un simple format texte, mais qui peut être interprété comme une structure plus ou moins complexe. Dans notre cas, ce que récupère le logiciel du Wemos D1 Mini, c'est ceci (nous avons juste ôté quelques sauts de ligne) : {

   "nbrecords":6,
   "records":
       [
           {  "spot": "Quiberon", "houle": 0,  "etoiles": 1 },
           {  "spot": "Guidel", "houle": 0, "etoiles": 1 },
           {  "spot": "La Torche", "houle": 1, "etoiles": 1  },
           {  "spot": "Baie des Trepasses", "houle": 1, "etoiles": 2  },
           {  "spot": "Perros", "houle": 0, "etoiles": 0  },
           {  "spot": "Saint-Malo", "houle": 0, "etoiles": 0 }
       ]

}


Le logiciel :

Le logiciel, développé sur l'outil de développement Arduino, comporte deux modules (téléchargeables ci-après). Ces deux modules doivent être placés sous un même répertoire, qu'il faut nommer comme le premier module, à savoir "Breizh_Surf_Light".

  • Breizh_Surf_Light.ino contient les fonctions de base d'un programme de type Arduino (ou compatible tel que notre Wemos D1 Mini) :
    • setup() traite l'initialisation du programme au démarrage du Wemos D1 Mini : initialisation des leds, et connexion Wi-Fi
    • loop() est la fonction activée automatiquement et en boucle. C'est dans cette fonction qu'on appelle les fonctions du deuxième module
  • Requete_Serveur.ino contient les fonctions suivantes :
    • getServerResponse() active la connexion vers le serveur de données Rednode, lance la requête pour récupérer ces données, et sauve les données récupérées. Pour chacun des six "spots" de surf visés, on récupère trois informations : le nom du spot, le nombre d'étoiles liées à ce spot, et la hauteur de houle.
    • applyServerResponse() utilise les données sauvegardées pour modifier la couleur des leds insérées dans les phares de la maquette. C'est également dans cette fonction qu'on détermine, pour chcun des spots de surf, la fréquence de clignotement en fonction du niveau de la houle.
    • manageSpotsSwell prend en compte les fréquences de clignotement, et l'état actuel des leds, pour tour à tour les éteindre ou les allumer.

Pour plus d'information, voir les commentaires dans les modules.

Modules :