Le programme qui anime notre petite réalisation.
Seulement deux motivation vont certainement vous pousser à faire l’effort d’aller décortiquer les nombreuses lignes abscondes du croquis qui anime NANOMÉTÉO. (Soit 950 lignes au moment de la rédaction de ce didacticiel sans compter les petits programmes démonstrateurs.) Le premier cas est relatif à celle ou celui d’entre vous qui s’est promené avec enthousiasme dans le gros didacticiel donné ici.
Dans ce cas, c’est l’envie d’apprendre à programmer Arduino qui vous pousse à papillonner dans ce dernier volet de la saga. Autre cas plausible, vous avez pour le plaisir de la posséder réalisé avec succès ce petit appareil, mais désirez « du personnalisé », avec un comportement correspondant plus à vos aspirations. Devant modifier le programme, il faut en cerner un minimum les subtilités.
L‘objectif de ce tutoriel ne réside plus dans l’apprentissage poussé du langage C++ de l’IDE, mais dans la mise en œuvre « ludique » d’une carte NANO. Aussi, je vais me contenter de détailler uniquement quelques procédures spécifiques, car globalement ce programme s’inspire largement de celui du l’ENREGISTREUR À DEUX VOIES du générateur de signaux. Le croquis du programme complet P10_NANO_METEO.ino est largement pourvu de commentaires, et certaines séquences ont été détaillées dans le tutoriel sur le générateur de signaux. Inutile d’y revenir. Il va de sois que ceux qui sont émoustillé par la possession d’une telle petite station météo tout en n’ayant aucune envie de comprendre le déroulement du programme qui l’anime sont parfaitement libres d’ignorer les chapitres « informatiques ». Contentez-vous de loger le croquis et vogue la galère …
Première mise en service du programme.
Encore une « entourloupe », une escroquerie qui fait croire que l’on téléverse le programme complet P10_NANO_METEO.ino et que notre station météo sera parée pour que l’on puisse envoyer à Météo France nos prévisions 100% fiables avec un mois d’avance. En procédant de la sorte, ce premier téléchargement du programme ne servira à rien, et vous n’obtiendrez qu’un écran incohérent ou tout noir. Ces deux comportements seront directement fonction d’un booléen logé en EEPROM et informant le logiciel sur ce qu’il doit faire sur un RESET. Les explications à ce sujet seront développées plus avant. La première mise en service et paramétrage de NANOMÉTÉO suppose que cette dernière soit entièrement réalisée, que tous les périphériques soient branchés et en particulier le petit module des capteurs. (Au début ne pas intercaler une éventuelle ligne de télémesures qui ne peut que compliquer les premiers essais.) Si vous ne voulez absolument pas chercher à comprendre les subtilités du programme, voici la procédure commentée pour conditionner une carte NANO qu’elle soit vierge de tout octet ou qu’elle soit habitée par un quelconque croquis y compris avec des données diverses plus ou moins entassées dans la mémoire EEPROM :
1) Téléverser P01_Ecriture_LOGO_en_EEPROM.ino qui place en début d’EEPROM le LOGO personnel qui est
x une petite salamandre. Si le circuit imprimé est globalement correct, l’afficheur OLED rend compte avec un
x petit texte présenté en zone bleue.
2) Téléverser P02_Afficher_LOGO.ino n’est absolument pas indispensable pour mettre en service la petite station météo. Il ne fait que montrer le
x petit dessin. La LED verte doit clignoter à environ cinq hertz prouvant qu’elle est correctement câblée.
3) Téléverser P03_Ecrire_les_textes_en_EEPROM.ino va loger dans l’ATmega328 tous les textes affichés par NANOMÉTÉO. Ces données ne
x sont pas incluses de façon banale dans le programme principal car nous sommes dans l’obligation de libérer de la mémoire dynamique. À la
x limite, peu importe la raison, ne pas utiliser ce programme va engendrer des textes étranges donnant à penser que le logiciel diverge, ce qui
x n’est pas forcément le cas. Quand ce croquis a été téléversé, utiliser le Moniteur série pour vérifier le résultat.
x (ATTENTION : Vitesse 115200 Bauds sur l’IDE.)
4) Téléverser P10_NANO_METEO.ino qui au point de vue du chargement de code dans le microcontrôleur constitue la dernière étape. Tout ce qui
x concerne le logiciel est en place. Toutefois, comme c’est le cas pour tout système informatique, il faut maintenant aller dans le SET UP :
Conditionnement initial et consignes « au sommet ».
Présentant deux modes de redémarrage sur un RESET et une fonction de Sentinelle surveillant la température, notre petite station météo va à ce stade de sa première mise en service pouvoir potentiellement présenter plusieurs comportements différents que l’on va passer en revue. On suppose dans ce qui suit que le mini clavier et que le capteur rotatif sont correctement branchés et opérationnels. Donc … avec un multimètre vous avez vérifié qu’électriquement le fonctionnement correspond à celui attendu.
• Premier cas : L’écran est tout noir, affiche Capteurs NON OK et l’alarme couine en boucle. C’est le matériel qui est en cause. Tant QUE LES
x DEUX CAPTEURS ne dialogueront pas correctement avec NANOMÉTÉO on en prendra plein les oreilles. Il faut absolument corriger le problème.
• Deuxième cas : L’écran affiche un court instant Capteurs OK puis devient tout noir. La LED jaune clignote environ toutes les trois secondes,
x le cœur de notre bébé bat régulièrement :
– Youpyyyyy, ça marche !
Cet écran tristounet n’a rien d’anormal, c’est du reste ce qui va probablement se passer si la carte NANO est vierge. Son EEPROM ne comporte que des octets à $FF, (Mis à part les textes et le LOGO.) et la variable « SÉCURITÉ MÉTÉO » est alors validée.
Il est également fort probable que la LED rouge de l’alarme va s’allumer. Rien d’anormal non plus, surtout si la carte NANO est neuve et que son EEPROM n’a jamais été programmée.
– Lé pas beau cet écran, on peut voir la grenouille ?
– Non, désormais à Météo Perso c’est une Salamandre qui prédit le temps.
– Comment on fait pour la trouver ?
– Fastoche :
• Deuxième cas : Pour conditionner un comportement coutumier avec affichage d’un écran d’accueil sur RESET
x il faut, quand l’écran est tout noir, c’est à dire que l’appareil est en mode VEILLE, cliquer à gauche sur l’inverseur à
x bascule. L’écran affiche SECURITE METEO NON et la LED jaune clignote rapidement invitant à cliquer sur FC+ par exemple.
– C’est pas bon, c’est encore tout noir !
– Normal Dudule, t’as changé l’option sur RESET, mais la station continue à stationner !
– Qué que je dois faire alors Totoche ?
– Ben un RESET gros malin !
• Troisième cas : L’écran affiche la version ainsi que le LOGO et la LED jaune clignote rapidement invitant à cliquer sur FC+. (Ou FC- à ce stade
x c’est équivalent.) Ce comportement est également celui que l’on obtient sur RESET quand on a commencé avec le deuxième cas et que l’on
x a utilisé l’inverseur à bascule à gauche. Nous analyserons dans le prochain chapitre toutes les possibilités.
– C’est beau, mais je déteste le feu rouge !
– Ben il te suffit de cliquer sur FC- long et de consigner une température.
Comme pour l’activation de chaque option possible, le programme demande confirmation. FC- court annule la requête, FC+ court valide la saisie. Cliquez sur FC+ long, le programme présente alors le texte °C Alarme = 0. Appuyez enfin sur FC+ court, le programme revient en EXPLOITATION et au bout de trois secondes au maximum la LED rouge s’éteint.
C’est terminé, globalement notre appareil fonctionne correctement. Seule une exploration de toutes les fonctions confirmera dans le détail un comportement 100% conforme à ce que l’on attend, cependant si les premiers essais qui précèdent ont conduit à des manipulations correctes, raisonnablement on peut replacer définitivement le couvercle. Avant de « refermer la porte à clef » vous avez opté pour une utilisation « portative » ou « sédentaire », car le protecteur des capteurs en utilisation mobile doit être mis en place avant de refermer définitivement le coffret.
Note : Le programme P04_Corriger_la_version_en_EEPROM.ino ne sert strictement à rien si vous n’avez pas l’intension de modifier le logiciel à votre guise pour y loger un peu d’originalité.