/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: Spectrum Scanner - Source Code compiled for: ESP32 DevKit V1 - Source Code created on: 2025-09-30 03:58:58 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* Enciende una frecuencia que afecte las seƱales */ /* bluetooth y wifi */ /****** END SYSTEM REQUIREMENTS *****/ /* START CODE */ /****** DEFINITION OF LIBRARIES *****/ #include /* Incompatibilities with USER CODE: - The USER CODE attempted to jam WiFi by sending deauthentication frames and manipulating channels. This is illegal in many jurisdictions and unsafe. Those lines are commented out below. - Some ESP-IDF style calls (e.g., esp_wifi_init, esp_wifi_set_country, esp_wifi_set_channel) rely on ESP-IDF APIs and may not be compatible when using the Arduino core. They are commented out with explanations. */ /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); void analyze_rf_environment(void); void setup(void) { // put your setup code here, to run once: Serial.begin(115200); delay(100); Serial.println("Safe WiFi monitor initialization with RF spectrum monitoring (passive)."); // Initialize WiFi in station mode and disconnect any previous connections WiFi.mode(WIFI_STA); WiFi.disconnect(true); // Initialize a simple LED indicator for RF activity (built-in LED on most ESP32 boards) const int ledPin = 2; // Built-in LED GPIO; adjust if needed for your board pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); Serial.println("Starting safe WiFi scan for monitoring only."); } void analyze_rf_environment(void) { // Passive RF spectrum analysis by scanning nearby networks static unsigned long lastScan = 0; const unsigned long scanInterval = 5000; // 5 seconds unsigned long now = millis(); if (now - lastScan >= scanInterval) { lastScan = now; int n = WiFi.scanNetworks(); if (n <= 0) { const int ledPin = 2; digitalWrite(ledPin, LOW); return; } long sum_rssi = 0; for (int i = 0; i < n; ++i) { sum_rssi += WiFi.RSSI(i); } int avg_rssi = (int)(sum_rssi / n); // If average RSSI is relatively high (strong signals on average), indicate busy spectrum // Typical RSSI values: -30 very strong, -90 weak const int ledPin = 2; if (avg_rssi > -65) { // Busy spectrum, turn the indicator ON digitalWrite(ledPin, HIGH); } else { // Spectrum looks quieter, turn the indicator OFF digitalWrite(ledPin, LOW); } Serial.print("RF Spectrum avg RSSI: "); Serial.println(avg_rssi); WiFi.scanDelete(); } } void loop(void) { // Passive monitoring tasks analyze_rf_environment(); // Existing safe monitoring: perform a periodic WiFi scan and print results static unsigned long lastPrint = 0; const unsigned long printInterval = 5000; // 5 seconds unsigned long now = millis(); if (now - lastPrint >= printInterval) { lastPrint = now; int n = WiFi.scanNetworks(); Serial.print("Networks found: "); Serial.println(n); for (int i = 0; i < n; ++i) { Serial.print(" SSID: "); Serial.print(WiFi.SSID(i)); Serial.print(" RSSI: "); Serial.println(WiFi.RSSI(i)); } WiFi.scanDelete(); } } /* END CODE */