Satura rādītājs:
- Piegādes
- 1. darbība. Lieciet darboties
- 2. darbība. Kā darbojas kods
- 3. darbība: iestatiet NODEMCU kā serveri
- 4. darbība: ielādējiet HTML failu
- 5. darbība: izmēģiniet to
Video: Kā izmantot ESP8266 kā tīmekļa serveri: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Sveiki, es šobrīd izmantoju operētājsistēmu Windows 10, NodeMCU 1.0, un šeit ir manis izmantotās programmatūras saraksts un instalēšanas rokasgrāmatas, kurām sekoju:
- Arduino IDE
- Papildu dēļi priekš esp8266
- Spiff
Izmantotā bibliotēka:
Websocket
Es izmantoju NodeMCU kā serveri, lai kalpotu HTML failam, ko izveidoju no šī materiāla. Lai kalpotu šim failam, es augšupielādēju failu nodemcu failu sistēmā, izmantojot Spiffs. HTML fails nosūta datus uz nodemcu, izmantojot tīmekļa ligzdas, lai to drukātu seriālajā monitorā. Ātrā divvirzienu komunikācija, izmantojot servera un klienta tīmekļa ligzdas, ļāva to izmantot kā tālvadības pulti. Turpmākajās darbībās es izskaidroju, kā darbojas mans kods
Piegādes
NodeMCU
1. darbība. Lieciet darboties
Tālāk ir norādītas darbības
- Lejupielādējiet pievienoto failu un atveriet failu mousebot.ino
- Dodieties uz skice> parādīt skiču mapi un izveidojiet jaunu mapi ar nosaukumu data
- Saglabājiet html failu no šīs apmācības mapē ar nosaukumu. Es nosaucu savējo par "kursorsviru"
- Pārliecinieties, ka jūsu spiff jau ir funkcionāls, dodoties uz rīkiem un redzot "esp8266 skiču datu augšupielāde"
- Augšupielādējiet html failu nodemcu, noklikšķinot uz "esp8266 skiču datu augšupielāde"
- Pēc faila augšupielādes augšupielādējiet mezglā mousebot.ino failu, dodoties uz arduino IDE un nospiežot ctrl U
2. darbība. Kā darbojas kods
Pirmkārt, mēs iekļaujam bibliotēkas, kuras šis kods izmantos
// lai ESP8266 varētu izveidot savienojumu ar WIFI
#include #include #include // Ļauj ESP8266 darboties kā serverim #include // ļauj sazināties ar serveri un klientu (jūsu savienoto ierīci) #include #include // Lai atvērtu augšupielādēto failu nodemcu #include
Iestatiet esp8266 kā tīmekļa serveri, kas atvērts 80. portā. Ostas ir ceļi, pa kuriem tiks izvadīti dati. Kā servera ports tas nosūtīs HTML failu klientam (ar to saistītajām ierīcēm).
Pievieno tīmekļa ligzdas savienojumu, izmantojot 81 portu, lai klausītos ziņas no klienta
Websockets ir parametrs num, WStype_t, lietderīgā slodze un lielums. Numurs nosaka klienta numuru, lietderīgā slodze ir tā sūtītais ziņojums, lielums ir ziņojuma garums un WStype_t ir paredzēts dažādiem notikumiem, piemēram,
- WStype_DISCONNECTED - atvienojot klientu.
- WStype_CONNECTED: - kad klients izveido savienojumu
- WStype_TEXT - saņemti dati no klienta
Atkarībā no notikuma veida tiek veiktas dažādas darbības, kas tiek komentētas šeit
void webSocketEvent (uint8_t numurs, WStype_t tips, uint8_t * lietderīgā slodze, size_t garums) {
switch (tips) {case WStype_DISCONNECTED: Serial.printf ("[%u] Atvienots! / n", numurs); // izdrukā datus sērijveida monitora pārtraukumā; gadījums WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // iegūst klienta IP Serial.printf ("[%u] Savienots no%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], lietderīgā slodze); webSocket.sendTXT (numurs, "Savienots"); // nosūta "conencted" uz pārlūkprogrammas konsoli} break; gadījums WStype_TEXT: Serial.printf ("[%u] Dati: %s / n", numurs, lietderīgā slodze); // izdrukā klienta numuru %u un datus, kas saņemti kā virknes %s / n pārtraukumā;}}
3. darbība: iestatiet NODEMCU kā serveri
iestata ssid un paroli, ko izmantosit, lai vēlāk izveidotu savienojumu ar to
const char *ssid = "Izmēģināt";
const char *parole = "12345678";
iestatīšanas laikā mēs norādām ātrumu, ar kādu mūsu nodemcu un dators sazināsies, kas ir 115200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
iestatiet arī uz true, skatiet wifi diagnostikas izvadi serila terminālī
Serial.setDebugOutput (true);
aktivizēt failu sistēmu
SPIFFS.begin ();
Iepriekš iestatiet nodemcu kā piekļuves punktu, izmantojot ssid un paroli, un izdrukājiet to nodemcu IP, ar kuru izveidosit savienojumu agrāk. pēc noklusējuma tas ir 192.168.4.1
Serial.print ("Piekļuves punkta konfigurēšana …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, parole); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP adrese:"); Serial.println (myIP);
Inicializējiet tīmekļa ligzdu uz nodemcu, kas ir pur serveris
webSocket.begin ();
Izsauc funkciju webSocketEvent, kad notiek tīmekļa ligzdas notikums.
webSocket.onEvent (webSocketEvent);
Lai atkļūdotu, jaunā rindā izdrukājiet “WebSocket server started”. Tas ir, lai noteiktu koda rindiņu, ko nodemcu apstrādā
Serial.println ("WebSocket serveris ir palaists.");
kad klients apmeklē vietni 192.168.4.1, tas izsauks funkciju handleFileRead un kopā ar to nosūtīs parametru servera URI, kas šajā gadījumā ir mūsu nodemcu informācija. Funkcija handleFileRead kalpos html failam no nodemcu failu sistēmas
server.onNotFound ( () {
ja (! handleFileRead (server.uri ()))
ja to nevar atrast, tas parādīs "FileNotFound"
server.send (404, "text/plain", "FileNotFound");
});
Sākas serveris un ir sākts drukas HTTP serveris.
server.begin (); Serial.println ("HTTP serveris ir palaists");
Savā tukšajā ciklā mēs ļaujam serverim nepārtraukti rīkoties ar klientu un tā tīmekļa ligzdu saziņu šādi:
void loop (void) {
server.handleClient (); webSocket.loop ();}
4. darbība: ielādējiet HTML failu
mēs izmantosim funkciju ar nosaukumu handleFileRead, lai atvērtu un html failu no nodemcu failu sistēmas. tas atgriezīs vērtības vērtību, lai noteiktu, vai tas ir ielādēts vai nē.
Kad klients atver "192.168.4.1/", mēs iestatām faila ceļu uz "/Joystick.html, mūsu faila nosaukumu datu mapē
bool handleFileRead (String path) {
Serial.println ("handleFileRead:" + ceļš); if (path.endsWith ("/")) path += "Joystick.html"; ja (SPIFFS.eksistē (ceļš)) {Faila fails = SPIFFS.open (ceļš, "r"); lieluma_t nosūtīts = server.streamFile (fails, "text/html"); file.close (); atgriezties patiesi; } return false; }
Pārbaudiet, vai pastāv faila ceļš "/Joystick.html"
ja (SPIFFS.eksistē (ceļš)) {
Ja tas pastāv, atveriet ceļu ar mērķi to izlasīt, kas norādīts ar "r". Dodieties šeit, lai iegūtu vairāk mērķu.
Faila fails = SPIFFS.open (ceļš, "r");
Nosūta failu uz serveri kā ar satura tipu "text/html"
lieluma_t nosūtīts = server.streamFile (fails, "text/html");
aizveriet failu
file.close ();
funkcija handleFileRead atgriež vērtību true
atgriezties taisnība;}
ja faila ceļš neeksistē, funkcija handleFileRead atgriež nepatiesu
atgriezties patiesi; }
5. darbība: izmēģiniet to
Izveidojiet savienojumu ar nodeMCU un dodieties uz "192.168.4.1" un izmēģiniet to!:)
Ieteicams:
Garāžas durvju atvērējs ar atsauksmēm, izmantojot tīmekļa serveri Esp8266 .: 6 soļi
Garāžas durvju atvērējs ar atsauksmēm, izmantojot tīmekļa serveri Esp8266. Sveiki, es jums parādīšu, kā vienkāršā veidā izveidot garāžas durvju atvērēju.-ESP8266 ir kodēts kā tīmekļa serveris, durvis var būt atvērtas visā pasaulē. atgriezeniskā saite, jūs zināt, vai durvis ir atvērtas vai aizvērtas reāllaikā-vienkāršs, tikai viens īsceļš
Apmācība: Kā izmantot ESP32-CAM video straumēšanas tīmekļa serverī: 3 soļi
Apmācība: Kā izmantot ESP32-CAM video straumēšanas tīmekļa serverī: Apraksts: ESP32-CAM ir ESP32 bezvadu IoT redzes attīstības padome ļoti mazā formā, kas paredzēta izmantošanai dažādos IoT projektos, piemēram, mājas viedierīcēs, rūpniecībā bezvadu vadība, bezvadu uzraudzība, bezvadu QR identifikācija
Kā izmantot Android tālruni kā tīmekļa kameru ar Skype: 5 soļi
Kā izmantot Android tālruni kā tīmekļa kameru ar Skype: Ir vecs teiciens, ka attēls ir tūkstoš vārdu vērts … un ir jauns teiciens, ka video ir miljona vērts. Tagad tas varētu šķist pārspīlēts, taču ir milzīga atšķirība starp sarunu ar kādu zvanot un sarunu ar
ESP8266 Nodemcu temperatūras uzraudzība, izmantojot DHT11 vietējā tīmekļa serverī - Pārlūkprogrammā iegūstiet istabas temperatūru un mitrumu: 6 soļi
ESP8266 Nodemcu temperatūras uzraudzība, izmantojot DHT11 vietējā tīmekļa serverī | Iegūstiet istabas temperatūru un mitrumu savā pārlūkprogrammā: Sveiki, puiši, šodien mēs izveidosim mitrumu & temperatūras uzraudzības sistēma, izmantojot ESP 8266 NODEMCU & DHT11 temperatūras sensors. Temperatūru un mitrumu noteiks DHT11 sensors & to var redzēt pārlūkprogrammā, kura tīmekļa lapa tiks pārvaldīta
7 segmentu LED displeja vadīšana, izmantojot tīmekļa serveri ESP8266: 8 soļi (ar attēliem)
7 segmentu LED displeja vadīšana, izmantojot ESP8266 tīmekļa serveri: manam projektam ir Nodemcu ESP8266, kas kontrolē 7 segmentu displeju, izmantojot http serveri, izmantojot html formu