Orodha ya maudhui:

Jinsi ya kutumia ESP8266 kama Webserver: 5 Hatua
Jinsi ya kutumia ESP8266 kama Webserver: 5 Hatua

Video: Jinsi ya kutumia ESP8266 kama Webserver: 5 Hatua

Video: Jinsi ya kutumia ESP8266 kama Webserver: 5 Hatua
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Novemba
Anonim
Jinsi ya kutumia ESP8266 kama Webserver
Jinsi ya kutumia ESP8266 kama Webserver

Halo, kwa sasa ninatumia windows 10, NodeMCU 1.0 na hii ndio orodha ya Programu nilizotumia na miongozo ya usanikishaji niliyoifuata:

  • Arduino IDE
  • Bodi za ziada za esp8266
  • Spiff

Maktaba iliyotumiwa:

Mtandao

Nilitumia NodeMCU kama seva kutumikia Faili ya HTML niliyotengeneza kutoka kwa mafunzo. Kutumikia faili hii, nilipakia faili hiyo kwenye mfumo wa faili ya nodemcu kwa kutumia Spiffs. Faili ya HTML hutuma data kwa nodemcu ikitumia visanduku vya wavuti kuchapishwa kwenye mfuatiliaji wa serial kwa hii. Uwasilianaji wa haraka wa pande mbili kupitia visanduku vya wavuti vya seva na mteja imewezesha hii kutumiwa kama udhibiti wa kijijini. Kwenye hatua zifuatazo, mgonjwa kuelezea jinsi nambari yangu inafanya kazi

Vifaa

NodeMCU

Hatua ya 1: Ifanye ifanye kazi

Ifanye Kazi
Ifanye Kazi
Ifanye Kazi
Ifanye Kazi
Ifanye Kazi
Ifanye Kazi

Hapa kuna hatua juu ya jinsi inavyofanya kazi

  1. Pakua faili iliyoambatanishwa na ufungue faili ya mousebot.ino
  2. Nenda kwenye mchoro> onyesha folda ya mchoro na ufanye folda mpya inayoitwa data
  3. Hifadhi faili ya html kutoka kwa mafunzo haya kwenye folda iliyoitwa. Niliita jina langu kama "Joystick"
  4. Hakikisha kuwa spiff yako tayari inafanya kazi kwa kwenda kwa zana zana ukiona "upakiaji wa data ya esp8266"
  5. Pakia faili ya html kwa nodemcu kwa kubofya "esp8266 sketch data upload"
  6. Baada ya kupakia faili, pakia kwa nodemcu faili ya mousebot.ino kwa kushikilia IDE ya arduino na kubonyeza ctrl U

Hatua ya 2: Jinsi Kanuni inavyofanya kazi

Kwanza, tunajumuisha maktaba ambayo nambari hii itatumia

// kuwezesha ESP8266 kuungana na WIFI

#jumuisha # pamoja na # pamoja na // Inawezesha ESP8266 kutenda kama seva # pamoja na // inawezesha mawasiliano na seva na mteja (kifaa chako kilichofichwa) # pamoja # # pamoja // Kufungua faili iliyojaa juu ya nodemcu #jumuisha

Weka esp8266 kama seva ya wavuti iliyofunguliwa kwenye bandari ya 80. Bandari ni njia ambazo data itapita. Kama bandari ya seva, Itatuma faili ya HTML kwa mteja (deivces iliyounganishwa nayo).

Huongeza unganisho la wavuti kwa kutumia bandari 81 kusikiliza ujumbe kutoka kwa mteja

Masanduku ya wavuti yana param param, WStype_t, malipo ya malipo na saizi. Nambari huamua nambari ya mteja, upakiaji wa malipo ni ujumbe unaotuma, saizi ni urefu wa ujumbe na WStype_t ni kwa hafla tofauti kama vile

  • WStype_DISCONNECTED - kwenye kukatwa kwa mteja.
  • WStype_CONNECTED: - wakati mteja anaunganisha
  • WStype_TEXT - Data iliyopokea kutoka kwa mteja

Kulingana na aina ya tukio vitendo tofauti vimefanywa na inasemwa hapa

