ESP32 webszerver Arduino IDE használatával

Esp32 Webszerver Arduino Ide Hasznalataval



Az ESP32 egy mikrovezérlő kártya, amely GPIO érintkezőivel több eszközhöz is csatlakoztatható. Kétmagos processzorral rendelkezik, beépített Wi-Fi és Bluetooth interfésszel. Mindkét funkció alkalmassá teszi az ESP32-t az IoT-projektek tervezésére. Az ESP32 kártya egyik fő jellemzője, hogy képes csatlakozni a meglévő hozzáférési ponthoz. Nem csak ez, hanem hozzáférési pontját is létrehozhatja, így más eszközök is csatlakozhatnak hozzá.

Ebben az ESP32-es cikkben megvizsgáljuk, hogyan csatlakoztathatunk egy ESP32-es kártyát egy hozzáférési ponthoz, és hogyan tervezhetjük meg a webszerverét. A webszerver segítségével LED-eket és váltóáramú készülékeket fogunk vezérelni egy relémodul segítségével.

Tartalom:

1. ESP32 webszerver

A webszerver rendelkezik egy speciális programmal, amely képes weboldalakat feldolgozni és elküldeni a webklienseknek. Weboldal megnyitásához webböngészőt használunk. Ezt a böngészőt webkliensnek is nevezik. A megtekinteni kívánt webhely egy másik számítógépen, úgynevezett webszerveren van tárolva.







Az egymással való beszélgetéshez a webszerver és a webkliens egy közös HTTP-nyelvet használ. Ez így működik: a webkliens HTTP kéréssel kér egy weboldalt a webszervertől. A webszerver visszaküldi a kért weboldalt. Ha a weboldal nincs jelen, hibaüzenetet fog látni.



Az ESP32-ben webszervert tervezhetünk, mivel az ESP32 nem csak hálózaton keresztül tud kapcsolódni más eszközökhöz, hanem létrehozhatja webszerverét és válaszolhat a beérkezett kérésekre. Mindez azért lehetséges, mert az ESP32 három különböző üzemmódban tud működni:



  • Állomás
  • Hozzáférési pont
  • Állomás és hozzáférési pont egyaránt

Megtekintheti ezt a cikket, hogy betekintést nyerjen az ESP32 mindhárom módjába:





ESP32 hozzáférési pont (AP) beállítása Arduino IDE használatával

2. ESP32 webszerver létrehozása Arduino IDE használatával

ESP32 webszerver Arduino IDE használatával történő létrehozásához csatlakoztathatja az ESP32-t egy hozzáférési ponthoz, és létrehozhat egy IP-címet a webszerver számára. Használhat némi HTML-t és CSS-t a kiszolgáló felületének kialakításához.



Miután megértette az ESP32 hozzáférési pont működését, könnyen megtervezhet egy ESP32 webszervert az Arduino IDE kód segítségével. Az ESP32 webszerver kódja az ESP32 Wi-Fi könyvtárat használja. Ez megkönnyíti a munkánkat, mivel ez a könyvtár tartalmazza az összes fontos funkciót, amely az ESP32 hozzáférési ponthoz történő csatlakoztatásához szükséges.

Tervezzünk meg egy ESP32 webszervert Arduino IDE kóddal.

3. ESP32 webszerver kód

Az ESP32 webszerver kódja magában foglalja az ESP32 kapcsolatot a hozzáférési ponttal, és megkapja a szerver IP-címét. Miután megkapta az IP-címet, csatlakoznia kell ugyanahhoz a hálózathoz az ESP32 webszerver eléréséhez. Innen vezérelheti a LED-eket és egyéb eszközöket.

Nyissa meg az Arduino IDE-t, és csatlakoztassa az ESP32 kártyát:

Az ESP32 kártya telepítése az Arduino IDE-ben

Az ESP32 kártya csatlakoztatása után töltse fel a következő kódot a kártyára.

/**************

Linuxhint.com
ESP32 webszerver LED-ek vezérléséhez

**************/
// Importálja a könyvtárat számára Wi-Fi kapcsolat
#include
// Adja meg Wi-Fi nevét és jelszavát
const char * ssid = 'ESP32' ;
const char * jelszó = '123456789' ;
// Válassza ki a port számát számára a webszerver
WiFiServer szerver ( 80 ) ;
// Hozzon létre egy változót a webes kérés tárolásához
String fejléc;
// Hozzon létre változókat a kimenetek állapotának tárolására
String output26State = 'KI' ;
String output27State = 'KI' ;
// Rendelje hozzá a kimeneti lábakat a változókhoz
const int output26 = 26 ;
const int output27 = 27 ;
unsigned long currentTime = millis ( ) ;
unsigned long previousTime = 0 ;
// Válaszd a idő határ számára a webes kérés ban ben ezredmásodperc
const long timeoutTime = 2000 ;
üres beállítás ( ) {
Serial.begin ( 115200 ) ;
// Állítsa be a kimeneti érintkezőket mint kimenetek
pinMode ( output26, OUTPUT ) ;
pinMode ( output27, OUTPUT ) ;
// Kapcsolja ki a kimeneteket
digitalWrite ( output26, LOW ) ;
digitalWrite ( output27, LOW ) ;
// Csatlakozzon a Wi-Fi hálózathoz
Serial.print ( 'Csatlakozás' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid, jelszó ) ;
// Várjon amíg a kapcsolat létrejön
míg ( WiFi.status ( ) ! = WL_CONNECTED ) {
késleltetés ( 500 ) ;
Serial.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi csatlakoztatva.' ) ;
Serial.println ( 'IP-cím: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
szerver.begin ( ) ;
}

üres hurok ( ) {
WiFiClient kliens = server.available ( ) ; // Jelölje be számára új ügyfelek
ha ( ügyfél ) { // Ha kliens csatlakozik,
jelenlegi idő = millis ( ) ;
previousTime = jelenlegi idő;
Serial.println ( 'Új ügyfél.' ) ; // Értesítse a soros portot
String currentLine = '' ; // Hozzon létre egy karakterláncot az ügyféladatok tárolására
míg ( client.connected ( ) && currentTime - previousTime = 0 ) {
Serial.println ( 'GPIO 26 bekapcsolva' ) ;
output26State = 'TOVÁBB' ;
digitalWrite ( output26, MAGAS ) ;
} más ha ( header.indexOf ( 'KAP /26/kedvezményt' ) > = 0 ) {
Serial.println ( 'GPIO 26 off' ) ;
output26State = 'KI' ;
digitalWrite ( output26, LOW ) ;
} más ha ( header.indexOf ( 'GET /27/on' ) > = 0 ) {
Serial.println ( 'GPIO 27 bekapcsolva' ) ;
output27State = 'TOVÁBB' ;
digitalWrite ( kimenet27, MAGAS ) ;
} más ha ( header.indexOf ( 'KAP /27/kedvezményt' ) > = 0 ) {
Serial.println ( 'GPIO 27 off' ) ;
output27State = 'KI' ;
digitalWrite ( output27, LOW ) ;
}

client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// CSS a gombok stílusának beállításához
client.println ( '