Sisällysluettelo:

ESP8266: n käyttäminen verkkopalvelimena: 5 vaihetta
ESP8266: n käyttäminen verkkopalvelimena: 5 vaihetta

Video: ESP8266: n käyttäminen verkkopalvelimena: 5 vaihetta

Video: ESP8266: n käyttäminen verkkopalvelimena: 5 vaihetta
Video: Measure Temperature and Humidity WiFi with ESP32 DHT11 and DHT22 - Robojax 2024, Marraskuu
Anonim
ESP8266: n käyttäminen verkkopalvelimena
ESP8266: n käyttäminen verkkopalvelimena

Hei, Käytän tällä hetkellä ikkunoita 10, NodeMCU 1.0 ja tässä on luettelo käyttämistäni ohjelmistoista ja asennusoppaista, joita seurasin:

  • Arduino IDE
  • Lisälevyt esp8266: lle
  • Spiff

Käytetty kirjasto:

Websocket

Käytin NodeMCU: ta palvelimena palvelemaan tämän opetusohjelman tekemää HTML -tiedostoa. Palvellakseni tätä tiedostoa, latasin tiedoston nodemcu -tiedostojärjestelmään Spiffsin avulla. HTML -tiedosto lähettää tietoja nodemcu -järjestelmään käyttämällä verkkopistorasioita, jotka tulostetaan sarjamonitoriin tätä varten. Nopea kaksisuuntainen tiedonsiirto palvelimen ja asiakkaan verkkopistorasioiden kautta mahdollisti tämän käytön kauko -ohjaimena. Seuraavissa vaiheissa en selitä, miten koodini toimii

Tarvikkeet

NodeMCU

Vaihe 1: Tee se toimivaksi

Saada se toimimaan
Saada se toimimaan
Saada se toimimaan
Saada se toimimaan
Saada se toimimaan
Saada se toimimaan

Tässä on vaiheet, miten se toimii

  1. Lataa liitteenä oleva tiedosto ja avaa mousebot.ino -tiedosto
  2. Siirry luonnokseen> näytä luonnoskansio ja luo uusi kansio nimeltä data
  3. Tallenna html -tiedosto tästä opetusohjelmasta nimettyyn kansioon. Nimesin omani "ohjaussauvaksi"
  4. Varmista, että spiffisi on jo toiminnassa, menemällä työkaluihin ja katsomalla "esp8266 luonnostietojen lataus"
  5. Lataa html -tiedosto nodemcuun napsauttamalla "esp8266 luonnostietojen lataus"
  6. Lataa tiedoston lähettämisen jälkeen nodemcuun mousebot.ino -tiedosto siirtymällä arduino IDE: hen ja painamalla ctrl U

Vaihe 2: Kuinka koodi toimii

Ensinnäkin sisällytämme kirjastot, joita tämä koodi käyttää

// jotta ESP8266 voi muodostaa yhteyden WIFI -verkkoon

#include #include #include // Sallii ESP8266: n toimia palvelimena #include // mahdollistaa viestinnän palvelimen ja asiakkaan (yhdistetyn laitteen) kanssa #include #include // Uudistetun tiedoston avaaminen nodemcu #include

Aseta esp8266 portiksi 80 avatuksi verkkopalvelimeksi. Portit ovat polkuja, joiden kautta data kulkee. Palvelinporttina se lähettää HTML -tiedoston asiakkaalle (siihen yhdistetyt sivut).

Lisää Websocket -yhteyden portin 81 avulla kuunnellaksesi asiakasviestejä

Websocketsissa on parametri num, WStype_t, hyötykuorma ja koko. Numero määrittää asiakkaan numeron, hyötykuorma on sen lähettämä viesti, koko on viestin pituus ja WStype_t on eri tapahtumille, kuten

  • WStype_DISCONNECTED - kun asiakas katkaistaan.
  • WStype_CONNECTED: - kun asiakas muodostaa yhteyden
  • WStype_TEXT - Vastaanotetut tiedot asiakkaalta

Tapahtumatyypistä riippuen tehdään erilaisia toimintoja ja niitä kommentoidaan täällä

