Arduino IDE ESP8266 WPS Push Button

Das könnte Dich auch interessieren...

8 Antworten

  1. Christof sagt:

    Super! Vielen Dank! Hat mit meiner Fritze 7490 auf Anhieb geklappt.

  2. Wolfgang sagt:

    Hi,

    leider kann ich mich mit meine Fritz-Box 7270 nicht verbinden. Bekomme folgende Meldungen:

    Not connected
    Router : Press the WPS button.
    ESP : Press WPS Button and hold it 4 sec

    ¢@*rjrA(¡‹K5‹PvXKz~‡êÑ*¡Ká��øÉ*E,±­±©ÄPª±—¡{þA¬!�þn­*e¢ÈèÉîA,P’áÝnA,P’¡PkPš[Í/ÑáESP8266- WPS Button Test

    BEGINN WPS

    wifi_wps_enable
    wps scan
    build public key start
    Hold WPS Button 4 Sec.
    Hold WPS Button 4 Sec.
    Hold WPS Button 4 Sec.
    Hold WPS Button 4 Sec.
    build public key finish
    f r0, wps discover [NoAccessWR]
    scandone
    WPS: neg start
    f r0, scandone
    state: 0 -> 2 (b0)
    state: 2 -> 3 (0)
    state: 3 -> 5 (10)
    add 0
    aid 5
    cnt
    state: 5 -> 2 (2c0)
    rm 0

     

    Kann mir hier jemand helfen?

  3. Maik sagt:

    Hallo Ralf,

    ich habe ein ESP32 Controller, hier gibt es die Funktion beginWPSConfig nicht, kannst Du mir hierbei helfen.

    Im Voraus vielen Dank für Deine Bemühungen.

  4. Yannick sagt:

    Hi,
    danke für dieses Beispielcode. Es klappt sehr gut bei mir. Ich habe eine Frage: ist es möglich, dass ich ein code für AP-Button integriere? Mein Ziel ist ein Möglichkeit für beide Modus zu realisieren.
    Z.B.: 1- wenn ich ein „AP-Button“ drücke dann ist mein esp automatisch mit AP verbunden.
    2- Wenn ich ein WPS Button drücke dann ist mein esp via WPS verbunden.

    Ich hoffe, dass jemand mir helfen kann.

  5. Jeroen sagt:

    I created some code to use the flash button to connect to a wps access point.

    When the flash button is pressed for longer than 3 seconds, the WPS sequence is initiated.

    Also the blue led is used for status:
    Short blinks: Disconnected
    Fast blinks: Trying to connect to WPS station
    Long blinks: Connected

    #include
    #include

    extern „C“ {
    #include „user_interface.h“
    }

    #define LED D4
    #define FLASHBUTTON D3

    int previouswifistatus = 0;
    os_timer_t myTimer;
    WiFiUDP udp;

    int ledontime = 2;
    int ledofftime = 100;
    int ledtimer = 0;
    int flashbuttontimer = 0;
    int flashbuttontime = 0;

    int sendpackettimer = 0;
    int wifitimer = 0;
    bool flashbuttonstate = 0;

    void timerInterrupt(void *pArg) {
    if (ledtimer == ledontime){
    digitalWrite(LED, 1);
    }

    if (ledtimer >= (ledontime+ledofftime)){
    digitalWrite(LED, 0);
    ledtimer = 0;
    }

    if (flashbuttonstate == 1)
    {
    flashbuttontimer++;
    }

    ledtimer++;
    sendpackettimer++;
    wifitimer++;
    }

    void flashbutton()
    {
    if (digitalRead(FLASHBUTTON) == 0)
    {
    flashbuttonstate = 1;
    }
    else
    {
    flashbuttonstate = 0;
    flashbuttontime = flashbuttontimer;
    flashbuttontimer = 0;
    }
    }

    void setup() {
    // put your setup code here, to run once:
    Serial.begin(115200);
    Serial.println(„\n\n\n\nESP8266 Initializing…“);
    previouswifistatus = WiFi.status();
    digitalWrite(LED, 1);
    pinMode(LED, OUTPUT);
    pinMode(FLASHBUTTON, INPUT);
    os_timer_setfn(&myTimer, timerInterrupt, NULL);
    os_timer_arm(&myTimer, 10, true);

    WiFi.mode(WIFI_STA);
    delay(1000);
    // Called to check if SSID and password has already been stored by previous WPS call.
    // The SSID and password are stored in flash memory and will survive a full power cycle.
    // Calling („“,““), i.e. with blank string parameters, appears to use these stored values.
    WiFi.begin(„“,““);
    // Long delay required especially soon after power on.
    delay(4000);

    attachInterrupt(FLASHBUTTON, flashbutton, CHANGE);
    Serial.println(„ESP8266 Initialized, WIFI Disconnected!“);
    }

    void loop() {
    int wifistatus = WiFi.status();
    if (wifistatus == WL_DISCONNECTED)
    {
    // Set led to short blinks
    ledontime = 2;
    ledofftime = 150;

    // If wifistatus has changed initialize timer to reconnect
    if (previouswifistatus != wifistatus)
    {
    Serial.println(„WIFI Disconnected…“);
    sendpackettimer = 3000;
    }

    // After 30 seconds retry to make connection
    if (sendpackettimer >= 3000)
    {
    sendpackettimer = 0;
    Serial.println(„Trying to reconnect WIFI…“);
    WiFi.begin(„“,““);
    }
    }

    if (wifistatus == WL_CONNECTED)
    {
    // Set led to slow blinking
    ledontime = 390;
    ledofftime = 10;

    if (previouswifistatus != WiFi.status())
    {
    Serial.println(„Connected to WIFI Access Point!“);
    Serial.println(WiFi.localIP());
    Serial.println(WiFi.SSID());
    Serial.println(WiFi.macAddress());
    }

    if (sendpackettimer >= 1000)
    {
    sendpackettimer = 0;
    Serial.print(„WIFI Signal Strenght=“);
    Serial.print(WiFi.RSSI());
    Serial.println(„dBm.“);

    Serial.println(„Sending UDP Packet….“);
    IPAddress multicastIp(227,0,0,1);
    udp.beginPacketMulticast(multicastIp, 1900, WiFi.localIP());
    udp.write(„macaddress=“);
    udp.write(WiFi.macAddress().c_str());
    udp.write(„\r\ntemperature1.address=“);
    udp.write(„\r\ntemperature1.value=“);
    udp.endPacket();
    }
    }

    // If flashbutton is pressed longer than 3 seconds, try to make WPS connection
    if (flashbuttontimer > 300)
    {
    // Set led to fast blinking
    ledontime = 5;
    ledofftime = 5;
    Serial.println(„Long pushbutton detected…“);
    Serial.println(„Initializing WIFI connection by WPS…“);
    WiFi.beginWPSConfig();
    }

    // If flashbutton is pressed shorten than 3 seconds print a message
    if ((flashbuttontime > 0) && (flashbuttontime < 300))
    {
    Serial.println("Short pushbutton detected…");
    flashbuttontime = 0;
    }

    previouswifistatus = wifistatus;
    }

  6. gmp sagt:

    Hallo, ich habe das mal mit einem NodeMCU v3 mit dem CH340 Chip ausprobieren wollen, doch leider klappt es nicht. Der serielle Monitor zeigt anfänglich auch alle Infos an, doch der Push Button zeigt keinerlei Reaktion.

  7. Hans-Willi sagt:

    Nach dem ich Tagelang auf Google gesucht habe,
    hier die Lösung.

    Mit meiner Fritz-box 7412 VDSL geht Push Button.

    Danke an Ralf.

  8. Geberl sagt:

    Oh Mann, alle haben gesagt geht nicht!!! Habe ca. 30 Beispiele aus dem Netz getestet.
    Nur dieses hier funktioniert wirklich.
    Danke Arduinoclub.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.