Arduino WifiManager — Распечатка SSID в последовательном

#arduino #wifi #wifimanager

#arduino #wi-Fi #WiFiManager, с помощью

Вопрос:

Для этой библиотеки я хочу распечатать SSID, но я получаю сообщение об ошибке, что он его не находит. Я думаю, что я неправильно использую код:

Речь идет об этом фрагменте кода: Serial.println(«Подключен к: «, wm.SSID());

 
#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager

WiFiManager wm; // global wm instance

void setup() {
  WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA AP  
  Serial.begin(115200);
  Serial.setDebugOutput(true);  
  delay(3000);
  Serial.println("n Starting...");

  //Define pinModes
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(TRIGGER_PIN, INPUT);

  // custom menu via array or vector
  // 
  // menu tokens, "wifi","wifinoscan","info","param","close","sep","erase","restart","exit" (sep is seperator) (if param is in menu, params will not show up in wifi page!)
  // const char* menu[] = {"wifi","info","param","sep","restart","exit"}; 
  // wm.setMenu(menu,6);
  std::vector<const char *> menu = {"wifi","wifinoscan","info","close","sep","erase","restart","exit"};
  wm.setMenu(menu);

  // set dark theme
  wm.setClass("invert");


  //set static ip
  // wm.setSTAStaticIPConfig(IPAddress(10,0,1,99), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); // set static ip,gw,sn
  // wm.setShowStaticFields(true); // force show static ip fields
  // wm.setShowDnsFields(true);    // force show dns field always

  // wm.setConnectTimeout(20); // how long to try to connect for before continuing
  //wm.setConfigPortalTimeout(30); // auto close configportal after n seconds
  // wm.setCaptivePortalEnable(false); // disable captive portal redirection
  // wm.setAPClientCheck(true); // avoid timeout if client connected to softap

  // wifi scan settings
  // wm.setRemoveDuplicateAPs(false); // do not remove duplicate ap names (true)
  // wm.setMinimumSignalQuality(20);  // set min RSSI (percentage) to show in scans, null = 8%
  // wm.setShowInfoErase(false);      // do not show erase button on info page
  // wm.setScanDispPerc(true);       // show RSSI as percentage not graph icons
  
  // wm.setBreakAfterConfig(true);   // always exit configportal even if wifi save fails

  bool res;
  res = wm.autoConnect(); // auto generated AP name from chipid
  // res = wm.autoConnect("AutoConnectAP"); // anonymous ap
  //res = wm.autoConnect("AutoConnectAP","password"); // password protected ap

  if(!res) {
    Serial.println("Failed to connect or hit timeout");
    // ESP.restart();
  } 
  else {
    //if you get here you have connected to the WiFi    
    Serial.println("Connected to: ", wm.SSID());
  }
}

void checkButton(){
    if (drd.detectDoubleReset()){
      Serial.println("Resetting WiFi-O-MeteR...");
      digitalWrite(LED_BUILTIN, LOW);
        wm.resetSettings();
        ESP.restart();
      } else {
        Serial.println("No Reset Detected...");
        digitalWrite(LED_BUILTIN, HIGH);
      
      // start portal w delay
      Serial.println("Starting config portal");
      wm.setConfigPortalTimeout(120);
      
      if (!wm.startConfigPortal("OnDemandAP","password")) {
        Serial.println("failed to connect or hit timeout");
        delay(3000);
        // ESP.restart();
      } else {
        //if you get here you have connected to the WiFi
        Serial.println("Connected to: ", wm.SSID());
      }
    }
  }
void loop() {
  checkButton();
  // put your main code here, to run repeatedly:
}
 

Можете получить помощь, чтобы я мог распечатать SSID один раз? Проблема в том, что я постоянно получаю ошибки о том, что функция не может быть использована. Я попытался использовать функцию getWiFiSSID, но она не позволяет мне использовать ее ошибка, которую я получаю: нет соответствующей функции для вызова ‘HardwareSerial::println (const char [15], String)’

Комментарии:

1. Serial.print("Connected to: "); Serial.println(wm.SSID());

2. Я решил это, выполнив Serial.print(WiFi.SSID()); по другому правилу

3. Я сталкиваюсь с той же ошибкой. что вы подразумеваете под «решил это, выполнив Serial.print(WiFi.SSID()); по другому правилу»?

4. Используя его в другой строке