While the standard ESPAsyncWebServer does work on the ESP32, the author does not support the Arduino IDE for it's use, preferring PlatformIO. I want to stay with the ugly beast because it makes the code accessible to a wider range of people (Ok, really I just don't want to learn Yet. Another. IDE). Specifically, the the examples for web servers do not work in the Arduino IDE. However, this page provides a series of examples (See "Related Posts") which document how to make it work.
https://techtutorialsx.com/2018/08/14/esp32-async-http-web-server-websockets-introduction/
e.g. a simple web server via access point:
#include "WiFi.h"
#include "ESPAsyncWebServer.h"
const char *ssid = "MyESP32AP";
const char *password = "testpassword";
AsyncWebServer server(80);
void setup(){
Serial.begin(115200);
WiFi.softAP(ssid, password);
Serial.println();
Serial.print("IP address: ");
Serial.println(WiFi.softAPIP());
server.on("/hello", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(200, "text/plain", "Hello World");
});
server.begin();
}
void loop(){}
I'm assuming the Async Web Server is still a better option than the built in web server which requires polling (VERY unstable if you do anything of note in the main loop). Please let me know if you have a better option.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
I did not try yet but it is very much possible to use ESPAsyncWebServer in Arduino.
https://github.com/penfold42/ESPixelBoard
This project used the lib and is built in Arduino IDE.
Are you sure? yes | no
So what about the people out there who just have the Arduino IDE and ESP board support files? Can I easily move the code I write in Platform IO back into the Arduino IDE for them? I don't want to put a barrier in front of people who want to just load the code and maybe tweak a few settings. This is my major concern because the incompatibility is already obvious with the example code from the Async Web server library.
Are you sure? yes | no
I agree with you. But I highly recommend to try PlatformIO. First of all, it's a real IDE, and you can navigate with Ctrl+click through classes. And then I find it much better to keep your dependencies, since they have a piolibdeps per project (No more libraries in 3 different folders like Arduino that drives me crazy).
And it's not so difficult to get to use it, took me about 1/ 2 hours to get started and compile something.
Will try this when I have some time at home. For sure there is a way to make it work in Arduino if you can get the dependencies right.
Are you sure? yes | no
I second that. It's actually more of a plugin to Atom or VSCode, which are capable IDEs in their own rite, and are good for all sorts of things. I use VSCode with PlatformIO.
And, because PlatformIO can use Arduino libraries and seamlessly integrates with everything Arduino does, it's better than the actual Arduino IDE. Also a kind of intermediate step to using not-Arduino (and with it, better memory / sleep / power management and all sorts of power options, if you want them).
It really is what I recommend everyone use for Arduino development.
Are you sure? yes | no
Is it fairly easy to publish libraries for PlatformIO? It definitely sounds useful, and maybe I could use that to make my Lasertag project easier to hack, but only if homebrew libraries are easy to add ^^
I'm working with the raw ESP IDF and Eclipse right now, which, although surprisingly comfortable and well documented, I can imagine might be a bit of a hassle for others to install ^^'
Are you sure? yes | no