Satura rādītājs:

Kā izmantot ESP8266 kā tīmekļa serveri: 5 soļi
Kā izmantot ESP8266 kā tīmekļa serveri: 5 soļi

Video: Kā izmantot ESP8266 kā tīmekļa serveri: 5 soļi

Video: Kā izmantot ESP8266 kā tīmekļa serveri: 5 soļi
Video: #8 Как управлять ПЛК ESP8266 из любой точки мира | УдаленныйXY | ОП320 ЧМИ 2024, Novembris
Anonim
Kā izmantot ESP8266 kā tīmekļa serveri
Kā izmantot ESP8266 kā tīmekļa serveri

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

Lieciet tam darboties
Lieciet tam darboties
Lieciet tam darboties
Lieciet tam darboties
Lai tas darbotos
Lai tas darbotos

Tālāk ir norādītas darbības

  1. Lejupielādējiet pievienoto failu un atveriet failu mousebot.ino
  2. Dodieties uz skice> parādīt skiču mapi un izveidojiet jaunu mapi ar nosaukumu data
  3. Saglabājiet html failu no šīs apmācības mapē ar nosaukumu. Es nosaucu savējo par "kursorsviru"
  4. Pārliecinieties, ka jūsu spiff jau ir funkcionāls, dodoties uz rīkiem un redzot "esp8266 skiču datu augšupielāde"
  5. Augšupielādējiet html failu nodemcu, noklikšķinot uz "esp8266 skiču datu augšupielāde"
  6. 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

Image
Image

Izveidojiet savienojumu ar nodeMCU un dodieties uz "192.168.4.1" un izmēģiniet to!:)

Ieteicams: