please find the sketch below ![]()
int upButton = 32;
int downButton = 33;
int selectButton = 25;
int menu = 0;
;
int buttonState3 = 0; // button state for select buttom
int lastbuttonState3 = 0;
void loop() {
BlynkEdgent.run ();
timer.run();
buttonState3 = digitalRead (selectButton);
if ( buttonState3 != lastbuttonState3) {
if (buttonState3 == HIGH) {
buttonaction(); //if pressed select button , start buttonaction function
//and checking the button action> page select
}
} else {
sensorpage(); //if button not pressed, go to sensorpage( temp page)
}
lastbuttonState3 = buttonState3;
}
void buttonaction() { //detect button action ,updating menu number and
//shown related page
if (!digitalRead(downButton)) {
menu++;
delay(100);
updateMenu();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)) {
menu--;
delay(100);
updateMenu();
delay(100);
while (!digitalRead(upButton));
}
if (!digitalRead(selectButton)) {
executeAction();
delay(100);
updateMenu();
delay(100);
while (!digitalRead(selectButton));
}
}
void updateMenu() //menu display
{
display.setFont(&FreeSans9pt7b);
display.setTextSize(1);
switch (menu) {
case -3:
menu = 0;
break;
case -2:
display.clearDisplay() ;
display.display();
case -1:
menu = 0;
break;
case 0:
sensorpage();
break;
case 1:
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0, y);
display.println("> Start Logging");
display.setCursor(0, y2);
display.println(" MenuItem2");
display.display();
break;
case 2:
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0, y);
display.println("Start Logging");
display.setCursor(0, y2);
display.println("> MenuItem2");
display.display();
break;
case 3:
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0, y);
display.println("> Display off");
display.setCursor(0, y2);
display.println(" Back");
display.display();
break;
case 4:
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0, y);
display.println("Display off");
display.setCursor(0, y2);
display.println("> Back");
display.display();
break;
case 5:
menu = 4;
break;
}
}
void sensorpage() //temperature display page
{
display.clearDisplay();
display.setFont(&FreeSans9pt7b);
display.drawLine ( 0, 20, 128, 20, WHITE);
// DIsplay temp at bottom
int x1 = 45;
int x2 = 105;
int y1 = 40;
int y2 = 60;
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, y1);
display.print("T1:");
display.setTextSize(1);
display.setCursor(x1, y1);
display.print(thermocouple.readCelsius());
display.setCursor(x2, y1);
display.cp437(true);
display.write(167);
display.print("C");
display.setCursor(0, y2);
display.print("T2:");
display.setCursor(x1, y2);
// display.print(rtc.getTemperature());
display.setCursor(x2, y2);
display.cp437(true);
display.write(167);
display.print("C");
display.display();
}
////////////////////////
//menu action
void action1() {
display.clearDisplay();
display.setCursor(0, y2);
display.print(">Executing #1");
display.display();
delay(1500);
}
void action2() {
display.clearDisplay();
display.setCursor(0, y2);
display.print(">Executing #2");
display.display();
delay(1500);
}
void action3() {
menu = -2;
}
void action4() {
menu = 0;
}