diff --git a/sujet b/sujet index 53706dc..63c29c9 100644 --- a/sujet +++ b/sujet @@ -1,3 +1,151 @@ -#!/bin/bash +#include "TFT_eSPI.h" -open https://opale.iut.uca.fr/info/wiki/doku.php?id=archi:archi +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; + +unsigned long myTimeInSec; +unsigned long myTimeInMin; +unsigned long hour; + + + +void setup() { + tft.begin(); + tft.setRotation(3); // Set the screen orientation + tft.fillScreen(TFT_GREEN); // Green background + 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; + } + 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 > 10){ + Serial.println("attention l'affluence à dépassé 10 !"); + } + 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(TFT_GREEN); + 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(TFT_GREEN); + 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; +} \ No newline at end of file