{"id":514,"date":"2019-01-20T15:11:59","date_gmt":"2019-01-20T14:11:59","guid":{"rendered":"https:\/\/thedutchguys.com\/?p=514"},"modified":"2019-01-20T15:12:00","modified_gmt":"2019-01-20T14:12:00","slug":"voeg-wps-toe-aan-je-project","status":"publish","type":"post","link":"https:\/\/thijsbekke.nl\/blog\/2019\/01\/20\/voeg-wps-toe-aan-je-project\/","title":{"rendered":"Voeg WPS toe aan je project"},"content":{"rendered":"<span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Leestijd: <\/span> <span class=\"rt-time\">2<\/span> <span class=\"rt-label rt-postfix\">Minuten<\/span><\/span>\n<p>Op het moment dat je jouw Wifi netwerk kom je er achter hoeveel apparaten je op wifi hebt aangesloten. Voor de meeste apparaten is het geen probleem om dit opnieuw in te stellen. Voor al die DIY projecten ligt het iets anders. Je kan kiezen voor hetzelfde SSID en wachtwoord, maar je kan ook WPS toevoegen aan je wireless projecten. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Door middel van <a rel=\"noreferrer noopener\" aria-label=\"WPS  (opent in een nieuwe tab)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Wi-Fi_Protected_Setup\" target=\"_blank\">WPS <\/a>kan je makkelijker jouw projecten opnieuw verbinden met een wifi netwerk. Voor mijn DIY projecten gebruik ik vaak een NodeMCU. Het voordeel van dit bordje is dat deze gebruik maakt van een ESP8266, maar dan met iets meer output pins.<\/p>\n\n\n\n<p>Bij een succesvolle connectie worden de juiste gegevens opgeslagen in memory.  In je setup kan je dus het volgende gebruiken. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WiFi.begin(WiFi.SSID().c_str(),WiFi.psk().c_str()); <\/code><\/pre>\n\n\n\n<p>Heb je geen verbinding dan roep begin je met het configureren via WPS. Heel simpel gezegd stuurt de router de SSID en de PSK op naar de client, welke deze gegevens dan kan gebruiken om verbinding te maken. De valkuil van dit was dat je de Wifi module station mode moet zetten, anders werkt het WPS niet.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  \/\/ WPS works only in STA (Station mode)\n  WiFi.mode(WIFI_STA);\n  delay(1000);\n  WiFi.beginWPSConfig();\n  \/\/ Another long delay required.\n  delay(3000);<\/code><\/pre>\n\n\n\n<p>Je kan dit in je setup plaatsen of bijvoorbeeld achter een knop. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void setup() {\n\/\/Code\nattachInterrupt(digitalPinToInterrupt(D2), callback, RISING);\n}\n\nvoid callback(){\n  connectWifi();\n}<\/code><\/pre>\n\n\n\n<p>De volledige code vind je <a rel=\"noreferrer noopener\" aria-label=\"hier  (opent in een nieuwe tab)\" href=\"https:\/\/gist.github.com\/thijsbekke\/800def1dcf29812eb59b4e29d0b70bf3\" target=\"_blank\">hier<\/a> of hieronder.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;ESP8266WiFi.h>\n#include &lt;WiFiClient.h>\n#include &lt;ESP8266WebServer.h>\n#ifdef __AVR__\n#include &lt;avr\/power.h>\n#endif\n\nvoid setup() {\n  Serial.begin(115200);\n  Serial.println(\"Starting up.\");\n  \n  attachInterrupt(digitalPinToInterrupt(D2), callback, RISING);\n\n  \/\/Nodemcu saves the last succesfull connection in memory\n  \/\/To delete the saved connection use\n  \/\/WiFi.disconnect();\n  WiFi.begin(WiFi.SSID().c_str(),WiFi.psk().c_str()); \n  \n  \/\/ Long delay required especially soon after power on.\n  delay(4000);\n\n  if (WiFi.status() != WL_CONNECTED) {\n    connectWifi();  \n  }\n  if (WiFi.status() == WL_CONNECTED) {\n    Serial.printf(\"Use this URL to connect: http:\/\/%s\/\", WiFi.localIP().toString().c_str());\n  }\n}\n\nvoid loop() {\n  \/\/ put your main code here, to run repeatedly:\n}\n\nvoid connectWifi() {\n  Serial.println(\"WPS config start\");\n  \/\/ WPS works only in STA (Station mode)\n  WiFi.mode(WIFI_STA);\n  delay(1000);\n  WiFi.beginWPSConfig();\n  \/\/ Another long delay required.\n  delay(3000);\n  if (WiFi.status() == WL_CONNECTED) {\n    \/\/ WPSConfig connected succesfull\n    Serial.printf(\"WPS finished. Connected successfull to SSID '%s'\", WiFi.SSID().c_str());\n    Serial.println(\"\");\n    Serial.printf(\"Use this URL to connect: http:\/\/%s\/\", WiFi.localIP().toString().c_str());\n  }else{\n    Serial.println(\"WPS failed.\");\n  }\n}\n\nvoid callback(){\n  connectWifi();\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Leestijd: <\/span> <span class=\"rt-time\">2<\/span> <span class=\"rt-label rt-postfix\">Minuten<\/span><\/span> Op het moment dat je jouw Wifi netwerk kom je er achter hoeveel apparaten je op wifi hebt aangesloten. Voor de meeste apparaten is het geen probleem om dit opnieuw in te stellen. Voor al die DIY projecten ligt het iets anders. Je kan kiezen voor hetzelfde SSID en wachtwoord, maar je kan ook WPS [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[3,11],"_links":{"self":[{"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/posts\/514"}],"collection":[{"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/comments?post=514"}],"version-history":[{"count":5,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/posts\/514\/revisions"}],"predecessor-version":[{"id":519,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/posts\/514\/revisions\/519"}],"wp:attachment":[{"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/media?parent=514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/categories?post=514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/tags?post=514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}