#include <Arduino.h>
#include <WiFi.h>
// #include <Firebase_ESP_Client.h>
#include <FirebaseESP32.h>
//Provide the token generation process info.
#include "addons/TokenHelper.h"
//Provide the RTDB payload printing info and other helper functions.
#include "addons/RTDBHelper.h"
// Insert your network credentials
#define WIFI_SSID "xxx"
#define WIFI_PASSWORD "xxx"
// Insert RTDB URLefine the RTDB URL */
#define DATABASE_URL "xxx"
#define DATABASE_SECRET "xxx"
// Define Firebase Data object
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
#define LED_18 18
#define LED_22 22
#define BUTTON_PIN 23
int times_played = 0;
void setup(){
pinMode(LED_18, OUTPUT);
pinMode(LED_22, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
config.database_url = DATABASE_URL;
config.signer.tokens.legacy_token = DATABASE_SECRET;
Firebase.reconnectNetwork(true);
fbdo.setBSSLBufferSize(4096, 1024);
Firebase.begin(&config, &auth);
}
void loop(){
int cards_per_player, players;
Firebase.getInt(fbdo, "players", &players);
Firebase.getInt(fbdo, "cards", &cards_per_player);
Serial.printf("Quantidade de jogadores: %d\n", players);
Serial.printf("Quantidade de cartas: %d\n", cards_per_player);
for (int i = 0; i < players; i++){
// led verde piscando representa a troca de jogador
digitalWrite(LED_18, true);
delay(500);
digitalWrite(LED_18, false);
delay(500);
Serial.printf("Troca de jogador!\n");
for (int i = 0; i < cards_per_player; i++){
// led vermelho piscando representa a entrega de cartas
digitalWrite(LED_22, true);
delay(500);
digitalWrite(LED_22, false);
delay(500);
Serial.printf("Envio de carta!\n");
}
}
while (1) {
int currentState = digitalRead(BUTTON_PIN);
if (currentState == 0) {
Firebase.setInt(fbdo, "times_played", times_played + 1);
Firebase.getInt(fbdo, "times_played", ×_played);
Serial.printf("Botão pressionado!\n");
break;
}
}
return;
}
Comments