Cov txheej txheem:

Yuav Ua Li Cas Siv ESP8266 Raws Li Lub Vev Xaib: 5 Kauj Ruam
Yuav Ua Li Cas Siv ESP8266 Raws Li Lub Vev Xaib: 5 Kauj Ruam

Video: Yuav Ua Li Cas Siv ESP8266 Raws Li Lub Vev Xaib: 5 Kauj Ruam

Video: Yuav Ua Li Cas Siv ESP8266 Raws Li Lub Vev Xaib: 5 Kauj Ruam
Video: Tsis Paub Yuav Ua Li Cas 2024, Hlis ntuj nqeg
Anonim
Yuav Ua Li Cas Siv ESP8266 Ua Tus Cuab Yeej
Yuav Ua Li Cas Siv ESP8266 Ua Tus Cuab Yeej

Nyob zoo, tam sim no kuv siv windows 10, NodeMCU 1.0 thiab ntawm no yog cov npe Software Kuv siv thiab teeb tsa cov lus qhia kuv ua raws:

  • Arduino IDE Cov
  • Cov laug cam ntxiv rau esp8266
  • Spiff

Lub tsev qiv ntawv siv:

Websocket

Kuv siv NodeMCU ua tus neeg rau zaub mov los ua cov ntaub ntawv HTML Kuv tau ua los ntawm thistutorial. Txhawm rau muab cov ntaub ntawv no, Kuv tau xa cov ntawv mus rau nodemcu cov ntaub ntawv siv Spiffs. Cov ntaub ntawv HTML xa cov ntaub ntawv mus rau nodemcu siv websockets kom luam tawm ntawm cov ntawv saib xyuas rau qhov no. Qhov kev sib txuas lus nrawm ntawm websockets ntawm tus neeg rau zaub mov thiab cov neeg siv khoom tau qhib qhov no los siv ua chaw taws teeb tswj. Hauv cov theem hauv qab no, mob yuav piav qhia txog kuv li chaws ua haujlwm li cas

Khoom siv

NodeMCU

Kauj Ruam 1: Ua Kom Nws Ua Haujlwm

Ua Kom Nws Ua Haujlwm
Ua Kom Nws Ua Haujlwm
Ua Kom Nws Ua Haujlwm
Ua Kom Nws Ua Haujlwm
Ua Kom Nws Ua Haujlwm
Ua Kom Nws Ua Haujlwm

Nov yog cov kauj ruam ntawm nws ua haujlwm li cas

  1. Rub tawm cov ntawv txuas thiab qhib cov ntawv mousebot.ino
  2. Mus rau kos duab> qhia cov duab kos thiab ua daim nplaub tshev tshiab hu ua cov ntaub ntawv
  3. Txuag cov ntaub ntawv html los ntawm cov ntawv qhia no hauv daim nplaub tshev npe. Kuv hu kuv li "Joystick"
  4. Ua kom ntseeg tau tias koj qhov spiff twb ua haujlwm tau zoo los ntawm kev mus rau cov cuab yeej ans pom "esp8266 cov duab kos duab upload"
  5. Upload cov ntaub ntawv html rau nodemcu los ntawm txhaj "esp8266 kos duab cov ntaub ntawv upload"
  6. Tom qab xa cov ntawv, xa mus rau nodemcu cov ntawv mousebot.ino los ntawm kev nkag mus rau arduino IDE thiab nias ctrl U

Kauj Ruam 2: Txoj Cai Ua Haujlwm Li Cas

Ua ntej, peb suav nrog cov tsev qiv ntawv cov cai no yuav siv

// txhawm rau kom ESP8266 txuas mus rau WIFI

#include #include #include // Enables ESP8266 los ua tus server #include // ua kom muaj kev sib txuas lus nrog tus neeg rau zaub mov thiab tus neeg siv khoom (koj lub cuab yeej sib txuas) #suav nrog #include // Txhawm rau qhib cov ntawv uplaoded ntawm nodemcu #include

Teem lub esp8266 ua lub vev xaib qhib ntawm chaw nres nkoj 80. Cov chaw nres nkoj yog txoj hauv kev cov ntaub ntawv yuav hla mus. Raws li tus neeg rau zaub mov chaw nres nkoj, Nws yuav xa cov ntawv HTML mus rau tus neeg siv khoom (qhov tsis txaus ntseeg txuas nrog nws).

Ntxiv rau qhov websocket txuas nrog siv chaw nres nkoj 81 los mloog cov lus los ntawm cov neeg siv khoom

Lub websockets muaj tus lej ntsuas, WStype_t, them nyiaj thiab qhov loj me. Tus lej txiav txim siab tus lej tus neeg siv khoom, them nyiaj yog cov lus nws xa, qhov loj me yog qhov ntev ntawm cov lus thiab WStype_t yog rau cov xwm txheej sib txawv xws li

  • WStype_DISCONNECTED - ntawm kev cuam tshuam ntawm tus neeg siv khoom.
  • WStype_CONNECTED: - thaum tus neeg siv txuas nrog
  • WStype_TEXT - Tau txais cov ntaub ntawv los ntawm tus neeg siv khoom

Nyob ntawm qhov xwm txheej yam sib txawv ua tau ua tiav thiab tau hais tawm ntawm no