void webSocketEvent (uint8_t numero, WStype_t -tyyppi, uint8_t * hyötykuorma, koko_t pituus) {

switch (type) {case WStype_DISCONNECTED: Serial.printf ("[%u] Katkaistu! / n", numero); // tulostaa tiedot sarjamonitorin katkokseen; tapaus WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // saa IP -osoitteen Serial.printf ("[%u] Yhdistetty kohteesta%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], hyötykuorma); webSocket.sendTXT (numero, "Yhdistetty"); // lähettää "conencted" selainkonsoliin} break; tapaus WStype_TEXT: Serial.printf ("[%u] Data: %s / n", numero, hyötykuorma); // tulostaa asiakasnumeron muodossa %u ja merkkijonoina vastaanotetut tiedot %s / n tauko;}}

Vaihe 3: Aseta NODEMCU palvelimeksi

määrittää SSID: n ja salasanan, joita käytät myöhemmin yhteyden muodostamiseen

const char *ssid = "Kokeile";

const char *password = "12345678";

määrityksessä määritämme nopeuden, jolla nodemcu ja tietokone kommunikoivat, mikä on 115200.

mitätön asennus (mitätön) {

Sarja.alku (115200); Serial.print ("\ n");

aseta myös tosi, katso wifi -diagnoosilähtö serila -päätelaitteessa

Serial.setDebugOutput (tosi);

käynnistää tiedostojärjestelmän

SPIFFS.begin ();

Määritä nodemcu liityntäpisteeksi, jossa on ssid ja salasana, ja tulostaa sen solmun IP -osoitteen, johon muodostat yhteyden aiemmin. oletuksena se on 192.168.4.1

Serial.print ("Tukiaseman määrittäminen …");

WiFi.mode (WIFI_AP); WiFi.softAP (ssid, salasana); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP -osoite:"); Serial.println (myIP);

Alusta verkkopistoke solmussa, joka on pur -palvelin

webSocket.begin ();

Kutsuu toimintoa webSocketEvent, kun websocket -tapahtuma tapahtuu.

webSocket.onEvent (webSocketEvent);

Tulosta virheenkorjausta varten "WebSocket -palvelin käynnistetty" uudelle riville. Tämä määrittää koodirivin, jota nodemcu käsittelee

Serial.println ("WebSocket -palvelin käynnistetty.");

kun asiakas vierailee osoitteessa 192.168.4.1, se kutsuu funktion handleFileRead ja lähettää sen kanssa parametripalvelimen URI: n, joka tässä tapauksessa on nodemcu -tiedot. Funktio handleFileRead palvelee html -tiedostoa nodemcu -tiedostojärjestelmästä

server.onNotFound ( () {

if (! handleFileRead (server.uri ()))

jos sitä ei löydy, se näyttää "FileNotFound"

server.send (404, "teksti/tavallinen", "FileNotFound");

});

Aloittaa palvelimen ja tulostaa HTTP -palvelimen.

server.begin (); Serial.println ("HTTP -palvelin käynnistetty");

Tyhjäkäynnillä palvelin sallii jatkuvasti käsitellä asiakkaan ja sen verkkopistorasioiden viestintää seuraavasti:

void loop (void) {

server.handleClient (); webSocket.loop ();}

Vaihe 4: Lataa HTML -tiedosto

Käytämme toimintoa nimeltä handleFileRead avataksemme ja html -tiedoston nodemcu -tiedostojärjestelmästä. se palauttaa boolean -arvon määrittääkseen, onko se ladattu vai ei.

Kun asiakas avaa "192.168.4.1/", asetamme tiedostopoluksi "/Joystick.html, tiedostomme nimen datakansiossa

bool handleFileRead (merkkijonopolku) {

Serial.println ("handleFileRead:" + polku); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (polku)) {Tiedostotiedosto = SPIFFS.open (polku, "r"); koko_t lähetetty = palvelin.virran tiedosto (tiedosto, "teksti/html"); file.close (); palaa tosi; } return false; }

Tarkista, onko tiedostopolku "/Joystick.html" olemassa

if (SPIFFS.exists (polku)) {

Jos se on olemassa, avaa polku lukemalla se, jonka määrittelee r. Mene tänne lisää tarkoituksia varten.

Tiedostotiedosto = SPIFFS.open (polku, "r");

Lähettää tiedoston palvelimelle sisällön tyypin "teksti/html" kanssa

koko_t lähetetty = palvelin.virran tiedosto (tiedosto, "teksti/html");

sulje tiedosto

file.close ();

funktio handleFileRead palauttaa arvon true

palaa tosi;}

jos tiedoston polkua ei ole, funktio handleFileRead palauttaa epätosi

palaa tosi; }

Vaihe 5: Kokeile

Image
Image

Muodosta yhteys nodeMCU: han ja siirry kohtaan "192.168.4.1" ja kokeile sitä!:)

Suositeltava: