Բովանդակություն:

Ինչպես օգտագործել ESP8266 որպես վեբ սերվեր ՝ 5 քայլ
Ինչպես օգտագործել ESP8266 որպես վեբ սերվեր ՝ 5 քայլ

Video: Ինչպես օգտագործել ESP8266 որպես վեբ սերվեր ՝ 5 քայլ

Video: Ինչպես օգտագործել ESP8266 որպես վեբ սերվեր ՝ 5 քայլ
Video: Ինչպես կատարել 4-ալիք ESP8266 ESP01 Wi-Fi ռելեներ | ESP01 Տնային ավտոմատացում | Remotexy | Խաբել 2024, Հուլիսի
Anonim
Ինչպես օգտագործել ESP8266 որպես վեբ սերվեր
Ինչպես օգտագործել ESP8266 որպես վեբ սերվեր

Ողջույն, ես այժմ օգտագործում եմ Windows 10, NodeMCU 1.0 և ահա այն ծրագրաշարի ցուցակը, որն օգտագործել եմ և տեղադրման ուղեցույցները, որոնց հետևել եմ.

  • Arduino IDE
  • Լրացուցիչ տախտակներ esp8266- ի համար
  • Սփիֆ

Օգտագործված գրադարան.

Կայքէջ

Ես օգտագործել եմ NodeMCU- ն որպես սերվեր ՝ ծառայելու համար իմ պատրաստած HTML ֆայլին thistutorial- ից: Այս ֆայլը սպասարկելու համար ես ֆայլը վերբեռնեցի nodemcu ֆայլային համակարգում ՝ օգտագործելով Spiffs- ը: HTML ֆայլը տվյալներ է ուղարկում nodemcu- ին ՝ օգտագործելով սոցցանցերը, որոնք պետք է տպվեն սերիական մոնիտորի վրա: Սերվերի և հաճախորդի վեբ ցանցերի միջոցով արագ երկկողմանի հաղորդակցությունը հնարավորություն տվեց այն օգտագործել որպես հեռակառավարման վահանակ: Հետևյալ քայլերի դեպքում ես բացատրում եմ, թե ինչպես է աշխատում իմ կոդը

Պարագաներ

NodeMCU

Քայլ 1: Գործարկեք այն

Ստեղծեք այն աշխատելու համար
Ստեղծեք այն աշխատելու համար
Գործի՛ր այն
Գործի՛ր այն
Գործի՛ր այն
Գործի՛ր այն

Ահա այն քայլերը, թե ինչպես է այն աշխատում

  1. Ներբեռնեք կցված ֆայլը և բացեք mousebot.ino ֆայլը
  2. Գնացեք ուրվագիծ> ցուցադրեք էսքիզների թղթապանակը և ստեղծեք նոր թղթապանակ `տվյալներով
  3. Պահեք html ֆայլը այս ձեռնարկից ՝ անունով թղթապանակում: Ես իմը անվանեցի որպես «oyոյստիկ»
  4. Համոզվեք, որ ձեր սփիֆն արդեն գործում է ՝ գնալով գործիքներ և տեսնելով «esp8266 էսքիզների տվյալների վերբեռնումը»:
  5. Վերբեռնեք html ֆայլը nodemcu- ում ՝ կտտացնելով «esp8266 էսքիզ տվյալների վերբեռնում»
  6. Ֆայլի վերբեռնումից հետո nodemcu- ում վերբեռնեք mousebot.ino ֆայլը `arduino IDE- ին մուտքագրելով և սեղմելով ctrl U

Քայլ 2: Ինչպես է գործում ծածկագիրը

Նախ, մենք ներառում ենք այն գրադարանները, որոնք կօգտագործի այս կոդը

// որպեսզի ESP8266- ը միանա WIFI- ին

#ներառել #ներառել #ներառել // Թույլ է տալիս ESP8266- ին հանդես գալ որպես սերվեր #ներառել // հնարավորություն է տալիս հաղորդակցվել սերվերի և հաճախորդի հետ (ձեր միացված սարքը) #ներառել #ներառել // բացել բարձրացված ֆայլը nodemcu #include- ում

Սահմանեք esp8266- ը որպես 80 -րդ նավահանգստում բացված վեբ սերվեր: Նավահանգիստներն այն ուղիներն են, որոնցով տվյալները կանցնեն: Որպես սերվերի նավահանգիստ, այն HTML ֆայլը կուղարկի հաճախորդին (դրան միացված դեվիճները):

Ավելացնում է ցանցային միացում 81 -րդ պորտի միջոցով ՝ հաճախորդից ստացված հաղորդագրությունները լսելու համար

Կայքերի ցանցերն ունեն num, WStype_t պարամետր, բեռնվածություն և չափ: Թիվը որոշում է հաճախորդի համարը, բեռը `այն ուղարկվող հաղորդագրությունն է, չափը` հաղորդագրության երկարությունը և WStype_t- ը տարբեր իրադարձությունների համար, ինչպիսիք են

  • WStype_DISCONNECTED - հաճախորդի անջատման դեպքում:
  • WStype_CONNECTED: - երբ հաճախորդը միանում է
  • WStype_TEXT - Ստացվել են տվյալներ հաճախորդից