void webSocketEvent (uint8_t num, WStype_t yam, uint8_t * payload, size_t ntev) {

hloov (hom) {case WStype_DISCONNECTED: Serial.printf ("[%u] Disconnected! / n", num); // luam tawm cov ntaub ntawv mus rau lub luag haujlwm saib xyuas tawg; rooj plaub WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // tau txais IP ntawm tus neeg siv khoom Serial.printf ("[%u] Txuas los ntawm%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], payload); webSocket.sendTXT (num, "Txuas"); // xa "conencted" mus rau qhov browser console} tawg; rooj plaub WStype_TEXT: Serial.printf ("[%u] Cov ntaub ntawv: %s / n", lej, them nqi); // luam tus lej thov hauv %u thiab cov ntaub ntawv tau txais raws li cov hlua hauv %s / n so;}}

Kauj Ruam 3: Teeb NODEMCU Raws Li Server

teeb tus ssid thiab tus lej koj yuav siv los txuas rau nws tom qab

const char *ssid = "Sim";

const char *lo lus zais = "12345678";

ntawm qhov teeb tsa, peb tshwj xeeb tus nqi uas nws peb nodemcu thiab pc yuav sib tham, uas yog 115200.

void teeb (tsis muaj dab tsi) {

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

teeb tsa kom muaj tseeb ib yam nkaus li pom cov teeb meem kuaj mob wifi ntawm lub davhlau ya nyob twg serila

Serial.setDebugOutput (muaj tseeb);

initaliaze cov filesystem

SPIFFS.begin ();

Teeb tsa nodemcu ua qhov nkag mus nrog ssid thiab tus password tiv thaiv ua ntej thiab luam tawm tus ip ntawm nodemcu uas koj yuav txuas nrog ua ntej. los ntawm lub neej ntawd nws yog 192.168.4.1

Serial.print ("Kho qhov chaw nkag …");

WiFi.mode (WIFI_AP); WiFi.softAP (ssid, password); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP chaw nyob:"); Serial.println (myIP);

Pib lub websocket ntawm nodemcu, whcih yog neeg rau zaub mov dawb

webSocket.begin ();

Hu rau lub luag haujlwm webSocketEvent thaum muaj xwm txheej websocket tshwm sim.

webSocket.onEvent (webSocketEvent);

Txog kev debugging, luam "WebSocket server pib" ntawm kab tshiab. Qhov no yog txhawm rau txiav txim siab txoj kab ntawm txoj cai nodemcu tab tom ua

Serial.println ("WebSocket server tau pib.");

thaum tus neeg siv khoom mus ntsib 192.168.4.1, nws yuav hu lub luag haujlwm handleFileRead thiab xa nrog nws qhov ntsuas ntsuas server URI uas qhov xwm txheej no yog peb cov ntaub ntawv nodemcu. Kev ua haujlwm handleFileRead yuav ua haujlwm cov ntaub ntawv html los ntawm cov ntaub ntawv nodemcu

server.onNotFound ( () {

yog (! handleFileRead (server.uri ()))

yog tias nws tsis pom nws yuav qhia "FileNotFound"

server.send (404, "text/plain", "FileNotFound");

});

Pib lub server thiab luam HTTP server pib.

server.begin (); Serial.println ("HTTP server tau pib");

Ntawm peb lub voj void, peb ua kom cov neeg rau zaub mov sib txuas cov neeg siv khoom thiab nws cov websockets kev sib txuas lus raws li hauv qab no:

void loop (tsis muaj dab tsi) {

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

Kauj ruam 4: Load HTML File

peb yuav siv lub luag haujlwm hu ua handleFileRead qhib thiab html cov ntaub ntawv los ntawm nodemcu file system. nws yuav xa rov qab boolean ntawm tus nqi los txiav txim siab tias nws tau thauj khoom lossis tsis.

Thaum "192.168.4.1/" qhib los ntawm tus neeg siv khoom peb teeb tsa txoj hauv kev rau "/Joystick.html, lub npe ntawm peb cov ntaub ntawv hauv cov ntawv tais ceev tseg

bool handleFileRead (Txoj hlua txoj kab) {

Serial.println ("handleFileRead:" + txoj kev); yog (path.endsWith ("/")) txoj kev += "Joystick.html"; yog (SPIFFS.exists (path)) {Cov ntaub ntawv file = SPIFFS.open (txoj kev, "r"); size_t xa = server.streamFile (file, "text/html"); file.close (); cov. rov muaj tseeb; } rov tsis tseeb; }

Txheeb xyuas yog tias txoj kab ntawv "/Joystick.html" muaj nyob

yog (SPIFFS.exists (txoj kev)) {

Yog tias nws muaj, qhib txoj hauv kev nrog lub hom phiaj ntawm kev nyeem nws uas tau teev tseg los ntawm "r". Mus ntawm no rau lub hom phiaj ntxiv.

Cov ntaub ntawv cov ntaub ntawv = SPIFFS.open (txoj kev, "r");

Xa cov ntawv mus rau server zoo li nrog cov ntsiab lus ntawm "text/html"

size_t xa = server.streamFile (file, "text/html");

kaw cov ntaub ntawv

file.close (); cov.

muaj nuj nqi handleFileRead rov muaj tseeb

rov muaj tseeb;}

yog tias txoj kab ntawv tsis muaj nyob, kev ua haujlwm handleFileRead rov tsis tseeb

rov muaj tseeb; }

Kauj ruam 5: Sim nws

Image
Image

Txuas mus rau nodeMCU thiab mus rau "192.168.4.1" thiab sim nws!:)

Pom zoo: