Need help with ESP8266 Wifi/webserver conversion to ESP32
Posted: Fri Aug 17, 2018 7:54 am
Hello,
I am quite new to the ESP32 and was using ESP8266 chip before.
I found an Arduino project done on ESP8266 that I want to use on an ESP32 Thing (sparkfun board).
I started to convert the code with ESP32 libraries but I'm stuck on the Client handle method.
Here is the source code (ESP8266) : https://cassiopeia.hk/lantern/
I removed the "mode" management code part (no need for auto animation without webserver)
Here is my code (in progress) :
Code elements preventing compilation ==> need to be "converted"/corrected
error: 'class WiFiServer' has no member named 'on'
error: 'class WiFiServer' has no member named 'arg'
error: 'class WiFiServer' has no member named 'send'
Any help is welcome
I am quite new to the ESP32 and was using ESP8266 chip before.
I found an Arduino project done on ESP8266 that I want to use on an ESP32 Thing (sparkfun board).
I started to convert the code with ESP32 libraries but I'm stuck on the Client handle method.
Here is the source code (ESP8266) : https://cassiopeia.hk/lantern/
I removed the "mode" management code part (no need for auto animation without webserver)
Here is my code (in progress) :
Code: Select all
#include <WiFi.h>
#include <DNSServer.h>
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, 12, NEO_GRB + NEO_KHZ800);
const byte DNS_PORT = 53;
IPAddress apIP(192, 168, 1, 1);
DNSServer dnsServer;
WiFiServer server(80);
const byte brightness = 120;
String responseHTML = ""
"<!DOCTYPE html><html><head><title>Neopixel control</title><meta name='mobile-web-app-capable' content='yes' />"
// [...] Removed HTML code in order to shorten the displayed code
"</script></html>";
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
strip.setBrightness(brightness); // 0-255 range
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
WiFi.softAP("RGB CaptivePortal");
// if DNSServer is started with "*" for domain name, it will reply with
// provided IP to all DNS request
dnsServer.start(DNS_PORT, "*", apIP);
server.on("/", handleRGB);
server.begin();
Serial.begin(115200);
Serial.println("Server DNS started");
Serial.println();
Serial.print("IP address: ");
Serial.println(WiFi.softAPIP());
introRed(); // knightrider
strip.setPixelColor(0, 255, 0, 0);
strip.setPixelColor(3, 255, 0, 0);
strip.setPixelColor(4, 255, 0, 0);
strip.setPixelColor(7, 255, 0, 0);
strip.show();
}
void handleRGB() {
Serial.println("handle RGB..");
server.send(200, "text/html", responseHTML);
String red = server.arg(0); // read RGB arguments
String green = server.arg(1);
String blue = server.arg(2);
allRGB(255 - red.toInt() / 4, 255 - green.toInt() / 4, 255 - blue.toInt() / 4);
}
void loop() {
dnsServer.processNextRequest();
server.available();
// Missing the client management ?
}
void introRed() {
for (int u = 0; u < 3; u++) {
for (int i = 0; i < strip.numPixels(); i++) {
oneRed(i);
delay(100);
}
for (int i = strip.numPixels() - 2; i > 0 ; i--) {
oneRed(i);
delay(100);
}
}
oneRed(strip.numPixels()); // switch all off (switch on only 8, but beyond range)
}
void oneRed(int u) {
for (int i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, 0, 0, 0);
}
strip.setPixelColor(u, 255, 0, 0);
strip.show();
}
void allRGB(int r, int g, int b) {
for (int i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, r, g, b);
}
strip.show();
}
error: 'class WiFiServer' has no member named 'on'
Code: Select all
server.on("/", handleRGB);
Code: Select all
String red = server.arg(0); // read RGB arguments
String green = server.arg(1);
String blue = server.arg(2);
Code: Select all
server.send(200, "text/html", responseHTML);
Any help is welcome