Կախված իրադարձության տեսակից, կատարվում են տարբեր գործողություններ և մեկնաբանվում են այստեղ

void webSocketEvent (uint8_t num, WStype_t տեսակը, uint8_t * բեռնվածությունը, size_t երկարությունը) {

անջատիչ (տեսակ) {case WStype_DISCONNECTED: Serial.printf ("

Քայլ 3: Սահմանեք NODEMCU- ն որպես սերվեր

սահմանում է ssid- ը և գաղտնաբառը, որը կօգտագործեք դրան ավելի ուշ միանալու համար

const char *ssid = "Փորձիր";

const char *գաղտնաբառ = "12345678";

տեղադրման ժամանակ մենք նշում ենք այն արագությունը, որով այն կփոխանցի մեր nodemcu- ն և համակարգիչը, որը 115200 է:

դատարկ կարգավորում (դատարկ) {

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

ճշմարիտ սահմանածը նույնպես տես սերիլայի տերմինալում wifi ախտորոշիչ ելքը

Serial.setDebugOutput (ճշմարիտ);

initaliaze ֆայլային համակարգը

SPIFFS.begin ();

Կարգավորեք nodemcu- ն որպես մուտքի կետ ssid և գաղտնաբառի պաշտպանությամբ և տպեք այն nodemcu- ի ip- ն, որի հետ ավելի վաղ կկապվեք: լռելյայն այն 192.168.4.1 է

Serial.print («Մուտքի կետի կարգավորում …»);

WiFi.mode (WIFI_AP); WiFi.softAP (ssid, գաղտնաբառ); IPAddress myIP = WiFi.softAPIP (); Serial.print («AP IP հասցե ՝»); Serial.println (myIP);

Նախագծեք վեբ ցանցը nodemcu- ի վրա, որը pur սերվեր է

webSocket.begin ();

Callանգահարում է webSocketEvent ֆունկցիան, երբ տեղի է ունենում վեբ ցանցի իրադարձություն:

webSocket.onEvent (webSocketEvent);

Վրիպազերծման համար տպեք «WebSocket սերվերը գործարկվեց» նոր տողում: Սա պետք է որոշի nodemcu- ի մշակած կոդի գիծը

Serial.println («WebSocket սերվերը գործարկված է»);

երբ հաճախորդը այցելում է 192.168.4.1, այն կկանչի handleFileRead գործառույթը և դրա հետ կուղարկի պարամետրի սերվերի URI, որն այս դեպքում մեր nodemcu տեղեկատվությունն է: HandleFileRead գործառույթը կծառայի HTML ֆայլին nodemcu ֆայլային համակարգից

server.onNotFound ( () {

եթե (! handleFileRead (server.uri ()))

եթե այն հնարավոր չէ գտնել, ցույց կտա «FileNotFound»

server.send (404, «տեքստ/պարզ», «FileNotFound»);

});

Սկսում է սերվերը և տպված HTTP սերվերը գործարկված է:

server.begin (); Serial.println («HTTP սերվերը գործարկված է»);

Մեր դատարկ օղակի վրա մենք սերվերին հնարավորություն ենք տալիս շարունակաբար կառավարել հաճախորդին և նրա վեբ ցանցերի հաղորդակցությունները հետևյալ կերպ.

դատարկ շրջան (դատարկ) {

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

Քայլ 4: Բեռնել HTML ֆայլը

բացելու համար մենք կօգտագործենք handleFileRead անունով գործառույթը և nodemcu ֆայլային համակարգից html ֆայլը: այն կվերադարձնի արժեքի բուլյան `որոշելու` բեռնված է, թե ոչ:

Երբ հաճախորդի կողմից բացվում է «192.168.4.1/» - ը, մենք ֆայլի ուղին դնում ենք «/Joystick.html» ՝ տվյալների պանակում մեր ֆայլի անունը

bool handleFileRead (լարային ուղի) {

Serial.println ("handleFileRead:" + ուղի); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t ուղարկված = server.streamFile (ֆայլ, "text/html"); file.close (); վերադարձնել ճշմարիտ; } վերադարձնել կեղծ; }

Ստուգեք, արդյոք գոյություն ունի «/Joystick.html» ֆայլի ուղին

եթե (SPIFFS. գոյություն ունի (ուղի)) {

Եթե այն գոյություն ունի, բացեք ճանապարհը ՝ այն կարդալու նպատակով, որը նշված է «r» - ով: Գնացեք այստեղ ավելի շատ նպատակների համար:

Ֆայլի ֆայլ = SPIFFS.open (ուղի, «r»);

Ֆայլը ուղարկում է սերվեր ՝ որպես «տեքստ/html» բովանդակության տեսակով

size_t ուղարկված = server.streamFile (ֆայլ, "text/html");

փակել ֆայլը

file.close ();

handleFileRead գործառույթը վերադարձնում է true

վերադարձնել ճշմարիտ;}

եթե ֆայլի ուղին գոյություն չունի, handleFileRead գործառույթը վերադարձնում է կեղծ

վերադարձնել ճշմարիտ; }

Քայլ 5: Փորձիր այն:

Image
Image

Միացեք nodeMCU- ին և անցեք «192.168.4.1» և փորձեք այն::)

Խորհուրդ ենք տալիս: