From 42149fdc1a9a69ecf6c9f9b68408d9f5cadd4296 Mon Sep 17 00:00:00 2001 From: "thibaud.la_riviere-gillet" Date: Thu, 16 May 2024 10:20:37 +0200 Subject: [PATCH] push --- script.ino | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 script.ino diff --git a/script.ino b/script.ino new file mode 100644 index 0000000..401df70 --- /dev/null +++ b/script.ino @@ -0,0 +1,147 @@ +#include "TFT_eSPI.h" +#include "RTC_SAMD51.h" +#include "DateTime.h" + +TFT_eSPI tft; +RTC_SAMD51 rtc; +unsigned int affluence = 0; +unsigned int visiteurs = 0; +const unsigned short maxAffluence = 10; +int resetTime; +DateTime now = DateTime(F(__DATE__), F(__TIME__)); +short minute; +short hour; +short second = 0; + +String minuteString; +String hourString; + +void setup() { + Serial.begin(115200); + + + + rtc.adjust(now); + now = rtc.now(); + second = now.second() + 5; //Il y a un décalage de 5 secondes entre les secondes réelles et celles de la librairy. + minute = now.minute(); + hour = now.hour(); + + tft.begin(); + tft.setRotation(3); + + tft.setTextColor(TFT_BLACK); + tft.setTextSize(3); + + while (!Serial) + { + tft.fillScreen(TFT_GREEN); + tft.drawString("Need serial com", 10, 10); + } + + pinMode(WIO_KEY_A, INPUT_PULLUP); + pinMode(WIO_KEY_B, INPUT_PULLUP); + pinMode(WIO_KEY_C, INPUT_PULLUP); + pinMode(WIO_5S_PRESS, INPUT_PULLUP); + + tft.fillRect(0,0,320,40,TFT_BLUE); // BANDEAU DU HAUT + + tft.drawString("+ - RAZ",5,10); + if (now.minute() < 10) + minuteString = "0" + String(now.minute()); + else + minuteString = String(now.minute()); + if (now.hour() < 10) + hourString = "0" + String(now.hour()); + else + hourString = String(now.hour()); + + tft.drawString(hourString + ":" + minuteString,230,10); + + + tft.fillRect(0,41,320,240,TFT_GREEN); // Carré du bas + tft.drawString("affluence: " + String(affluence), 10, 75); + tft.drawString("visiteurs: " + String(visiteurs), 10, 100); + + attachInterrupt(WIO_KEY_C, add, FALLING); + attachInterrupt(WIO_KEY_B, substract, FALLING); + attachInterrupt(WIO_KEY_A, resetInit, FALLING); + attachInterrupt(WIO_5S_PRESS, reset, FALLING); +} + +void loop() { + + delay(1000); + second++; + Serial.println(second); + if (second%60 == 0) + { + minute++; + if (minute%60 == 0) + hour++; + if (hour == 24) + hour = 0; + + tft.fillRect(0,0,320,40,TFT_BLUE); // BANDEAU DU HAUT + tft.drawString("+ - RAZ",5,10); + if (now.minute() < 10) + minuteString = "0" + String(minute); + else + minuteString = String(minute); + if (now.hour() < 10) + hourString = "0" + String(hour); + else + hourString = String(hour); + + tft.drawString(hourString + ":" + minuteString,230,10); + } +} + +void add() +{ + visiteurs++; + affluence++; + + if (affluence <= maxAffluence) + tft.fillRect(0,41,320,240,TFT_GREEN); + else + tft.fillRect(0,41,320,240,TFT_RED); + tft.drawString("affluence: " + String(affluence), 10, 75); + tft.drawString("visiteurs: " + String(visiteurs), 10, 100); +} + +void substract() +{ + if (affluence != 0) + { + affluence--; + + if (affluence <= maxAffluence) + tft.fillRect(0,41,320,240,TFT_GREEN); + else + tft.fillRect(0,41,320,240,TFT_RED); + tft.drawString("affluence: " + String(affluence), 10, 75); + tft.drawString("visiteurs: " + String(visiteurs), 10, 100); + } +} + +void resetInit() +{ + resetTime = millis(); + Serial.println("RESETINIT"); +} + +void reset() +{ + Serial.println("RESET"); + if (millis() - resetTime <= 5000) + { + affluence = 0; + visiteurs = 0; + tft.fillRect(0,41,320,240,TFT_GREEN); + tft.drawString("affluence: " + String(affluence), 10, 75); + tft.drawString("visiteurs: " + String(visiteurs), 10, 100); + resetTime = 0; + } +} +