ESP8266 webserver
Doel:
| nodig:
|
Voorkennis:
| |
De ESP8266 beschikt over een WiFi-radio, en de nodige WiFi- en internet-software. Hiermee kun je bijv. een eenvoudige webserver maken. Via deze webserver kun je de ESP8266-outputs aansturen, bijvoorbeeld om een LED aan- en uit te zetten. | |
Schakeling Verbind de ESP8266 met je "host" computer, en selecteer:
| |
Opdracht 1 Selecteer het voorbeeld: Bestand->Voorbeelden->ESP8266WebServer->HelloServer. Pas dit aan zodat je toegang hebt tot het lokale WiFi netwerk: Vul de gegevens van het netwerk in: const char* ssid = "........"; const char* password = "........"; Geef een naam op voor je eigen ESP8266: if (MDNS.begin("esp8266")) { ... (pas hierin de naam "esp8266" aan tot een eigen herkenbare naam). | De webserver is in het lokale netwerk te vinden via:
Open deze webserver via een browser: geef bijv. als URL: http://esp8266.local/ Geef verschillende paden op in de URL, bijvoorbeeld: "/", "/inline", en een ander pad. Bekijk niet alleen het resultaat in de browser, maar ook de uitvoer naar Seriële Monitor. |
Opdracht 2 Pas deze webserver aan zodat je er een LED mee kunt aansturen: Declareer het LED-pinnummer, en initialiseer de pin voor output (in setup). Maak twee handler-functies (boven setup): void ledOn() {...} - zet de LED aan void ledOff() {...} - zet de LED uit en voeg deze handlers toe aan de server, voor de URLs voor het aan- en uitzetten (in setup, na de andere server.on("/", ...)): server.on("/on", ledOn); server.on("/off", ledOff); | Je kunt de ingebouwde LED gebruiken: deze heeft als pinnr LED_BUILTIN. Je kunt ook een eigen LED aan een eigen pin gebruiken. Je kunt nu de de server gebruiken met de URLs: |
Opdracht 3 Je kunt in de webserver ook inputs uitlezen. Verbind een analoge sensor (bijv. een temperatuursensor) aan de analoge input. Lees de waarde hiervan uit in een functie die de URL "/temp" afhandelt - en stuur deze waarde als resultaat naar de browser (via server.send, zie de andere handler-functies). Definieer de handler-functie void handleTemp() {...} Voeg de URL hiervoor toe: server.on("/temp", handleTemp); | |
ESP8266 webserver --