Advertisement
safwan092

Untitled

Nov 5th, 2023
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. #include <WiFi.h>
  2. #include <FirebaseESP32.h>
  3. #include <addons/TokenHelper.h>
  4. #include <addons/RTDBHelper.h>
  5.  
  6. #define button_pin 34
  7. #define red_led_pin 19
  8. #define green_led_pin 21
  9.  
  10. #define WIFI_SSID "network"
  11. #define WIFI_PASSWORD "123456789"
  12. #define API_KEY "AIzaSyAjIS98IBo4xU9DAqFbo6ZJLPqBwzrJvzk"
  13. #define USER_EMAIL "smartpostcar@gmail.com"
  14. #define USER_PASSWORD "123456789"
  15. #define DATABASE_URL "postcar-57fe1-default-rtdb.firebaseio.com"
  16. #define DATABASE_SECRET "7yJzXNiqlkQZUFb3Ul2KJACDHnztTMrDoFLgPOZM"
  17.  
  18.  
  19. FirebaseData fbdo;
  20. FirebaseAuth auth;
  21. FirebaseConfig config;
  22. unsigned long dataMillis = 0;
  23. int count = 0;
  24.  
  25. int button_pressed_flag = 0;
  26. int button_state = 0;
  27. int home1_value_from_DB = 0;
  28.  
  29. void setup()
  30. {
  31. Serial.begin(115200);
  32. setup_inputs_and_outputs();
  33. connect_to_WiFi_and_Firebase_database();
  34. }
  35.  
  36. void loop()
  37. {
  38. read_button_and_send_data_to_database();
  39. read_from_database();
  40. set_LED_status();
  41. }
  42.  
  43. void set_LED_status() {
  44. if (home1_value_from_DB == 0) {
  45. digitalWrite(red_led_pin, HIGH);
  46. digitalWrite(green_led_pin, LOW);
  47. }
  48. else {
  49. digitalWrite(red_led_pin, LOW);
  50. digitalWrite(green_led_pin, HIGH);
  51. }
  52. }
  53. void read_button_and_send_data_to_database() {
  54. button_state = digitalRead(button_pin);
  55. if (button_state == 1 && button_pressed_flag == 0) {
  56. button_pressed_flag = 1;
  57. write_to_database();
  58. button_pressed_flag = 0;
  59. }
  60. }
  61.  
  62. void setup_inputs_and_outputs() {
  63. pinMode(button_pin, INPUT);
  64. pinMode(red_led_pin, OUTPUT);
  65. pinMode(green_led_pin, OUTPUT);
  66. digitalWrite(red_led_pin, LOW);
  67. digitalWrite(green_led_pin, LOW);
  68. }
  69.  
  70. void connect_to_WiFi_and_Firebase_database() {
  71. WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  72. Serial.print("Connecting to Wi-Fi");
  73. while (WiFi.status() != WL_CONNECTED)
  74. {
  75. Serial.print(".");
  76. delay(300);
  77. }
  78. Serial.println();
  79. Serial.print("Connected with IP: ");
  80. Serial.println(WiFi.localIP());
  81. Serial.println();
  82. Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
  83. config.api_key = API_KEY;
  84. auth.user.email = USER_EMAIL;
  85. auth.user.password = USER_PASSWORD;
  86. config.database_url = DATABASE_URL;
  87. Firebase.reconnectWiFi(true);
  88. fbdo.setResponseSize(4096);
  89. String base_path = "/UsersData/";
  90. config.token_status_callback = tokenStatusCallback; // see addons/TokenHelper.h
  91. config.max_token_generation_retry = 5;
  92. Firebase.begin(&config, &auth);
  93. String var = "$userId";
  94. String val = "($userId === auth.uid && auth.token.premium_account === true && auth.token.admin === true)";
  95. Firebase.setReadWriteRules(fbdo, base_path, var, val, val, DATABASE_SECRET);
  96. }
  97.  
  98. void read_from_database() {
  99.  
  100. if (millis() - dataMillis > 5000 && Firebase.ready())
  101. {
  102. dataMillis = millis();
  103. if (Firebase.RTDB.getInt(&fbdo, "/home1")) {
  104. if (fbdo.dataType() == "int") {
  105. home1_value_from_DB = fbdo.intData();
  106. Serial.print("home1_value_from_DB = ");
  107. Serial.println(home1_value_from_DB);
  108. }
  109. }
  110. else {
  111. Serial.println(fbdo.errorReason());
  112. }
  113. }
  114. }
  115.  
  116. void write_to_database() {
  117. Serial.printf("Set int... %s\n", Firebase.setInt(fbdo, "/home1", button_pressed_flag) ? "ok" : fbdo.errorReason().c_str());
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement