Étape 4: Programme de l’Arduino
Pour la partie programmation de notre projet, nous avons écrit un programme Arduino :
- ajuster automatiquement la température et la luminosité des LED basé sur l’heure de la journée
- Laissez l’utilisateur de régler l’heure actuelle et la minute à l’aide de l’écran tactile et d’actualiser l’horloge temps réel
- afficher l’heure actuelle sur le menu principal
- Laissez l’utilisateur de spécifier quand ils se réveillent à l’aide de l’écran tactile
- permet l’utilisateur d’ajuster la température minimum et maximum de couleur et la luminosité LED utilisant l’écran tactile
- stocker les paramètres de l’utilisateur sur de l’Arduino EEPROM donc ils peuvent être récupérés après que le courant est coupé
Notre code s’appuie sur les bibliothèques suivantes :
- la bibliothèque Adafruit GFX (plus d’infos ici)
- la bibliothèque Adafruit ILI9341 (c’est spécifique à l’écran, que nous avons utilisé - un peu plus d’infos ici)
- la bibliothèque ILI9341_due (Ceci ajouté dispose à la bibliothèque Adafruit et est nettement plus rapide - plus d’infos ici)
- la bibliothèque Adafruit FT6206 (c’est spécifique à l’écran tactile capacitif que nous avons utilisé - plus d’infos ici)
- la bibliothèque SdFat (plus d’infos ici)
- le Adafruit RTClib (plus d’infos ici)
- et tout un tas de bibliothèques standard Arduino (plus d’infos ici)
Notez que la bibliothèque ILI9341_due est conçue pour l’échéance de l’Arduino. Pendant son exécution assez vite sur Arduinos moins puissants que l’échéance, il peut encore prendre beaucoup d’espace en fonction de quelles fonctions vous utilisez. Malheureusement, cela a provoqué notre code d’exiger environ 44 Ko de flash. Autrement dit, qu'il ne rentrera pas sur l’échéance de l’Arduino Mega et zéro. Toutefois, si vous ne pouvez modifier notre code afin d’utiliser une bibliothèque de graphiques différents, alors il devrait tenir sur presque n’importe quel Arduino (cela ne serait pas négligeable, cependant).
Si vous ne souhaitez pas utiliser le code que nous avons écrit pour notre projet, vous pouvez télécharger le fichier joint ci-dessous. Remarque que nous avons connecté les broches CS, D/C et CCS sur l’écran tactile à différentes broches de l’Arduino que celles spécifiées dans le Adafruit guident (bien que le placement fonctionne bien sur l’ONU, c’est moins pratique sur le méga). Vous pouvez mettre à jour les goupilles sont utilisées par le code en changeant les variables CS_PIN, DC_PIN et CCS_PIN, trouvés à autour de la ligne 40. Vous devrez également télécharger la bitmap spécial condition (qui devrait être renommé en « colors.bmp »), le copier sur une carte MicroSD et mettre la carte MicroSD dans l’écran tactile pour que tout fonctionne. Notez que la prévisualisation de l’image peut sembler bizarre à cause du format spécial, nous avons utilisé (voir la section « Chargement des images depuis une carte SD » ici).
Nous tenons à remercier Helland Tanner pour le développement de code pour convertir les températures de couleur RVB valeurs, qui nous a sauvés de devoir paramétrer nous-mêmes. Vous pouvez trouver son post sur le sujet ici.