Étape 7: Compilation et Upload, bibliothèques
Comme les chaînes de menus résident dans la mémoire EEPROM du processeur, ils doivent être chargé il en premier. Cela se fait par un petit programme (streeng.ino) qui doit être chargé et lancé avant de compiler et d’installer le programme contrôleur principal (steuerung.ino). Le programme de streeng ainsi que le contrôleur s’utilisent de la bibliothèque de classe streeng, qui permet d’enregistrer et d’accéder à des chaînes de caractères dans l’EEPROM.
Quelques mots sur les bibliothèques :
Système de menu
La fonctionnalité de l’appareil nécessite une interface utilisateur structuré. J’ai développé le système de menu avec trois objectifs : simplicité, flexibilité et empreinte de mémoire faible. Les menus sont hiérarchiques jusqu’au 4 niveau. Entrées du menu peuvent être modifiées pendant l’exécution et le système fournit également une fonctionnalité pour l’entrée des données alphanumériques et temps. Pour seulement trois touches (haut/entrer/bas) sont nécessaires. Temps de bouton poussoir est également utilisé pour des fonctionnalités supplémentaires.
Le LCD affiche une ligne d’en-tête panneau (informations d’État, temps, température, mode et chaudière état de fonctionnement) ainsi que 3 lignes du menu. Selon la taille de l’écran, cela peut être plus ou moins (par exemple, en-tête plus 1 ligne pour un petit 16 x 2 affichage). Menu de navigation n’affecte pas le panneau de l’en-tête. La position du menu actuel peut être vu sur la gauche plus côté et est indiqué par un ' >'. Le texte pour l’entrée de menu est visible dans le centre de l’écran. Dans le cas où qu’il existe des sous-menus pour une entrée de menu, un ' >' s’affiche sur le côté à droite. Les éléments de menu sont sélectionnés en appuyant sur la touche entrée, vers le haut et vers le bas navigue autant au sein de l’arborescence du menu. Appuyant sur entrer pour renvoie plus à la racine du menu, appuyant sur « up » plus long navigue un menu niveau vers le haut.
Les chaînes sont édités en changeant la valeur sous le curseur en surbrillance à l’aide des touches up/down. Garder plus longtemps se déplacera le curseur. La touche entrée termine édition avec la nouvelle valeur prise en charge, en tenant plus se terminera également, il restaure la valeur de chaîne initiale.
La bibliothèque de classes de menu prévoit trois façons de stocker le texte de l’élément de menu : mémoire programme 1), 2) EEPROM, 3) pour les deux du calcul dynamique ci-dessus par une fonction fournie. Au démarrage du programme l’arborescence du menu doit être construit à l’aide de la fonction d’entrée. Dans cet exemple en raison de limitations de mémoire EEPROM est utilisé principalement pour le stockage (téléphone livres sont dynamiques et donc utilisent création d’entrée menu dynamique). Entrées de menu sont identifiées par un numéro d’index (index de positionner dans l’EEPROM ou argument de fonction) et un numéro de leur position dans l’arborescence du menu (4 caractères hexadécimaux indiquant un niveau chaque) de codage. Donc 0 x 1000 signifierait la première entrée de menu au niveau supérieur, 0 x 2000 le deuxième menu de niveau supérieur, tandis que 0x1400 qui désigner le sous-menu quatrième à la première entrée de menu de niveau supérieur. Le numéro d’index permet une modification du texte de menu pendant l’exécution par des appels répétés à la fonction d’entrée (p. ex. marche/arrêt basculant).
La fonction principale, appelée à partir du programme utilisateur est un gestionnaire d’événements, qui retourne les éléments de menu sélectionnés et gère tous les menu de navigation, affichage de mise à jour et le défilement. En attendant des événements de menu, le gestionnaire d’événements permet au programme appelant à utiliser le temps de processeur via une routine de service personnalisé, qui doit être fourni.
Interface de ligne de commande
Un aspect essentiel de l’interface utilisateur est l’interface de ligne de commande, qui permet pour les entrées de commandes de texte brut. Alors qu’il est utilisé pour la saisie de SMS, il peut être également utilisé et adapté pour les autres fins (par exemple l’entrée via IP) et syntaxe de la commande.
Essentiellement la ligne de commande est analysée pour les mots clés (résidant dans l’espace du programme), qui sont ensuite traduits en un code intermédiaire compact, qui est ensuite facilement vérifié pour la syntaxe. Des arguments tels que des informations de durée et de température sont attendus dans une forme particulière (hh: mm pour fois, tt.t pour la température). Dans les cas qu’une erreur de syntaxe détectée, un message d’erreur est produit.
Annuaire téléphonique
L’annuaire gère les entrées d’annuaire et les stocke dans l’EEPROM du contrôleur. La bibliothèque dépend fortement de la bibliothèque de menu, qui approvisionne modifier fonctions comme l’épine dorsale de la structure du menu annuaire.
La bibliothèque de l’annuaire téléphonique crée une structure de menu avec des entrées de menu dynamique, qui chacun ont des sous-menus pour éditer et supprimer. Routines pour l’édition et la suppression sont fournis par la bibliothèque du menu. Généralement, les numéros de téléphone peuvent avoir 16 chiffres et sont stockés au format international commençant par un démarrage « + » et le code de pays.
CONTROLER
La chaudière marche/arrêt contact est contrôlée par le logiciel de contrôleur. La bibliothèque met le chauffage selon la valeur de consigne pertinent, qui est soit réglée manuellement (via l’entrée de menu de température), utilise les valeurs par défaut (confort, Economie ou antigel, qui à leur tour, sont définies par l’élément de menu réglages) ou est déterminé par les horaires programmés par l’utilisateur. Les horaires peuvent être programmés avec une résolution temporelle une minute. Jusqu'à cinq intervalles de temps avec une température définie individuellement les paramètres peuvent être programmés.
Tout en contrôlant la chaudière, la bibliothèque prend soin de ne pas le radiateur fonctionne pour moins cher que dans le pré jeu Duree minimale, ainsi que des contrôles pour les dysfonctionnements possibles, c'est-à-dire lorsque la température ambiante n’augmente pas au cours du fonctionnement du chauffage. Dans le cas où un dysfonctionnement se produit ou la température descend en dessous (alerte 0) ou dépasse (alerte 1) programmé, seuils d’alerte par SMS, les messages sont envoyés. Enfin le contrôleur tente d’assurer à toutes les fois que la température mesurée jamais tombe en-dessous du niveau d’antigel défini.
GSM
La bibliothèque GSM effectue la communication entre Freeduino et Modem. La bibliothèque exécute de base e/s avec le modem, fournit une méthode pour envoyer des commandes au modem AT et fournit des fonctionnalités de base surveiller les appels entrants et gérer les messages SMS entrants ainsi que lancer des messages sortants de SMS.