Soft hozzáférési pont (Soft Access Point)

Az alábbi példa bemutatja, hogyan konfigurálható az ESP8266, hogy soft hozzáférési pont módban fusson, hogy a Wi-Fi állomások csatlakozhassanak hozzá. A soft-AP által létrehozott Wi-Fi hálózatot a konfiguráció során beállított SSID azonosítja. A hálózatot jelszóval lehet védeni. A hálózat nyitott is lehet, ha a konfiguráció során nincs beállítva jelszó.


Tartalomjegyzék


A vázlat

A soft-AP beállítása ESP8266-tal pár sornyi kóddal elvégezhető.


#include <ESP8266WiFi.h>

void setup()
{
  Serial.begin(115200);
  Serial.println();

  Serial.print("Setting soft-AP ... ");
  boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP");
  if(result == true)
  {
    Serial.println("Ready");
  }
  else
  {
    Serial.println("Failed!");
  }
}

void loop()
{
  Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum());
  delay(3000);
}


Hogyan kell használni?

A boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") sorban található pass-to-soft-AP-ot módosítsa valamilyen értelmes jelszóra, és töltse fel a vázlatot. Nyissa meg a soros monitort, és látnia kell:


Setting soft-AP ... Ready
Stations connected = 0
Stations connected = 0
...

Ezután vegye elő mobiltelefonját vagy számítógépét, nyissa meg az elérhető hozzáférési pontok listáját, keresse meg az ESPsoftAP_01-et, és csatlakozzon hozzá. Ennek tükröződnie kell a soros monitoron új csatlakoztatott állomásként:


Stations connected = 1
Stations connected = 1
...

Ha van egy másik Wi-Fi állomása, csatlakoztassa azt is. Ellenőrizze újra a soros monitort, ahol most két állomást kell jelentenie.


Hogyan működik?

A vázlat kicsi, így az elemzés nem lehet nehéz. Az első sorban az ESP8266WiFi könyvtárat csatoljuk:


#include <ESP8266WiFi.h>

Az ESPsoftAP_01 hozzáférési pont beállítása a következő végrehajtással történik:

cpp boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP");

Ha ez a művelet sikeres, akkor a result true lesz, vagy false lesz, ha nem. Ennek alapján Ready vagy Failed! a következő if - else feltételes utasítással lesz kinyomtatva.


Tehetjük egyszerűbbé?

Egyszerűbbé tehetjük ezt a vázlatot? Igen! Megtehetjük az alternatív if - else utasítás használatával, az alábbiak szerint:


WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") ? "Ready" : "Failed!"

Ez az utasítás Ready vagy Failed! üzenetet ad vissza! a WiFi.softAP(...) eredményétől függően. Így jelentősen lerövidíthetjük vázlatunkat anélkül, hogy a funkcionalitáson változtatnánk:


#include <ESP8266WiFi.h>

void setup()
{
  Serial.begin(115200);
  Serial.println();

  Serial.print("Setting soft-AP ... ");
  Serial.println(WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") ? "Ready" : "Failed!");
}

void loop()
{
  Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum());
  delay(3000);
}

Szerintem ez egy nagyon ügyes kódrészlet. Ha ? : a feltételes operátor új számodra, javaslom, hogy kezdd el használni és tedd rövidebbre és elegánsabbra a kódodat.


Következtetés

Az ESP8266WiFi könyvtár megkönnyíti az ESP8266 soft hozzáférési ponttá alakítását.

Miután megpróbálta a fenti vázlatot, nézze meg a WiFiAccessPoint.ino webhelyet következő lépésként. Bemutatja, hogyan lehet elérni a soft-AP módban működő ESP-t webböngészőből.

Az ESP modul soft-AP módban történő kezeléséhez szükséges funkciók listáját a Soft Access Point Class dokumentációban találja.


© Copyright 2017, Ivan Grokhotkov Revision 02c1a502. Fordította: Maczák András