#include "ESP8266WiFi.h" // Declare Variable /////////////////////////////////////////////////////// char GPIO0; // GPIO0 -> Sonoff Basic - Button char GPIO12; // GPIO12 -> Sonoff Basic - Relais char GPIO13; // GPIO13 -> Sonoff Basic - green LED char TRIGG1; // Button Trigger int time1; int time2; int time3; ADC_MODE(ADC_VCC); void SCAN(){ Serial.println(); Serial.println(); Serial.println("***********************************"); Serial.println("***********************************"); // Chip-ID Serial.println(); Serial.print("Chip-ID : 0x"); Serial.println(ESP.getChipId(), HEX); // Check VCC and Heap Memory Serial.print("Voltage : "); Serial.print((float)ESP.getVcc() / 1000); Serial.println(" V"); Serial.print("Real Memory: "); Serial.print(ESP.getFlashChipRealSize() / 1024); Serial.println(" kB"); Serial.print("Flash Memory: "); Serial.print(ESP.getFlashChipSize() / 1024); Serial.println(" kB"); Serial.print("Free Memory: "); Serial.print((float)ESP.getFreeHeap() / 1024); Serial.println(" kB"); Serial.println(); // WiFi.scanNetworks will return the number of networks found Serial.println("Start Network Scan ..."); int n = WiFi.scanNetworks(); if (n == 0) Serial.println("no Networks found"); else { Serial.print(n); Serial.println(" Networks found"); Serial.println("================"); for (int i = 0; i < n; ++i) { // Print SSID and RSSI for each network found Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*"); } Serial.println("Scan done"); Serial.println(); } } void setup() { // Configure GPIO ////////////////////////////////////////////////////// pinMode(0, INPUT_PULLUP); pinMode(13, OUTPUT); pinMode(12, OUTPUT); Serial.begin(115200); delay(100); // Set WiFi to station mode and disconnect from an AP if it was previously connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); digitalWrite(13, HIGH); Serial.println("Setup done"); time1 = millis() - 7000; time3 = millis(); } void loop() { GPIO0 = digitalRead(0); GPIO13 = digitalRead(13); if (GPIO0 == LOW and GPIO13 == LOW and TRIGG1 == LOW) { digitalWrite(13, HIGH); TRIGG1 = HIGH; } if (GPIO0 == LOW and GPIO13 == HIGH and TRIGG1 == LOW) { digitalWrite(13, LOW); TRIGG1 = HIGH; } if (GPIO0 == HIGH) { TRIGG1 = LOW; } time2 = millis(); if (time2 - time1 > 7000){ SCAN(); time1 = millis(); } if (time2 - time3 > 500){ Serial.print("."); time3 = millis(); } }