Hallo zusammen,
ich wollte auch mal was mit'm ESP32 machen.
Also mal ganz blauäugig ein Webserver-Beispiel kopiert und Auf den ESP
geflasht.
Vorab kam allerdings:
1 | Building in release mode
|
2 | Compiling .pio\build\az-delivery-devkit-v4\src\main.cpp.o
|
3 | src\main.cpp: In function 'void setup()':
|
4 | src\main.cpp:39:18: error: 'handle_root' was not declared in this scope
|
5 | server.on("/", handle_root);
|
6 | ^
|
7 | *** [.pio\build\az-delivery-devkit-v4\src\main.cpp.o] Error 1
|
macht ja prinzipiell auch Sinn, weil der Funktionsprototyp fehlt,
welchen man i.A. in der Main.h definiert? Also habe ich
void handle_root();
unterhalb der Variablendeklaration eingefügt, compiliert und
funktioniert.
Meine Frage:
Weshalb lief das Beispiel aus og Link beim Autor ohne *.h-Datei?
oder: warum brauch ich in der Arduino-IDE keine Prototypen definieren?
noch anders gefragt: kann ich PlatformIO so konfigurieren, dass es
ähnlich agiert, sodass ich eben keine "h.datei" brauche? kann man das
irgendwo einstellen?
1 | VSCODE_Version:
|
2 | Version: 1.55.2
|
3 | OS: Windows_NT x64 10.0.19042
|
4 |
|
5 | PlatformIO:
|
6 | Core 5.1.1·Home 3.3.4
|
7 |
|
8 | standardkonfiguration:
|
9 | env:az-delivery-devkit-v4]
|
10 | platform = espressif32
|
11 | board = az-delivery-devkit-v4
|
12 | framework = arduino
|
13 | upload_port = COM5
|
14 | monitor_speed = 115200
|
Link zum Beispiel und kurzer getesteter Code:
https://www.hackster.io/electropeak/create-a-web-server-w-esp32-tutorial-a9a392
1 | #include <Arduino.h>
|
2 | #include <WiFi.h>
|
3 | #include <WebServer.h>
|
4 |
|
5 |
|
6 | const char* ssid = "FRITZ!Box 7412";
|
7 | const char* password = "Geheim_1234_öüä";
|
8 | WebServer server(80); // Object of WebServer(HTTP port, 80 is defult)
|
9 | // HTML & CSS contents which display on web server
|
10 | String HTML = "<!DOCTYPE html>\
|
11 | <html>\
|
12 | <body>\
|
13 | <h1>My First Web Server with ESP32 - Station Mode 😊</h1>\
|
14 | </body>\
|
15 | </html>";
|
16 |
|
17 | ///
|
18 | void handle_root(); //<== von mir eingefügt
|
19 | ///
|
20 |
|
21 | void setup()
|
22 | {
|
23 | Serial.begin(115200);
|
24 | Serial.println();
|
25 |
|
26 | WiFi.begin(ssid, password);
|
27 |
|
28 | Serial.print("Connecting");
|
29 | while (WiFi.status() != WL_CONNECTED) {
|
30 | delay(500);
|
31 | Serial.print(".");
|
32 | }
|
33 | Serial.println();
|
34 | Serial.print("Connected, IP address: ");
|
35 | Serial.println(WiFi.localIP());
|
36 | Serial.print("Got IP: ");
|
37 | Serial.println(WiFi.localIP()); //Show ESP32 IP on serial
|
38 | server.on("/", handle_root);
|
39 | server.begin();
|
40 |
|
41 | Serial.println("HTTP server started");
|
42 | delay(100);
|
43 | }
|
44 | void loop() {
|
45 | server.handleClient();
|
46 | }
|
47 |
|
48 | void handle_root() {
|
49 | server.send(200, "text/html", HTML); // Handle root url (/)
|
50 | }
|
Herzlichen Dank, falls jemand was dazu sagen kann
Äxl