
Example program using the ESPAT library. Made for BULME Bertl 2017.
Demo Program für mein ESPAT Library für Bulme Bertl 2017. Startet einen WebServer mit zwei Buttons um die LED D10 zu steuern.
main.cpp@2:db40a55d1b0b, 2019-04-04 (annotated)
- Committer:
- EliasN
- Date:
- Thu Apr 04 16:53:22 2019 +0000
- Revision:
- 2:db40a55d1b0b
- Parent:
- 1:f1f79c0e0d15
- Child:
- 3:c2bcc030c8e8
Update for new version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EliasN | 0:617bf6669ab4 | 1 | #include "mbed.h" |
EliasN | 0:617bf6669ab4 | 2 | #include "ESPAT.h" |
EliasN | 0:617bf6669ab4 | 3 | |
EliasN | 0:617bf6669ab4 | 4 | /* |
EliasN | 0:617bf6669ab4 | 5 | Example program using the ESPAT library. |
EliasN | 0:617bf6669ab4 | 6 | Made for BULME Bertl 2017 (LPC11U68) |
EliasN | 0:617bf6669ab4 | 7 | Make sure to edit your wifi login data below |
EliasN | 0:617bf6669ab4 | 8 | # Features: |
EliasN | 0:617bf6669ab4 | 9 | - Led D10 turns on when ready (wifi connected + server listening) |
EliasN | 0:617bf6669ab4 | 10 | - Navigate to the device's ip in your browser and use the buttons to control Led D11 |
EliasN | 0:617bf6669ab4 | 11 | - Navigate to <device ip>/test for a test page that demonstrates that paths work |
EliasN | 0:617bf6669ab4 | 12 | (C)2019 Elias Nestl |
EliasN | 0:617bf6669ab4 | 13 | */ |
EliasN | 0:617bf6669ab4 | 14 | |
EliasN | 2:db40a55d1b0b | 15 | ESPAT esp(P1_0, P0_20, 115200); // Library initialisieren |
EliasN | 0:617bf6669ab4 | 16 | |
EliasN | 0:617bf6669ab4 | 17 | DigitalOut Led0 (P1_18); // D10 |
EliasN | 0:617bf6669ab4 | 18 | DigitalOut Led1 (P2_16); // D11 |
EliasN | 0:617bf6669ab4 | 19 | |
EliasN | 0:617bf6669ab4 | 20 | string htmlPage = "<html>" |
EliasN | 0:617bf6669ab4 | 21 | "<head><title>Led toggler</title></head>" |
EliasN | 0:617bf6669ab4 | 22 | "<body>" |
EliasN | 0:617bf6669ab4 | 23 | "<button onclick=\"fetch('./ledOn')\">Led ON</button>" |
EliasN | 0:617bf6669ab4 | 24 | "<button onclick=\"fetch('./ledOff')\">Led OFF</button>" |
EliasN | 2:db40a55d1b0b | 25 | "</body></html>"; // Website code |
EliasN | 0:617bf6669ab4 | 26 | |
EliasN | 2:db40a55d1b0b | 27 | void handleRequest(int linkId, string path) { // Bei HTTP Request |
EliasN | 2:db40a55d1b0b | 28 | if (path == "/") { // Bei direkter IP |
EliasN | 2:db40a55d1b0b | 29 | esp.httpReply(linkId, "200 OK", htmlPage); // Website senden |
EliasN | 2:db40a55d1b0b | 30 | } else if (path == "/ledOn") { // Bei Pfad ledOn/ledOff, Led ein bzw ausschalten |
EliasN | 0:617bf6669ab4 | 31 | Led1 = 0; |
EliasN | 0:617bf6669ab4 | 32 | esp.httpReply(linkId, "200 OK", "success"); |
EliasN | 0:617bf6669ab4 | 33 | } else if (path == "/ledOff") { |
EliasN | 0:617bf6669ab4 | 34 | Led1 = 1; |
EliasN | 0:617bf6669ab4 | 35 | esp.httpReply(linkId, "200 OK", "success"); |
EliasN | 2:db40a55d1b0b | 36 | } else { // Bei unbekannter Seite 404 antworten |
EliasN | 0:617bf6669ab4 | 37 | esp.httpReply(linkId, "404 Not Found", "404 Not found!"); |
EliasN | 0:617bf6669ab4 | 38 | } |
EliasN | 0:617bf6669ab4 | 39 | } |
EliasN | 0:617bf6669ab4 | 40 | |
EliasN | 0:617bf6669ab4 | 41 | int main() { |
EliasN | 2:db40a55d1b0b | 42 | Led0 = Led1 = 1; // Leds aus |
EliasN | 2:db40a55d1b0b | 43 | esp.resetEsp(); // ESP Reset |
EliasN | 2:db40a55d1b0b | 44 | esp.initWifiAP("ESP", "12345678"); // ESP Access Point Initialiseren |
EliasN | 2:db40a55d1b0b | 45 | Led0 = 0; // LED ein um zu zeigen, dass Bertl aktiv ist |
EliasN | 2:db40a55d1b0b | 46 | esp.initServer(handleRequest); // Request Handler initialisieren |
EliasN | 0:617bf6669ab4 | 47 | } |