#include "TFT_eSPI.h" int X_MAX = 320; int Y_MAX = 240; TFT_eSPI tft; int visit_total = 0; // Initialize visit_total to 0 int affluence = 0; // Initialize affluence to 0 int ancien_visit_total = 0; int ancien_affluence = 0; int y = Y_MAX/5; int background = TFT_GREEN; unsigned long myTimeInSec; unsigned long myTimeInMin; unsigned long hour; void setup() { tft.begin(); tft.setRotation(3); // Set the screen orientation tft.fillScreen(background); // Green background Serial.begin(115200); while (!Serial) { tft.setTextColor(TFT_BLACK); tft.setTextSize(3); tft.drawString("Need Serial Com", 10, 100); } tft.setTextColor(TFT_GREEN); tft.drawString("Need Serial Com", 10, 100); pinMode(WIO_KEY_A, INPUT_PULLUP); pinMode(WIO_KEY_B, INPUT_PULLUP); pinMode(WIO_KEY_C, INPUT_PULLUP); pinMode(WIO_5S_PRESS, INPUT_PULLUP); affiche(); affBandeauBleu(); affHeure(); } void loop() { visiteur(); } void affBandeauBleu() { tft.fillRect(0, 0, X_MAX, y, TFT_BLUE); tft.drawChar(10, 10, '+', TFT_BLACK, TFT_BLUE, 3); tft.drawChar(80, 10, '-', TFT_BLACK, TFT_BLUE, 3); tft.setTextColor(TFT_BLACK); tft.setTextSize(3); tft.drawString("RAZ", 155, 10); tft.drawChar(275, 10, ':', TFT_BLACK, TFT_BLUE, 3); //sprintf(&s,"%d + %d = %d", a, b, c); } void affHeure() { //tft.setTextColor(TFT_BLUE); //tft.drawNumber(hour, 240, 10); //tft.drawNumber(myTimeInMin, 285, 10); myTimeInSec = millis()/1000; myTimeInMin = myTimeInSec%60; hour = myTimeInMin%60+12; tft.setTextColor(TFT_BLACK); tft.drawNumber(hour, 240, 10); tft.drawNumber(myTimeInMin, 285, 10); delay(1000); } void visiteur() { int etat = 0; if (digitalRead(WIO_KEY_B) == LOW) { ancien_affluence = affluence; affluence = affluence -1; // Decrease affluence if(affluence < 0){ Serial.println("impossible d'être négatif !"); affluence = 0; } if(affluence <= 10){ Serial.println("attention l'affluence à dépassé 10 !"); background = TFT_GREEN; tft.fillScreen(background); // Green background affiche(); affBandeauBleu(); affHeure(); } efface(); affiche(); Serial.print("visit_total = "); Serial.println(visit_total); Serial.print("affluence = "); Serial.println(affluence); } else if (digitalRead(WIO_KEY_C) == LOW) { ancien(); affluence = affluence +1; // Increase affluence visit_total = visit_total +1; // Increment visit_total if(affluence == 11) tone(WIO_BUZZER, 442); if(affluence > 10){ Serial.println("attention l'affluence à dépassé 10 !"); background = TFT_RED; tft.fillScreen(background); // Green background affiche(); affBandeauBleu(); noTone(WIO_BUZZER); affHeure(); } efface(); affiche(); Serial.print("visit_total = "); Serial.println(visit_total); Serial.print("affluence = "); Serial.println(affluence); } else if (digitalRead(WIO_KEY_A) == LOW) { tft.setTextColor(TFT_BLACK); tft.setTextSize(3); tft.drawString("Confirmez ?", 110, 200); etat = compteur(); if(etat == 1){ ancien(); visit_total = 0; affluence = 0; etat = 0; } tft.setTextColor(background); tft.setTextSize(3); tft.drawString("Confirmez ?", 110, 200); efface(); affiche(); Serial.print("visit_total = "); Serial.println(visit_total); Serial.print("affluence = "); Serial.println(affluence); } delay(200); } void ancien(){ ancien_visit_total = visit_total; ancien_affluence = affluence; } void efface(){ tft.setTextColor(background); tft.setTextSize(3); tft.drawString("visit_total", 10, 100); tft.drawNumber(ancien_visit_total, 250, 100); tft.drawString("affluence", 10, 150); tft.drawNumber(ancien_affluence, 250, 150); } void affiche(){ tft.setTextColor(TFT_BLACK); tft.setTextSize(3); tft.drawString("visit_total", 10, 100); tft.drawNumber(visit_total, 250, 100); tft.drawString("affluence", 10, 150); tft.drawNumber(affluence, 250, 150); } int compteur(){ int i = 5; while( i > 0){ delay(1000); Serial.println(i); i--; if(digitalRead(WIO_5S_PRESS) == LOW){ return 1; } } return 0; }