Upload files to "/"
This commit is contained in:
commit
0f87c81473
|
@ -0,0 +1,202 @@
|
|||
#include <WiFi.h>
|
||||
#include <HTTPClient.h>
|
||||
|
||||
// koneksi jaringan
|
||||
const char* ssid = "Zidanee";
|
||||
const char* password = "zidane123";
|
||||
|
||||
// Server endpoints
|
||||
const char* statusUrl = "http://192.168.100.42/shuttle_run/games/status.php";
|
||||
const char* waktuUrl = "http://192.168.100.42/shuttle_run/games/waktu.php";
|
||||
const char* tambahUrl = "http://192.168.100.42/shuttle_run/games/tambah.php";
|
||||
const char* endUrl = "http://192.168.100.42/shuttle_run/games/end.php";
|
||||
const char* targetUrl = "http://192.168.100.42/shuttle_run/games/lampu_target.php";
|
||||
|
||||
// LED and button pins
|
||||
const int ledPins[4] = {33 , 32, 2, 4};
|
||||
const int buttonPins[4] = {12, 14, 18, 19};
|
||||
|
||||
// Variabel untuk menyimpan led aktif saat ini
|
||||
int activeLED = -1;
|
||||
unsigned long oldTime=0;
|
||||
unsigned long nowTime=0;
|
||||
bool ledOn = false;
|
||||
int waktu = 0;
|
||||
int target = 0;
|
||||
int jumlah = 0;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
||||
//Set up LED pins sebagai output
|
||||
for (int i = 0; i < 4; i++) {
|
||||
pinMode(ledPins[i], OUTPUT);
|
||||
digitalWrite(ledPins[i], LOW); // Make sure all LEDs are off initially
|
||||
}
|
||||
|
||||
// Set up button pins sebagai input
|
||||
for (int i = 0; i < 4; i++) {
|
||||
pinMode(buttonPins[i], INPUT_PULLUP);
|
||||
}
|
||||
|
||||
// Connect ke Wi-Fi
|
||||
WiFi.begin(ssid, password);
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
delay(1000);
|
||||
Serial.println("Connecting to WiFi...");
|
||||
}
|
||||
Serial.println("Connected to WiFi");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
nowTime = millis();
|
||||
bool statusGame = checkStatus();
|
||||
if (nowTime - oldTime >= 1000) {
|
||||
oldTime = nowTime;
|
||||
if (statusGame == 1) {
|
||||
Serial.println("Status is 1, starting the program");
|
||||
|
||||
if (!ledOn) {
|
||||
checkWaktu();
|
||||
checkTarget();
|
||||
randomizeLED();
|
||||
ledOn = true;
|
||||
}
|
||||
|
||||
if(waktu <= 0) {
|
||||
endProgram();
|
||||
ledOn = false;
|
||||
}
|
||||
|
||||
Serial.println("waktu tersisa : " + String(waktu));
|
||||
waktu -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (statusGame == 1) {
|
||||
if(target == jumlah && target != 0) {
|
||||
endProgram();
|
||||
ledOn = false;
|
||||
}
|
||||
handleButtons();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int checkTarget() {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
HTTPClient http;
|
||||
http.begin(targetUrl);
|
||||
int httpResponseCode = http.GET();
|
||||
if (httpResponseCode > 0) {
|
||||
String response = http.getString();
|
||||
Serial.println("target: " + response);
|
||||
target = response.toInt();
|
||||
return response.toInt();
|
||||
} else {
|
||||
Serial.println("Error on HTTP request");
|
||||
return 0;
|
||||
}
|
||||
http.end();
|
||||
} else {
|
||||
Serial.println("WiFi not connected");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int checkWaktu() {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
HTTPClient http;
|
||||
http.begin(waktuUrl);
|
||||
int httpResponseCode = http.GET();
|
||||
if (httpResponseCode > 0) {
|
||||
String response = http.getString();
|
||||
Serial.println("waktu: " + response);
|
||||
waktu = response.toInt();
|
||||
return response.toInt();
|
||||
} else {
|
||||
Serial.println("Error on HTTP request");
|
||||
return 0;
|
||||
}
|
||||
http.end();
|
||||
} else {
|
||||
Serial.println("WiFi not connected");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int checkStatus() {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
HTTPClient http;
|
||||
http.begin(statusUrl);
|
||||
int httpResponseCode = http.GET();
|
||||
if (httpResponseCode > 0) {
|
||||
String response = http.getString();
|
||||
// Serial.println("Status response: " + response);
|
||||
return response.toInt();
|
||||
} else {
|
||||
Serial.println("Error on HTTP request");
|
||||
return 0;
|
||||
}
|
||||
http.end();
|
||||
} else {
|
||||
Serial.println("WiFi not connected");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void randomizeLED() {
|
||||
if (activeLED != -1) {
|
||||
digitalWrite(ledPins[activeLED], LOW); // mematikan led sebelumnya
|
||||
}
|
||||
activeLED = random(0, 4); // memilih led acak
|
||||
digitalWrite(ledPins[activeLED], HIGH); // menghidupkan led yang terpilih
|
||||
Serial.println("LED " + String(activeLED) + " is on");
|
||||
}
|
||||
|
||||
void handleButtons() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (digitalRead(buttonPins[i]) == LOW) {
|
||||
if (i == activeLED) {
|
||||
sendButtonPress();
|
||||
randomizeLED(); // led hidup secara acak setelah menekan tombol
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sendButtonPress() {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
HTTPClient http;
|
||||
http.begin(tambahUrl);
|
||||
int httpResponseCode = http.GET();
|
||||
if (httpResponseCode > 0) {
|
||||
String response = http.getString();
|
||||
Serial.println("Button press recorded: " + response);
|
||||
jumlah += 1;
|
||||
} else {
|
||||
Serial.println("Error on sending GET request");
|
||||
}
|
||||
http.end();
|
||||
} else {
|
||||
Serial.println("WiFi not connected");
|
||||
}
|
||||
}
|
||||
|
||||
void endProgram() {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
HTTPClient http;
|
||||
http.begin(endUrl);
|
||||
int httpResponseCode = http.GET();
|
||||
if (httpResponseCode > 0) {
|
||||
String response = http.getString();
|
||||
Serial.println("Program selesai");
|
||||
} else {
|
||||
Serial.println("Error on sending GET request");
|
||||
}
|
||||
http.end();
|
||||
} else {
|
||||
Serial.println("WiFi not connected");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue