ESP32-verkkopalvelin Arduino IDE:llä

Esp32 Verkkopalvelin Arduino Ide Lla



ESP32 on mikro-ohjainkortti, joka voi yhdistää useisiin laitteisiin GPIO-nastaillaan. Siinä on kaksiytiminen prosessori, jossa on sisäänrakennettu Wi-Fi- ja Bluetooth-liitäntä. Molemmat ominaisuudet tekevät ESP32:sta sopivan levyn IoT-projektien suunnitteluun. Yksi ESP32-kortin pääominaisuuksista on sen kyky muodostaa yhteys olemassa olevaan tukiasemaan. Ei vain sitä, vaan se voi myös luoda tukiasemansa, jotta muut laitteet voivat muodostaa yhteyden siihen.

Tässä ESP32-artikkelissa tutkimme, kuinka voimme yhdistää ESP32-kortin tukiasemaan ja suunnitella sen verkkopalvelimen. Tämän web-palvelimen avulla ohjaamme LEDejä ja AC-laitteita relemoduulin avulla.

Sisällys:

1. ESP32-verkkopalvelin

Web-palvelimessa on erityinen ohjelma, joka voi käsitellä ja lähettää web-sivuja web-asiakkaille. Verkkosivuston avaamiseen käytämme verkkoselainta. Tätä verkkoselainta kutsutaan myös verkkoasiakkaaksi. Sivusto, jonka haluat nähdä, on tallennettu toiseen tietokoneeseen, jota kutsutaan verkkopalvelimeksi.







Web-palvelin ja verkkoasiakas käyttävät yhteistä kieltä nimeltä HTTP. Näin se toimii: web-asiakas pyytää web-palvelimelta verkkosivua HTTP-pyynnöllä. Web-palvelin lähettää pyydetyn verkkosivun takaisin. Jos verkkosivua ei ole, näet virheilmoituksen.



ESP32:ssa voimme suunnitella web-palvelimen, sillä ESP32 ei voi vain muodostaa yhteyttä muihin laitteisiin verkon kautta, vaan voi myös luoda web-palvelimensa ja vastata vastaanotettuihin pyyntöihin. Tämä kaikki on mahdollista, koska ESP32 voi toimia kolmessa eri tilassa:



  • asema
  • Tukiasema
  • Sekä asema että tukiasema

Voit katsoa tämän artikkelin saadaksesi käsityksen kaikista kolmesta ESP32-tilasta:





ESP32-tukiaseman (AP) asettaminen Arduino IDE:n avulla

2. ESP32-verkkopalvelimen luominen Arduino IDE:n avulla

Jos haluat luoda ESP32-verkkopalvelimen Arduino IDE:llä, voit yhdistää ESP32:n tukiasemaan ja luoda IP-osoitteen Web-palvelimelle. Voit käyttää HTML- ja CSS-koodia palvelinliittymän suunnittelussa.



Kun ymmärrät ESP32-tukiaseman toimivan, voit helposti suunnitella ESP32-verkkopalvelimen Arduino IDE -koodilla. ESP32-verkkopalvelinkoodi käyttää ESP32 Wi-Fi -kirjastoa. Tämä helpottaa työtämme, sillä tämä kirjasto sisältää kaikki tärkeät toiminnot, joita tarvitaan ESP32:n liittämiseen tukiasemaan.

Suunnitellaan ESP32-verkkopalvelin Arduino IDE -koodilla.

3. ESP32-verkkopalvelimen koodi

ESP32-verkkopalvelinkoodi sisältää ESP32-yhteyden tukiasemaan ja IP-osoitteen saamisen palvelimelle. Kun saat IP-osoitteen, sinun on muodostettava yhteys samaan verkkoon käyttääksesi ESP32-verkkopalvelinta. Sieltä voit ohjata LEDejä ja muita laitteita.

Avaa Arduino IDE ja liitä ESP32-korttisi siihen:

ESP32-levyn asentaminen Arduino IDE:hen

Kun ESP32-kortti on liitetty, lataa seuraava koodi korttiisi.

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

Linuxhint.com
ESP32-verkkopalvelin LEDien ohjaamiseen

**************/
// Tuo kirjasto varten Wi-Fi-yhteys
#include
// Anna Wi-Fi-nimesi ja salasanasi
const char * ssid = 'ESP32' ;
const char * salasana = '123456789' ;
// Valitse portin numero varten verkkopalvelin
WiFiServer-palvelin ( 80 ) ;
// Luo muuttuja verkkopyynnön tallentamiseksi
merkkijono otsikko;
// Luo muuttujia tulosteiden tilan tallentamiseksi
Merkkijonon lähtö26Tila = 'VINOSSA' ;
Merkkijonon lähtö27Tila = 'VINOSSA' ;
// Määritä lähtönastat muuttujiin
const int output26 = 26 ;
const int output27 = 27 ;
etumerkitön pitkä virtaAika = millis ( ) ;
allekirjoittamaton kauan previousTime = 0 ;
// Valitse aika raja varten verkkopyyntö sisään millisekuntia
const pitkä aikakatkaisuAika = 2000 ;
tyhjä asetus ( ) {
Serial.begin ( 115 200 ) ;
// Aseta lähtönastat kuten ulostulot
pinMode ( lähtö26, OUTPUT ) ;
pinMode ( lähtö27, OUTPUT ) ;
// Sammuta lähdöt
digitalWrite ( lähtö26, LOW ) ;
digitalWrite ( lähtö27, LOW ) ;
// Yhdistä Wi-Fi-verkkoon
Serial.print ( 'Yhdistetään ' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid, salasana ) ;
// Odota siihen asti kun yhteys on muodostettu
sillä aikaa ( WiFi.status ( ) ! = WL_CONNECTED ) {
viive ( 500 ) ;
Serial.print ( '.' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'WiFi yhdistetty.' ) ;
Serial.println ( 'IP-osoite: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
server.begin ( ) ;
}

tyhjä silmukka ( ) {
WiFiClient client = server.available ( ) ; // Tarkistaa varten uusia asiakkaita
jos ( asiakas ) { // Jos asiakas on yhteydessä,
nykyinen aika = millis ( ) ;
previousTime = nykyinen aika;
Serial.println ( 'Uusi asiakas.' ) ; // Ilmoita sarjaportille
String currentLine = '' ; // Luo merkkijono asiakastietojen tallentamiseksi
sillä aikaa ( client.connected ( ) && nykyinen aika - edellinen aika = 0 ) {
Serial.println ( 'GPIO 26 päällä' ) ;
output26State = 'PÄÄLLÄ' ;
digitalWrite ( lähtö26, KORKEA ) ;
} muu jos ( header.indexOf ( 'Saada /26/alennus' ) > = 0 ) {
Serial.println ( 'GPIO 26 off' ) ;
output26State = 'VINOSSA' ;
digitalWrite ( lähtö26, LOW ) ;
} muu jos ( header.indexOf ( 'HANKI /27/päällä' ) > = 0 ) {
Serial.println ( 'GPIO 27 päällä' ) ;
output27State = 'PÄÄLLÄ' ;
digitalWrite ( lähtö27, KORKEA ) ;
} muu jos ( header.indexOf ( 'Saada /27/alennus' ) > = 0 ) {
Serial.println ( 'GPIO 27 off' ) ;
output27State = 'VINOSSA' ;
digitalWrite ( lähtö27, LOW ) ;
}

client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// CSS painikkeiden tyyliin
client.println ( '