commit
42149fdc1a
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in new issue