WiFiManager Integration in ESP32

Hi all,
I have an ESP32 receiving information from another ESP32 equipped with sensors. Below is the code for the receiving ESP:
C++
#include <WiFi.h>
#include <ESPAsyncWebServer.h>

const char* ssid = "XXXX";
const char* password = "XXXX";

const int buttonPin = 25;
const int ledPin =  23;

String message = "0";
String message_serveur = "";
int mem1 = 0;
int mem2 = 0;

AsyncWebServer server(80);

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
  Serial.println(WiFi.localIP());

  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);

  server.on("/get", HTTP_GET, [](AsyncWebServerRequest * request) {
    if (request->hasParam("data"))
    {
      message = request->getParam("data")->value();
    }
    if (message.substring(0,1) == "1") {
      message_serveur = message;
    }
    request->send(200, "text/plain", message_serveur);
  });

  server.begin();
}

void loop() {
  if (message.substring(0,1) == "1") {
    digitalWrite(ledPin, HIGH);
    mem1 = 0;
    if (mem2 == 0){
      Serial.println("Alarm");
      String num_alarm= message.substring(7,14);
      Serial.println(num_alarm);
      String voltage= message.substring(2,6);
      Serial.print(voltage);
      Serial.println(" v");
      mem2 = 1;
    }
  }
  if (digitalRead(buttonPin) == LOW) {
    delay(100);
    if (digitalRead(buttonPin) == LOW) {
      digitalWrite(ledPin, LOW);
      if (mem1 == 0) {
        Serial.println("Reset");
        mem1 = 1;
        mem2 = 0;
      }
    }
  }
}

It works, but I have to hardcode the SSID and password in the program. I would like to integrate WiFiManager to be able to select a network at startup. Is it possible, and how should I proceed?
Was this page helpful?