Mise à jour de 'code_remi'

master
Remi NEVEU 1 year ago
parent b0ff63b668
commit b83c1b3262

@ -1,8 +1,16 @@
#include "TFT_eSPI.h" #include "TFT_eSPI.h"
#include "RTC_SAMD51.h"
#include "DateTime.h"
RTC_SAMD51 rtc;
TFT_eSPI tft;
// nous incluons ici toutes les librairies necessaires pour le bon fonctionnement du projet
int X_MAX = 320; int X_MAX = 320;
int Y_MAX = 240; int Y_MAX = 240;
TFT_eSPI tft;
int visit_total = 0; // Initialize visit_total to 0 int visit_total = 0; // Initialize visit_total to 0
int affluence = 0; // Initialize affluence to 0 int affluence = 0; // Initialize affluence to 0
int ancien_visit_total = 0; int ancien_visit_total = 0;
@ -10,37 +18,43 @@ int ancien_affluence = 0;
int y = Y_MAX/5; int y = Y_MAX/5;
int background = TFT_GREEN; int background = TFT_GREEN;
int etatmessage15 = 0;
unsigned long myTimeInSec; DateTime now = DateTime(F(__DATE__), F(__TIME__));
unsigned long myTimeInMin; //toutes les variables globales utiliser durant le projet
unsigned long hour;
void setup() { void setup() {
rtc.begin();
tft.begin(); tft.begin();
tft.setRotation(3); // Set the screen orientation tft.setRotation(3); // Orientation de l'écran
tft.fillScreen(background); // Green background tft.fillScreen(background); // Fond d'écran de couleure verte au départ
Serial.begin(115200); Serial.begin(115200);
while (!Serial) while (!Serial) // attente de la communication série
{ {
tft.setTextColor(TFT_BLACK); tft.setTextColor(TFT_BLACK);
tft.setTextSize(3); tft.setTextSize(3);
tft.drawString("Need Serial Com", 10, 100); tft.drawString("Need Serial Com", 10, 100);
} }
tft.setTextColor(TFT_GREEN); tft.setTextColor(TFT_GREEN);
tft.drawString("Need Serial Com", 10, 100); tft.drawString("Need Serial Com", 10, 100); // On enlève le message
pinMode(WIO_KEY_A, INPUT_PULLUP); pinMode(WIO_KEY_A, INPUT_PULLUP);
pinMode(WIO_KEY_B, INPUT_PULLUP); pinMode(WIO_KEY_B, INPUT_PULLUP);
pinMode(WIO_KEY_C, INPUT_PULLUP); pinMode(WIO_KEY_C, INPUT_PULLUP);
pinMode(WIO_5S_PRESS, INPUT_PULLUP); pinMode(WIO_5S_PRESS, INPUT_PULLUP);
affiche(); pinMode(WIO_5S_UP, INPUT_PULLUP);
affBandeauBleu(); affiche(); // fonction qui affiche les visiteurs totaux et le nombre actuel
affHeure(); affBandeauBleu(); // fonction qui affiche le bandeau bleu
affHeure(); // fonction qui affiche l'heure sur le bandeau bleu
rtc.adjust(now); // utile pour l'heure
} }
void loop() { void loop() { // appel en continue afin de mettre à jour le nombre de visiteur,
// puis pour modifier l'heure
// et enfin pour afficher le message qui s'affiche toutes les 15 minutes
visiteur(); visiteur();
affHeure();
message15();
message();
} }
@ -56,18 +70,51 @@ void affBandeauBleu() {
} }
void affHeure() { void affHeure() {
//tft.setTextColor(TFT_BLUE); tft.setTextColor(TFT_BLUE);
//tft.drawNumber(hour, 240, 10); tft.drawNumber(now.hour(), 240, 10);
//tft.drawNumber(myTimeInMin, 285, 10); tft.drawNumber(now.minute(), 285, 10);
now = rtc.now();
tft.setTextColor(TFT_BLACK);
tft.drawNumber(now.hour(), 240, 10);
tft.drawNumber(now.minute(), 285, 10);
}
myTimeInSec = millis()/1000;
myTimeInMin = myTimeInSec%60;
hour = myTimeInMin%60+12;
tft.setTextColor(TFT_BLACK); void message15(){
tft.drawNumber(hour, 240, 10); if(now.minute() == 0 || now.minute() == 15 || now.minute() == 30 || now.minute() == 45 || now.minute() == 60){
tft.drawNumber(myTimeInMin, 285, 10); if(etatmessage15 == 0 ){
delay(1000); Serial.println("--------");
Serial.print("heure : ");
Serial.print(now.hour());
Serial.print(":");
Serial.println(now.minute());
Serial.print("visiteur : ");
Serial.println(visit_total);
Serial.print("affluence : ");
Serial.println(affluence);
Serial.println("--------");
etatmessage15 = 1;
}
}
if(now.minute() != 0 && now.minute() != 15 && now.minute() != 30 && now.minute() != 45 && now.minute() != 60 ){
etatmessage15 = 0;
}
}
void message(){
String val;
val = Serial.readString();
Serial.print(val);
if(val != NULL){
tft.setTextColor(TFT_BLACK);
tft.setTextSize(3);
tft.drawString("Nouveau Message !", 10, 50);
}
} }
void visiteur() { void visiteur() {
@ -76,11 +123,9 @@ void visiteur() {
ancien_affluence = affluence; ancien_affluence = affluence;
affluence = affluence -1; // Decrease affluence affluence = affluence -1; // Decrease affluence
if(affluence < 0){ if(affluence < 0){
Serial.println("impossible d'être négatif !");
affluence = 0; affluence = 0;
} }
if(affluence <= 10){ if(affluence <= 10){
Serial.println("attention l'affluence à dépassé 10 !");
background = TFT_GREEN; background = TFT_GREEN;
tft.fillScreen(background); // Green background tft.fillScreen(background); // Green background
affiche(); affiche();
@ -89,33 +134,24 @@ void visiteur() {
} }
efface(); efface();
affiche(); affiche();
Serial.print("visit_total = ");
Serial.println(visit_total);
Serial.print("affluence = ");
Serial.println(affluence);
} }
else if (digitalRead(WIO_KEY_C) == LOW) { else if (digitalRead(WIO_KEY_C) == LOW) {
ancien(); ancien();
affluence = affluence +1; // Increase affluence affluence = affluence +1; // incrémente l'affluence
visit_total = visit_total +1; // Increment visit_total visit_total = visit_total +1; // Incrémente visit_total
if(affluence == 11) if(affluence == 11)
tone(WIO_BUZZER, 442); tone(WIO_BUZZER, 442); // buzzer dès qu'il monte à 11, pas quand il redescend
if(affluence > 10){ if(affluence > 10){
Serial.println("attention l'affluence à dépassé 10 !"); background = TFT_RED; // background rouge
background = TFT_RED; tft.fillScreen(background); // background vert
tft.fillScreen(background); // Green background
affiche(); affiche();
affBandeauBleu(); affBandeauBleu(); // réaffiche le bandeau bleu
noTone(WIO_BUZZER); noTone(WIO_BUZZER); // arrêt du buzzer
affHeure(); affHeure(); //réaffiche l'heure
} }
efface(); efface(); // efface le nombre précédent
affiche(); affiche(); // affiche le nouveau nombre
Serial.print("visit_total = ");
Serial.println(visit_total);
Serial.print("affluence = ");
Serial.println(affluence);
} }
else if (digitalRead(WIO_KEY_A) == LOW) { else if (digitalRead(WIO_KEY_A) == LOW) {
@ -128,6 +164,20 @@ void visiteur() {
visit_total = 0; visit_total = 0;
affluence = 0; affluence = 0;
etat = 0; etat = 0;
Serial.println("remise à 0 !!! ");
Serial.println("--------");
Serial.print("heure : ");
Serial.print(now.hour());
Serial.print(":");
Serial.println(now.minute());
Serial.print("visiteur : ");
Serial.println(visit_total);
Serial.print("affluence : ");
Serial.println(affluence);
Serial.println("--------");
} }
tft.setTextColor(background); tft.setTextColor(background);
@ -135,10 +185,11 @@ void visiteur() {
tft.drawString("Confirmez ?", 110, 200); tft.drawString("Confirmez ?", 110, 200);
efface(); efface();
affiche(); affiche();
Serial.print("visit_total = "); background = TFT_GREEN;
Serial.println(visit_total); tft.fillScreen(background); // Green background
Serial.print("affluence = "); affiche();
Serial.println(affluence); affBandeauBleu();
affHeure();
} }
delay(200); delay(200);
} }
@ -172,7 +223,6 @@ int compteur(){
int i = 5; int i = 5;
while( i > 0){ while( i > 0){
delay(1000); delay(1000);
Serial.println(i);
i--; i--;
if(digitalRead(WIO_5S_PRESS) == LOW){ if(digitalRead(WIO_5S_PRESS) == LOW){
return 1; return 1;

Loading…
Cancel
Save