#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <SevSeg.h>
// Blynk authentication token
char auth[] = "-MTlZDVfN3VdXpmmbidhgvAANRZMV9n0";
// WiFi credentials
char ssid[] = "";
char pass[] = "";
// Seven segment display pins
int digit1 = 2;
int digit2 = 3;
int digit3 = 4;
int segA = 5;
int segB = 6;
int segC = 7;
int segD = 8;
int segE = 9;
int segF = 10;
int segG = 11;
int segDP = 12;
SevSeg sevseg;
// Button pins
int resetButton = 13;
int incButton = 14;
int decButton = 15;
// Variables for seven-segment display
int displayValue = 0;
// Blynk virtual pins
WidgetLCD lcd(V1);
BlynkTimer timer;
void checkButtons() {
// Check if the reset button is pressed
if (digitalRead(resetButton) == LOW) {
displayValue = 0;
}
// Check if the increment button is pressed
if (digitalRead(incButton) == LOW) {
displayValue++;
if (displayValue > 999) {
displayValue = 999;
}
}
// Check if the decrement button is pressed
if (digitalRead(decButton) == LOW) {
displayValue--;
if (displayValue < 0) {
displayValue = 0;
}
}
// Update Blynk LCD widget
lcd.clear();
lcd.print(0, 0, "Value:");
lcd.print(0, 1, String(displayValue));
}
void setup() {
// Setup Blynk
Blynk.begin(auth, ssid, pass);
// Setup buttons
pinMode(resetButton, INPUT_PULLUP);
pinMode(incButton, INPUT_PULLUP);
pinMode(decButton, INPUT_PULLUP);
// Setup seven-segment display
sevseg.begin(COMMON_CATHODE, 4, digit1, digit2, digit3, segA, segB, segC, segD, segE, segF, segG, segDP);
// Setup timer for button checking
timer.setInterval(100L, checkButtons);
}
void loop() {
Blynk.run();
timer.run();
// Update seven-segment display
sevseg.setNumber(displayValue);
sevseg.refreshDisplay();
}