
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@3:c2bcc030c8e8, 2019-04-04 (annotated)
- Committer:
- EliasN
- Date:
- Thu Apr 04 16:56:12 2019 +0000
- Revision:
- 3:c2bcc030c8e8
- Parent:
- 2:db40a55d1b0b
Fix comments
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 | 3:c2bcc030c8e8 | 7 | Opens an Access Point called ESP with the password 12345678 |
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 | (C)2019 Elias Nestl |
EliasN | 0:617bf6669ab4 | 12 | */ |
EliasN | 0:617bf6669ab4 | 13 | |
EliasN | 2:db40a55d1b0b | 14 | ESPAT esp(P1_0, P0_20, 115200); // Library initialisieren |
EliasN | 0:617bf6669ab4 | 15 | |
EliasN | 0:617bf6669ab4 | 16 | DigitalOut Led0 (P1_18); // D10 |
EliasN | 0:617bf6669ab4 | 17 | DigitalOut Led1 (P2_16); // D11 |
EliasN | 0:617bf6669ab4 | 18 | |
EliasN | 0:617bf6669ab4 | 19 | string htmlPage = "<html>" |
EliasN | 0:617bf6669ab4 | 20 | "<head><title>Led toggler</title></head>" |
EliasN | 0:617bf6669ab4 | 21 | "<body>" |
EliasN | 0:617bf6669ab4 | 22 | "<button onclick=\"fetch('./ledOn')\">Led ON</button>" |
EliasN | 0:617bf6669ab4 | 23 | "<button onclick=\"fetch('./ledOff')\">Led OFF</button>" |
EliasN | 2:db40a55d1b0b | 24 | "</body></html>"; // Website code |
EliasN | 0:617bf6669ab4 | 25 | |
EliasN | 2:db40a55d1b0b | 26 | void handleRequest(int linkId, string path) { // Bei HTTP Request |
EliasN | 2:db40a55d1b0b | 27 | if (path == "/") { // Bei direkter IP |
EliasN | 2:db40a55d1b0b | 28 | esp.httpReply(linkId, "200 OK", htmlPage); // Website senden |
EliasN | 2:db40a55d1b0b | 29 | } else if (path == "/ledOn") { // Bei Pfad ledOn/ledOff, Led ein bzw ausschalten |
EliasN | 0:617bf6669ab4 | 30 | Led1 = 0; |
EliasN | 0:617bf6669ab4 | 31 | esp.httpReply(linkId, "200 OK", "success"); |
EliasN | 0:617bf6669ab4 | 32 | } else if (path == "/ledOff") { |
EliasN | 0:617bf6669ab4 | 33 | Led1 = 1; |
EliasN | 0:617bf6669ab4 | 34 | esp.httpReply(linkId, "200 OK", "success"); |
EliasN | 2:db40a55d1b0b | 35 | } else { // Bei unbekannter Seite 404 antworten |
EliasN | 0:617bf6669ab4 | 36 | esp.httpReply(linkId, "404 Not Found", "404 Not found!"); |
EliasN | 0:617bf6669ab4 | 37 | } |
EliasN | 0:617bf6669ab4 | 38 | } |
EliasN | 0:617bf6669ab4 | 39 | |
EliasN | 0:617bf6669ab4 | 40 | int main() { |
EliasN | 2:db40a55d1b0b | 41 | Led0 = Led1 = 1; // Leds aus |
EliasN | 2:db40a55d1b0b | 42 | esp.resetEsp(); // ESP Reset |
EliasN | 2:db40a55d1b0b | 43 | esp.initWifiAP("ESP", "12345678"); // ESP Access Point Initialiseren |
EliasN | 2:db40a55d1b0b | 44 | Led0 = 0; // LED ein um zu zeigen, dass Bertl aktiv ist |
EliasN | 2:db40a55d1b0b | 45 | esp.initServer(handleRequest); // Request Handler initialisieren |
EliasN | 0:617bf6669ab4 | 46 | } |