Tombol tepat cepat seringkali di gunakan dalam permainan cerdas cermat yang biasanya di mainkan oleh dua atau lebih pemain atau tim. Pada awal permainan, setiap pemain atau tim di berikan tombol atau tombol khusus yang harus mereka tekan setiap kali mereka melihat sinyal untuk melakukannya. Sinyal tersebut dapat berupa lampu atau bunyi.
[lwptoc]
Tujuan dari permainan ini adalah untuk menekan tombol secepat mungkin setelah sinyal muncul, dengan demikian pemain atau tim yang menekan tombol dengan cepat dan tepat akan mendapatkan skor atau poin.
Permainan tombol tepat cepat sering di mainkan dalam acara atau kegiatan yang bersifat kompetitif atau sebagai hiburan. Selain itu, permainan ini juga dapat di gunakan untuk melatih koordinasi tangan dan mata serta refleks atau kecepatan reaksi seseorang.
Sebagai informasi, di marketplace tombol cerdas cermat ini di jual dengan harga sekitar Rp. 800.000-an tentunya, jika Fanbot bisa membuatnya sendiri juga bisa di jual di internet nantinya.
Kebutuhan Alat
Untuk membuat permainan tombol cerdas cermat cepat tepat dengan Blynk IoT untuk 3 kelompok, di butuhkan beberapa kebutuhan berikut:
Hardware:
- Board ESP atau Arduino (contoh: ESP32, ESP 8266, Arduino Uno atau Arduino Nano)
- 3 tombol tekan (push button)
- Jumper wire
- Kabel USB
Software:
- Arduino IDE
- Blynk IoT App
Koneksi Internet:
- WiFi dengan koneksi internet stabil
Setelah mempersiapkan semua kebutuhan di atas, selanjutnya Anda dapat membuat sketch Arduino untuk membaca input dari tombol dan mengirimkan data ke aplikasi Blynk.
Di dalam aplikasi Blynk, Anda dapat membuat tiga widget tombol (Button Widget) dan tiga widget tampilan skor (Value Display Widget) untuk masing-masing kelompok. Selain itu, Anda juga perlu membuat satu widget tampilan waktu (LCD Widget) untuk menampilkan waktu yang tersisa selama permainan berlangsung.
Baca Juga Membuat Game Matematika Sederhana dengan Keypad dan LCD
Setelah itu, Anda dapat menghubungkan board ESP atau Arduino ke aplikasi Blynk dengan menggunakan token otentikasi Blynk dan kode WiFi untuk koneksi internet. Kemudian, Anda dapat mengunggah sketch yang telah di buat ke dalam board Arduino.
Dengan menggunakan tombol cepat tepat dengan Blynk IoT untuk 3 kelompok, pemain atau kelompok yang berhasil menekan tombol dengan cepat dan tepat akan mendapatkan skor atau poin yang di tampilkan pada tampilan skor pada aplikasi Blynk. Selain itu, waktu yang tersisa selama permainan berlangsung juga di tampilkan pada tampilan waktu (LCD Widget).
Gambar Rangkaian
Susun rangkaian seperti gambar berikut
Code Sketch Tombol Cepat Tepat dengan Blynk IoT
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Ticker.h>
char auth[] = "masukkan_token_auth_blynk_anda"; // Token auth dari proyek Blynk
char ssid[] = "nama_wifi_anda"; // Nama jaringan WiFi
char pass[] = "password_wifi_anda"; // Password jaringan WiFi
const int buttonPin1 = 2; // Pin tombol kelompok 1 terhubung ke pin 2 pada Arduino
const int buttonPin2 = 3; // Pin tombol kelompok 2 terhubung ke pin 3 pada Arduino
const int buttonPin3 = 4; // Pin tombol kelompok 3 terhubung ke pin 4 pada Arduino
int buttonState1 = 0; // Variabel untuk menyimpan status tombol kelompok 1
int buttonState2 = 0; // Variabel untuk menyimpan status tombol kelompok 2
int buttonState3 = 0; // Variabel untuk menyimpan status tombol kelompok 3
int score1 = 0; // Variabel untuk menyimpan skor kelompok 1
int score2 = 0; // Variabel untuk menyimpan skor kelompok 2
int score3 = 0; // Variabel untuk menyimpan skor kelompok 3
bool gameActive = false; // Status permainan
Ticker timer; // Ticker untuk menghitung waktu permainan
BlynkTimer blynkTimer; // Timer untuk memperbarui widget waktu pada aplikasi Blynk
void setup() {
Serial.begin(9600); // Baud rate komunikasi serial
pinMode(buttonPin1, INPUT_PULLUP); // Set pin tombol kelompok 1 sebagai input dengan internal pull-up resistor
pinMode(buttonPin2, INPUT_PULLUP); // Set pin tombol kelompok 2 sebagai input dengan internal pull-up resistor
pinMode(buttonPin3, INPUT_PULLUP); // Set pin tombol kelompok 3 sebagai input dengan internal pull-up resistor
WiFi.begin(ssid, pass); // Koneksi WiFi
Blynk.begin(auth, ssid, pass); // Koneksi Blynk IoT
timer.attach(10, tick); // Set Ticker untuk menghitung waktu permainan setiap 10 milidetik
}
void loop() {
Blynk.run(); // Jalankan Blynk
}
BLYNK_WRITE(V0) { // Fungsi yang di jalankan saat widget tombol di tekan
if (!gameActive) { // Jika permainan belum di mulai
score1 = 0; // Reset skor kelompok 1
score2 = 0; // Reset skor kelompok 2
score3 = 0; // Reset skor kelompok 3
gameActive = true; // Set status permainan menjadi aktif
timer.start(); // Mulai Ticker untuk menghitung waktu permainan
Blynk.virtualWrite(V1, score1); // Perbarui widget skor kelompok 1
Blynk.virtualWrite(V2, score2); // Perbarui widget skor kelompok 2
Blynk.virtualWrite(V3, score3); // Perbarui widget skor kelompok 3
Blynk.virtualWrite(V4, 0); // Perbarui widget waktu permainan menjadi 0
}
}
void tick() { // Fungsi yang di jalankan setiap Ticker di aktifkan
static int timeLeft = 30; // Waktu permainan dalam detik
timeLeft–; // Kurangi waktu permainan setiap Ticker di jalankan
Blynk.virtualWrite(V4, timeLeft); // Perbarui widget waktu permainan pada aplikasi Blynk
if (timeLeft <= 0) { // Jika waktu permainan habis
timer.stop(); // Stop Ticker untuk menghitung waktu permainan
gameActive = false; // Set status permainan menjadi tidak aktif
Blynk.virtualWrite(V0, "Mulai Permainan"); // Perbarui widget tombol menjadi "Mulai Permainan"
}
else { // Jika waktu permainan belum habis
buttonState1 = digitalRead(buttonPin1); // Baca status tombol kelompok 1
buttonState2 = digitalRead(buttonPin2); // Baca status tombol kelompok 2
buttonState3 = digitalRead(buttonPin3); // Baca status tombol kelompok 3
if (buttonState1 == LOW) { // Jika tombol kelompok 1 ditekan
score1++; // Tambahkan skor kelompok 1
Blynk.virtualWrite(V1, score1); // Perbarui widget skor kelompok 1 pada aplikasi Blynk
}
if (buttonState2 == LOW) { // Jika tombol kelompok 2 di tekan
score2++; // Tambahkan skor kelompok 2
Blynk.virtualWrite(V2, score2); // Perbarui widget skor kelompok 2 pada aplikasi Blynk
}
if (buttonState3 == LOW) { // Jika tombol kelompok 3 di tekan
score3++; // Tambahkan skor kelompok 3
Blynk.virtualWrite(V3, score3); // Perbarui widget skor kelompok 3 pada aplikasi Blynk
}
}
}
Nah itulah sketch untuk membuat tombol cepat tepat dalam permainan cerdas cermat kelompok. Selamat mencoba