Allereerst is er het verhaal van Tjalling die er mechanisch een mooie oplossing van heeft gemaakt, zie https://www.pe1rqm.nl/wifi-vossenjacht- ... t-esp8266/
Het ding van Tjalling maakt alleen een wifi access point. Pleun van de Burgemeester Herman Wittegroep (ik ben z'n roepletters kwijt ?!?) heeft de code eens omgehacked dat het ding werkt als captive portal: met je telefoon maak je contact, je krijgt op je telefoon een vraag en bij een goed antwoord krijg je een aanwijzing voor de volgende post.
Recent ben ik met die ESP dingen voor een ander project aan het knutselen geweest en toen kwam ik achter dat er bij die ESP dingen ook een ontwikkeling is geweest: je kunt je ESP code nu aanpassen zodat je daarna updates via wifi kunt sturen ("OTA updates")
En dat is fijn, want het was nu zo dat als ik er nieuwe vragen in moest programmeren ik niet alleen de code aan moest passen, maar ook de vosjes moest demonteren om via een USB kabel ze opnieuw te programmeren. Met OTA maak je met je PC contact en upload je de nieuwe code (met gewijzigde vraag) eenvoudig over wifi, de boel hoeft niet meer uit elkaar.
Je moet de code daarvoor enigszins wijzigen, en daarna kun je het spel aanpassen door met je laptop via verbinding te maken met een vosje en dan vanuit de Arduino IDE de code met de gewijzigde vraag te uploaden. Geen gedoe meer met USB kabels. En 't kan beveiligd worden met een wachtwoord zodat een wijsneus niet hetzelfde probeert. (de eerste keer moet je nog wel met USB aan de bak helaas)
Dit "werkt al" met de kleine ESP01 (waarmee ik mijn vosjes gemaakt heb) maar ook met de D1 mini en grotere ESP's. De D1 mini zou nu mijn voorkeur hebben omdat er een spannings-stabilisator op de print zit, maar zijn wel duurder. Zoizo zijn de prijzen gestegen en is EUR 1.80 wel een beetje verleden tijd
Code: Selecteer alles
***************
*** 8,13 ****
--- 8,16 ----
#include <ESP8266WiFi.h>
#include "./DNSServer.h" // Patched lib
#include <ESP8266WebServer.h>
+ #include <ESP8266mDNS.h>
+ #include <WiFiUdp.h>
+ #include <ArduinoOTA.h>
const byte DNS_PORT = 53; // Capture DNS requests on port 53
***************
*** 82,87 ****
--- 85,91 ----
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
WiFi.softAP("Avondspel");
+ ArduinoOTA.setPassword((const char *)"GeheimWachtWoord");
// if DNSServer is started with "*" for domain name, it will reply with
// provided IP to all DNS request
***************
*** 93,103 ****
--- 97,109 ----
webServer.send(200, "text/html", vraagHTML);
});
webServer.begin();
+ ArduinoOTA.begin();
}
void loop() {
dnsServer.processNextRequest();
webServer.handleClient();
+ ArduinoOTA.handle();
}