Advertisement
safwan092

Untitled

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