Mon frère est en visite et ont a décidé de faire fonctionner son LCD Adafruit et de faire montré le minimum et le maximum de la température prises par un LM35!
Maintenant ont réussit à afficher la vrais température en °C et j'ai modifié le code Arduino pour mettre à "ON" à 28° et en hystérésis, mètre à "OFF" sous 27°C pour ne pas hésité entre "ON"et "OFF".
En haut de 28°C il va activer vis la pin 4 un relai pour le climatiseur pour redescendre a 27°C minimum.
Toutes ces "sockets" à fusibles c'est pour protéger nos test d'inputs et outputs.
Pour géré la température ceci est complétement le minimum pour une gestion de température stable...
Affichage différé à la demande
Ensuite je vais faire en sorte qu'an appuyant sur un bouton ont change l'état d'affichage pour: minimum et maximum au lieu de: température et état du climatiseur.
Pour cela il nous faut une commande.
Le LCD Adafruit offre des boutons de commandes. Je vais donc changer une variable selon quel bouton est appuyé pour naviguer entre les états d'affichages.
Donc je me fait une fonction qui va afficher différents screen selon la une variable modifié par les bouton up et down.
Donc quand ont appuie sur lcd.UP on incrémente la variable et vice-versa pour lcd.DOWN
Voici donc notre fonction pour afficher différents "Screen" sur le LCD selon l'état de navigation
void showInfoLCD(){ if (lcdWathToShow == 0){ lcd.setCursor(12, 0); lcd.print(temperature); lcd.setCursor(0, 0); // Set LCD cursor position (column 0, row 0) lcd.print("Temperature "); lcd.setCursor(0, 1); // Set LCD cursor position (column 1, row 1) lcd.print("Climatiseur "); // Print text to LCD lcd.setCursor(13, 1); // Set LCD cursor position if (climatisor == 0){lcd.print("Off");}else if(climatisor == 1){lcd.print("On ");Serial.println("Climatiseur | Output: ON ");} lcd.setCursor(12, 0); lcd.print(temperature); } else if (lcdWathToShow == 1){ lcd.setCursor(0, 0); lcd.print("Temp Max: "); lcd.setCursor(11, 0); lcd.print(tempmax); lcd.setCursor(0, 1); lcd.print("Temp Min: "); lcd.setCursor(11, 1); lcd.print(tempmin); }else{ lcdWathToShow = 0; //OverRide if there is no more screen options set } }
Et voila pour l'instant comment je fais la gestion d'affichage de température live sur un LCD Adafruit avec minimum et maximum dans plusieurs screens.
Prochaine tentative est d'enregistré ces données sur mon serveur de webmestre avec un Shield Arduino Ethernet. Je vous présenterai dans le prochain Blog-post la structure de ma base de données pour plusieurs sondes sur plusieurs Arduinos... La manière la plus flexible et User-Friendly !