Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. // Necessary Library for this project
  2. #if defined(ESP8266)
  3. #include <ESP8266WiFi.h> //ESP8266 Core WiFi Library
  4. #else
  5. #include <WiFi.h> //ESP32 Core WiFi Library
  6. #endif
  7.  
  8. //Name of the wifi network whom we are supposed to track
  9. //nome da rede Wifi que o ESP irá buscar
  10. const char* SSID = "casa";
  11.  
  12.  
  13. #define RELAY_ON HIGH
  14. #define RELAY_OFF LOW
  15.  
  16. // Relay pin number
  17. //pino do RELAY
  18. #define RELAY 5
  19. //dB minimo para identificar a rede
  20. #define MINdB -20
  21.  
  22.  
  23. // Return RSSI(Received Signal Strength Indicator) or 0 if target SSID not found
  24. //retorna o RSSI da rede buscada (caso não ache, retorna zero)
  25. int32_t getRSSI(const char* target_ssid) {
  26. byte available_networks = WiFi.scanNetworks(); //escaneia as redes
  27.  
  28. for (int network = 0; network < available_networks; network++) {
  29. // Serial.print(WiFi.SSID(network)); Serial.print(" | "); Serial.println(WiFi.RSSI(network));
  30. if (WiFi.SSID(network).compareTo(target_ssid) == 0) { //compara se alguma das redes encontradas é a que desejamos
  31. return WiFi.RSSI(network); //retorna o SSID da rede
  32. }
  33. }
  34. return 0;
  35. }
  36.  
  37. void setup() {
  38. Serial.begin(115200);
  39. pinMode(RELAY, OUTPUT); // Initialize the relay pin as an output.
  40. }
  41.  
  42. void loop() {
  43. int32_t rssi = getRSSI(SSID); //busca o RSSI da rede desejada
  44.  
  45. // For debugging purpose only
  46. Serial.print("Signal strength: ");
  47. Serial.print(rssi);
  48. Serial.println("dBm");
  49.  
  50. //se o RSSI for maior que o mínimo desejado e o RSSI é diferente de zero (ou seja, encontramos a rede desejada)
  51. if (rssi > (MINdB) && rssi != 0)
  52. {
  53. digitalWrite(RELAY, RELAY_ON); //liga o relé
  54. Serial.println("ON");
  55. }
  56. else
  57. {
  58. digitalWrite(RELAY, RELAY_OFF); //desliga o relé
  59. Serial.println("OFF");
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement