Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Gawin Ito
- Hakbang 2: Paano Gumagana ang Code
- Hakbang 3: Itakda ang NODEMCU Bilang Server
- Hakbang 4: I-load ang HTML File
- Hakbang 5: Subukan Ito
Video: Paano Gumamit ng ESP8266 Bilang Webserver: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Kumusta, kasalukuyang gumagamit ako ng windows 10, NodeMCU 1.0 at narito ang listahan ng ginamit kong Software at mga gabay sa pag-install na sinundan ko:
- Arduino IDE
- Mga karagdagang board para sa esp8266
- Spiff
Ginamit ang library:
Websocket
Ginamit ko ang NodeMCU bilang isang server upang maghatid ng isang HTML File na ginawa ko mula sa thistutorial. Upang maihatid ang file na ito, na-upload ko ang file sa nodemcu file system gamit ang Spiff. Nagpapadala ang file ng HTML ng data sa nodemcu gamit ang websockets upang mai-print sa serial monitor para dito. Ang mabilis na komunikasyon sa dalawang bidirectional sa pamamagitan ng websockets ng server at pinagana ng client na magamit bilang remote control. Sa mga sumusunod na hakbang, ipinapaliwanag kung paano gumagana ang aking code
Mga gamit
NodeMCU
Hakbang 1: Gawin Ito
Narito ang mga hakbang sa kung paano ito gumagana
- I-download ang nakalakip na file at buksan ang mousebot.ino file
- Pumunta sa sketch> ipakita ang sketch folder at gumawa ng isang bagong folder na pinangalanang data
- I-save ang html file mula sa tutorial na ito sa folder na pinangalanan. Pinangalanan ko ang akin bilang "Joystick"
- Tiyaking gumagana na ang iyong spiff sa pamamagitan ng pagpunta sa mga tool at nakikita ang "esp8266 sketch data upload"
- I-upload ang html file sa nodemcu sa pamamagitan ng pag-click sa "esp8266 sketch data upload"
- Pagkatapos mag-upload ng file, i-upload sa nodemcu ang mousebot.ino file sa pamamagitan ng oing sa arduino IDE at pagpindot sa ctrl U
Hakbang 2: Paano Gumagana ang Code
Una, isinasama namin ang mga aklatan na gagamitin ng code na ito
// upang paganahin ang ESP8266 upang kumonekta sa WIFI
#include #include #include // Pinapagana ang ESP8266 na kumilos bilang isang server #include // nagbibigay-daan sa komunikasyon sa server at sa kliyente (ang iyong conected device)
Itakda ang esp8266 bilang isang webserver na binuksan sa port 80. Ang mga port ay mga pathway na daanan ng data. Bilang isang port ng server, ipapadala nito ang HTML file sa client (ang deivces na konektado dito).
Nagdaragdag ng isang koneksyon sa websocket gamit ang port 81 upang makinig para sa mga mensahe mula sa client
Ang websockets ay may parameter na num, WStype_t, payload at laki. Tinutukoy ng num ang client numeber, ang payload ay ang mensahe na ipinadala nito, ang laki ay ang haba ng mensahe at ang WStype_t ay para sa magkakaibang mga kaganapan tulad ng
- WStype_DISCONNected - sa pagdidiskonekta ng isang kliyente.
- WStype_CONNected: - kapag kumonekta ang isang client
- WStype_TEXT - Nakatanggap ng data mula sa client
Nakasalalay sa uri ng kaganapan iba't ibang mga pagkilos ay tapos na at nagkomento dito
walang bisa ang webSocketEvent (uint8_t num, uri ng WStype_t, uint8_t * payload, haba ng laki_t) {
switch (type) {case WStype_DISCONNected: Serial.printf ("[% u] Nakakonekta! / n", num); // naglilimbag ng data sa serial monitor break; kaso WStype_CONNected: {IPAddress ip = webSocket.remoteIP (num); // gets the IP of the client Serial.printf ("[% u] Connected from% d.% d.% d.% d url:% s / n", num, ip [0], ip [1], ip [2], ip [3], payload); webSocket.sendTXT (num, "Nakakonekta"); // nagpapadala ng "conencted" sa browser console} break; case WStype_TEXT: Serial.printf ("[% u] Data:% s / n", num, payload); // print ang client number sa% u at ang data na natanggap bilang mga string sa% s / n break;}}
Hakbang 3: Itakda ang NODEMCU Bilang Server
itinakda ang ssid at password na gagamitin mo upang kumonekta dito sa ibang pagkakataon
const char * ssid = "Subukan";
const char * password = "12345678";
sa set up, tinukoy namin ang rate kung saan ito ang aming nodemcu at pc ay makipag-usap, na kung saan ay 115200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
itakda sa totoo ring tingnan ang output ng diagnostic ng wifi sa serila terminal
Serial.setDebugOutput (totoo);
initaliaze ang filesystem
SPIFFS.begin ();
I-set up ang nodemcu bilang isang accesspoint na may ssid at password defiend nang mas maaga at i-print ang ip ng nodemcu na makakonekta ka nang mas maaga. sa pamamagitan ng default ito ay 192.168.4.1
Serial.print ("Pag-configure ng access point …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, password); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP address:"); Serial.println (myIP);
Ipasimula ang websocket sa nodemcu, whcih ay pur server
webSocket.begin ();
Tawag sa pagpapaandar na webSocketEvent kapag nangyari ang isang kaganapan sa websocket.
webSocket.onEvent (webSocketEvent);
Para sa pag-debug, i-print ang "Nagsimula ang server ng WebSocket" sa isang bagong linya. Ito ay upang matukoy ang linya ng code na pinoproseso ng nodemcu
Serial.println ("Nagsimula ang server ng WebSocket.");
kapag ang isang kliyente ay bumisita sa 192.168.4.1, tatawag ito sa function handleFileRead at ipadala kasama nito ang parameter server URI na sa kasong ito ay ang aming impormasyon na nodemcu. Ihahatid ng pagpapaandar ng functionFileRead ang html file mula sa nodemcu file system
server.onNotFound ( () {
kung (! handleFileRead (server.uri ()))
kung hindi ito matagpuan makikita nito ang "FileNotFound"
server.send (404, "text / plain", "FileNotFound");
});
Sinimulan ang server at i-print ang HTTP server na nagsimula.
server.begin (); Serial.println ("nagsimula ang HTTP server");
Sa aming void loop, pinapagana namin ang server na contiuosly pangasiwaan ang client at ang mga websockets na komunikasyon nito tulad ng sumusunod:
walang bisa loop (walang bisa) {
server.handleClient (); webSocket.loop ();}
Hakbang 4: I-load ang HTML File
gagamitin namin ang isang pagpapaandar na pinangalanang handleFileRead upang buksan at ang html file mula sa nodemcu file system. ibabalik nito ang isang boolean na halaga upang matukoy kung na-load o hindi.
Kapag ang "192.168.4.1/" ay bukas ng kliyente itinakda namin ang file path sa "/Joystick.html, ang pangalan ng aming file sa folder ng data
bool handleFileRead (String path) {
Serial.println ("handleFileRead:" + path); kung (path.endsWith ("/")) path + = "Joystick.html"; kung (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t sent = server.streamFile (file, "text / html"); file.close (); bumalik totoo; } bumalik na hindi totoo; }
Suriin kung ang file path na "/Joystick.html" ay mayroon
kung (SPIFFS.exists (path)) {
Kung mayroon ito, buksan ang landas na may isang layunin ng pagbabasa nito na tinukoy ng "r". Pumunta dito para sa higit pang mga layunin.
File file = SPIFFS.open (path, "r");
Ipinapadala ang file sa server tulad ng isang uri ng nilalaman ng "teksto / html"
size_t sent = server.streamFile (file, "text / html");
isara ang file
file.close ();
ang function handleFileRead ay nagbabalik totoo
bumalik totoo;}
kung ang path ng file ay hindi umiiral, ang function handleFileRead ay nagbabalik ng mali
bumalik totoo; }
Hakbang 5: Subukan Ito
Kumonekta sa nodeMCU at pumunta sa "192.168.4.1" at subukan ito!:)
Inirerekumendang:
Paano Gumamit ng Stepper Motor Bilang Rotary Encoder at OLED Display para sa Mga Hakbang: 6 na Hakbang
Paano Gumamit ng Stepper Motor Bilang Rotary Encoder at OLED Display para sa Mga Hakbang: Sa tutorial na ito matututunan namin kung paano subaybayan ang mga hakbang sa motor ng stepper sa OLED Display. Manood ng isang demonstration video. Ang kredito para sa Orihinal na tutorial ay napupunta sa gumagamit ng youtube " sky4fly "
Paano Gumamit ng isang Android Phone Bilang isang Webcam Sa Skype: 5 Mga Hakbang
Paano Gumamit ng isang Android Phone Bilang isang Webcam Sa Skype: Mayroong isang lumang sinasabi na ang isang larawan ay nagkakahalaga ng isang libong mga salita … at mayroong isang bagong sinasabi na ang isang video ay nagkakahalaga ng isang milyon. Ngayon ay maaaring parang isang pagmamalabis, ngunit mayroong isang malaking pagkakaiba sa pagitan ng pagsasalita sa isang tao sa isang tawag at pagsasalita sa
Visuino Paano Gumamit ng isang Button Bilang isang Pag-input upang Makontrol ang Mga Bagay Tulad ng LED: 6 Mga Hakbang
Visuino Paano Gumamit ng isang Button Bilang isang Pag-input upang Makontrol ang Mga Bagay Tulad ng LED: Sa tutorial na ito matututunan natin kung paano i-ON at I-OFF ang LED gamit ang isang simpleng pindutan at Visuino. Panoorin ang isang video ng demonstrasyon
Paano Gumamit ng Mac Terminal, at Paano Gumamit ng Mga Key Function: 4 na Hakbang
Paano Gumamit ng Mac Terminal, at Paano Gumamit ng Mga Key Function: Ipapakita namin sa iyo kung paano buksan ang MAC Terminal. Ipapakita rin namin sa iyo ang ilang mga tampok sa loob ng Terminal, tulad ng ifconfig, pagbabago ng mga direktoryo, pag-access sa mga file, at arp. Papayagan ka ng Ifconfig na suriin ang iyong IP address, at ang iyong MAC ad
Paano Gumamit ng Wiimote Bilang isang Computer Mouse Gamit ang Kandila Bilang Sensor !!: 3 Mga Hakbang
Paano Gumamit ng Wiimote Bilang isang Computer Mouse Gamit ang Kandila Bilang Sensor !!: Ipapakita sa iyo ng gabay na ito kung paano i-link ang iyong Wii Remote (Wiimote) sa iyong pc at gamitin ito bilang isang mouse