Cov txheej txheem:
- Khoom siv
- Kauj Ruam 1: Ua Kom Nws Ua Haujlwm
- Kauj Ruam 2: Txoj Cai Ua Haujlwm Li Cas
- Kauj Ruam 3: Teeb NODEMCU Raws Li Server
- Kauj ruam 4: Load HTML File
- Kauj ruam 5: Sim nws
Video: Yuav Ua Li Cas Siv ESP8266 Raws Li Lub Vev Xaib: 5 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:25
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
Nov yog cov kauj ruam ntawm nws ua haujlwm li cas
- Rub tawm cov ntawv txuas thiab qhib cov ntawv mousebot.ino
- Mus rau kos duab> qhia cov duab kos thiab ua daim nplaub tshev tshiab hu ua cov ntaub ntawv
- Txuag cov ntaub ntawv html los ntawm cov ntawv qhia no hauv daim nplaub tshev npe. Kuv hu kuv li "Joystick"
- 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"
- Upload cov ntaub ntawv html rau nodemcu los ntawm txhaj "esp8266 kos duab cov ntaub ntawv upload"
- 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
Txuas mus rau nodeMCU thiab mus rau "192.168.4.1" thiab sim nws!:)
Pom zoo:
$ 10 Lub Vev Xaib Lub Vev Xaib Kho: 5 Kauj Ruam (nrog Duab)
$ 10 Lub Vev Xaib Lub Vev Xaib Tsis Zoo: Zoo, kuv tau ua nws dua. Kuv tau tawg kuv qhov screen. Rau cov ntawm koj uas yuav nco tau, kuv tau ua qhov no tsuas yog ib xyoos dhau los thiab xav tau kev txhim kho ib ntus kom coj kuv mus txog thaum kuv tuaj yeem hloov pauv cov muab kev pabcuam thiab tau txais xov tooj tshiab. Nws tau ua haujlwm zoo, nws tau kav rau
Lub Vev Xaib Tswj Lub Vev Xaib Box: 4 Kauj Ruam
Lub Vev Xaib Tswj Lub Vev Xaib Box: Qhov no yog lub thawv xauv uas tuaj yeem qhib tau los ntawm kev qhia sai ntawm lub vev xaib. Qhov no txhais tau tias, koj tuaj yeem kaw cov khoom tam sim ntawd hauv lub thawv thiab tsuas yog nkag mus rau lawv thaum ib tus neeg nkag mus rau kab lus muab nkag rau ntawm lub vev xaib pej xeem. Vim li cas ib tus xav tau qhov no? Nov yog ib qho ex
Yuav Ua Li Cas Tau Txais Cov Nkauj Los Ntawm Txhua Qhov (Haha) Lub Vev Xaib (Ntev Li Koj Tau hnov Nws Koj Yuav Tau Txais Nws Ok Zoo Yog Nws Tau Ntxig Hauv Flash Koj Yuav Tsis Muaj Peev Xwm) EDITED !!!!! Ntxiv Info: 4 Cov Kauj Ruam
Yuav Ua Li Cas Tau Txais Cov Nkauj Los Ntawm Txhua Qhov (Haha) Lub Vev Xaib (Ntev Li Koj Tau hnov Nws Koj Yuav Tau Txais Nws … Ok Zoo Yog Nws Tau Ntxig Hauv Flash Koj Yuav Tsis Muaj Peev Xwm) EDITED !!!!! Ntxiv Cov Lus Qhia: yog tias koj tau mus rau lub vev xaib thiab nws ua nkauj nkauj uas koj nyiam thiab xav tau nws ntawm no yog cov lus qhia rau koj tsis yog kuv qhov txhaum yog tias koj cuam tshuam qee yam (tsuas yog txoj hauv kev nws yuav tshwm sim yog tias koj pib tshem cov khoom yam tsis muaj laj thawj. ) Kuv tuaj yeem tau txais cov nkauj rau
Txhua Yam Txog Kev Tsim Lub Vev Xaib Lub Vev Xaib: 5 Kauj Ruam
Txhua Yam Txog Kev Tsim Lub Vev Xaib Lub Vev Xaib: Lub vev xaib pub dawb no yog daim ntawv uas koj siv los npaj phiaj xwm kev tsim kho cov ntsiab lus zoo ua kom pom tseeb cov ntsiab lus lub vev xaib. Daim qauv txheej txheem no tau tsim nrog kev yooj yim siv cov khoom siv hauv Microsoft Excel txawm hais tias muaj ntau yam software sib txawv
Lub hauv paus tseem ceeb ntawm Lub Vev Xaib-raws li Lub Vev Xaib: 7 Kauj Ruam
Cov Hauv Paus Ntawm Lub Vev Xaib-raws li Lub Vev Xaib: Cov lus qhia no yuav qhia koj cov hauv paus ntawm kev tsim lub vev xaib nrog divs li cas. Vim tias cov ntxhuav siv rau kev teeb tsa yog qhov phem!: PTo kom nkag siab cov lus qhia no, koj yuav tsum paub qhov yooj yim html thiab css. Yog tias koj tsis nkag siab qee yam, xav tias dawb rau