#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6j2VdUSb1"
#define BLYNK_TEMPLATE_NAME "sevensegment"
#define BLYNK_AUTH_TOKEN "iJQn2RAIWvTK0_wlmkJ5ut_hwCF47TQY"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <TM1637Display.h>
/* WIFI */
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
/* PIN */
#define CLK 13
#define DIO 14
#define BUZZER 2
TM1637Display display(CLK, DIO);
int nombor = 0;
/* ---------- BLYNK ---------- */
// Text Input – set nombor permulaan
BLYNK_WRITE(V1) {
nombor = param.asInt();
hadkanNombor();
updateDisplay();
bunyi();
}
// Button naik
BLYNK_WRITE(V2) {
if (param.asInt() == 1) { // <<< PENTING
nombor++;
hadkanNombor();
updateDisplay();
bunyi();
}
}
// Button turun
BLYNK_WRITE(V3) {
if (param.asInt() == 1) { // <<< PENTING
nombor--;
hadkanNombor();
updateDisplay();
bunyi();
}
}
/* ---------- FUNGSI ---------- */
void updateDisplay() {
display.showNumberDec(nombor, true);
Blynk.virtualWrite(V0, nombor);
Serial.print("Nombor Giliran: ");
Serial.println(nombor);
}
void bunyi() {
digitalWrite(BUZZER, HIGH);
delay(100);
digitalWrite(BUZZER, LOW);
}
void hadkanNombor() {
if (nombor < 0) nombor = 0;
if (nombor > 9999) nombor = 9999;
}
/* ---------- SETUP ---------- */
void setup() {
Serial.begin(115200);
pinMode(BUZZER, OUTPUT);
digitalWrite(BUZZER, LOW);
display.setBrightness(7);
display.showNumberDec(0);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
/* ---------- LOOP ---------- */
void loop() {
Blynk.run();
}Loading
esp32-s2-devkitm-1
esp32-s2-devkitm-1