utupu wa WebSocketEvent (uint8_t num, WStype_t type, uint8_t * payload, size_t length) {

kubadili (aina) {kesi WStype_DISCONNECTED: Serial.printf ("[% u] Imekatika! / n", num); // prints data kwa mapumziko ya kufuatilia serial; kesi WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // hupata IP ya mteja Serial.printf ("[% u] Imeunganishwa kutoka% d.% d.% d.% d url:% s / n", num, ip [0], ip [1], ip [2], ip [3], malipo ya malipo); webSocket.sendTXT (num, "Imeunganishwa"); // hutuma "conencted" kwa kivinjari cha kivinjari} kuvunja; kesi WStype_TEXT: Serial.printf ("[% u] Takwimu:% s / n", num, malipo ya malipo); // chapa nambari ya mteja katika% u na data iliyopokelewa kama masharti katika% s / n break;}}

Hatua ya 3: Weka NODEMCU kama Seva

huweka ssid na nywila utakayotumia kuungana nayo baadaye

const char * ssid = "Jaribu";

const char * nywila = "12345678";

juu ya usanidi, tunataja kiwango ambacho nodemcu yetu na pc itawasiliana, ambayo ni 115200.

usanidi batili (utupu) {

Serial. Kuanza (115200); Serial.print ("\ n");

weka ukweli pia angalia pato la uchunguzi wa wifi kwenye kituo cha serila

Serial.setDebugOutput (kweli);

initaliaze mfumo wa faili

SPIFFS.anza ();

Sanidi nodemcu kama kituo cha ufikiaji na ssid na nenosiri defiend mapema na chapa ip ya nodemcu ambayo utaunganisha na mapema. kwa chaguo-msingi ni 192.168.4.1

Serial.print ("Inasanidi eneo la ufikiaji…");

Njia ya WiFi (WIFI_AP); WiFi.softAP (ssid, nywila); IPAddress myIP = WiFi.softAPIP (); Serial.print ("Anwani ya IP ya IP:"); Serial.println (myIP);

Anzisha websocket kwenye nodemcu, whcih ni pur server

webSocket.begin ();

Inapigia kazi WebSocketEvent wakati tukio la wavuti la wavuti linatokea.

WebSocket.onEvent (webSocketEvent);

Kwa utatuzi, chapisha "Seva ya Wavuti imeanza" kwenye laini mpya. Hii ni kuamua mstari wa nambari ambayo nodemcu inasindika

Serial.println ("Seva ya WebSocket imeanza.");

mteja anapotembelea 192.168.4.1, itaita kazi handleFileRead na kutuma nayo seva ya parameter URI ambayo katika kesi hii ni habari yetu ya nodemcu. Kazi ya kushughulikiaFileRead itatumikia faili ya html kutoka kwa mfumo wa faili ya nodemcu

server.onNotFound ( () {

ikiwa (! handleFileRead (server.uri ()))

ikiwa haiwezi kupatikana itaonyesha "FileNotFound"

tuma seva (404, "maandishi / wazi", "FileNotFound");

});

Huanza seva na chapisha seva ya HTTP imeanza.

anza (); Serial.println ("Seva ya HTTP imeanza");

Kwenye kitanzi chetu cha utupu, tunawezesha seva kushughulikia mteja kwa usiri na mikutano yake ya mikutano ya wavuti kama ifuatavyo:

kitanzi batili (batili) {

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

Hatua ya 4: Pakia faili ya HTML

tutatumia kazi inayoitwa handleFileRead kufungua na faili ya html kutoka kwa mfumo wa faili ya nodemcu. itarudisha boolean ya thamani ili kubaini ikiwa imepakiwa au la.

Wakati "192.168.4.1/" imefunguliwa na mteja tunaweka njia ya faili kwenda "/Joystick.html, jina la faili yetu kwenye folda ya data

bool handleFileRead (Njia ya Kamba) {

Serial.println ("handleFileRead:" + njia); ikiwa (path.endsWith ("/") path + = "Joystick.html"; ikiwa (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t sent = server.streamFile (faili, "maandishi / html"); faili. karibu (); kurudi kweli; } kurudi uwongo; }

Angalia ikiwa njia ya faili "/Joystick.html" ipo

ikiwa (SPIFFS.kupo (njia)) {

Ikiwa ipo, fungua njia kwa kusudi la kuisoma ambayo imeainishwa na "r". Nenda hapa kwa madhumuni zaidi.

Faili ya faili = SPIFFS. Fungua (njia, "r");

Inatuma faili kwa seva kama na aina ya yaliyomo ya "maandishi / html"

size_t sent = server.streamFile (faili, "maandishi / html");

funga faili

faili. karibu ();

kazi handleFileRead inarudi kweli

kurudi kweli;}

ikiwa njia ya faili haipo, kazi handleFileRead inarudi uwongo

kurudi kweli; }

Hatua ya 5: Jaribu

Image
Image

Unganisha kwenye nodeMCU na nenda kwa "192.168.4.1" na ujaribu!:)

Ilipendekeza: