Агуулгын хүснэгт:

ESP8266 -ийг вэб сервер болгон хэрхэн ашиглах вэ: 5 алхам
ESP8266 -ийг вэб сервер болгон хэрхэн ашиглах вэ: 5 алхам

Видео: ESP8266 -ийг вэб сервер болгон хэрхэн ашиглах вэ: 5 алхам

Видео: ESP8266 -ийг вэб сервер болгон хэрхэн ашиглах вэ: 5 алхам
Видео: Mining Dogecoin Menggunakan VGA Withdraw Otomatis Ke Indodax 2024, Арваннэгдүгээр
Anonim
ESP8266 -ийг вэб сервер болгон хэрхэн ашиглах талаар
ESP8266 -ийг вэб сервер болгон хэрхэн ашиглах талаар

Сайн байна уу, би одоогоор Windows 10, NodeMCU 1.0 ашиглаж байгаа бөгөөд миний дагаж мөрдсөн програм хангамж, суулгах гарын авлагын жагсаалт энд байна.

  • Arduino IDE
  • Esp8266 -ийн нэмэлт самбарууд
  • Spiff

Ашигласан номын сан:

Вэбсокет

Би NodeMCU -ийг thistutorial -ээс хийсэн HTML файлд үйлчлэх сервер болгон ашигласан. Энэ файлд үйлчлэхийн тулд би Spiffs ашиглан файлыг nodemcu файлын системд байршуулсан. HTML файл нь nodemcu руу өгөгдлийг цуваа дэлгэц дээр хэвлэх вэбсокет ашиглан илгээдэг бөгөөд сервер болон үйлчлүүлэгчийн вэбсокетоор дамжуулан хоёр талт хурдан холболтыг алсын удирдлага болгон ашиглах боломжийг олгодог. Дараагийн алхам дээр миний код хэрхэн ажилладаг талаар тайлбарлах болно

Хангамж

NodeMCU

Алхам 1: Үүнийг ажиллуул

Үүнийг ажиллуул
Үүнийг ажиллуул
Үүнийг ажиллуул
Үүнийг ажиллуул
Үүнийг ажиллуул
Үүнийг ажиллуул

Энэ нь хэрхэн ажилладаг талаархи алхамуудыг энд оруулав

  1. Хавсаргасан файлыг татаж аваад mousebot.ino файлыг нээнэ үү
  2. Ноорог> ноорог хавтасыг үзээд өгөгдөл нэртэй шинэ хавтас үүсгэнэ үү
  3. Энэ гарын авлагаас html файлыг нэрлэсэн хавтсанд хадгална уу. Би намайг "Joystick" гэж нэрлэсэн
  4. "Esp8266 ноорог өгөгдөл байршуулах" -ыг харахын тулд багаж хэрэгсэл рүү очиж, таны спифф аль хэдийн ажиллаж байгаа эсэхийг шалгаарай.
  5. Html файлыг nodemcu руу "esp8266 ноорог өгөгдөл байршуулах" дээр дарж оруулна уу.
  6. Файл байршуулсны дараа mousebot.ino файлыг nodemcu руу arduino IDE руу оруулаад ctrl U дарна уу.

Алхам 2: Код хэрхэн ажилладаг талаар

Нэгдүгээрт, бид энэ код ашиглах номын сангуудыг оруулна

// ESP8266 -г WIFI -д холбогдохыг идэвхжүүлэх

#include #include #include // ESP8266 -ийг серверийн үүргийг гүйцэтгэхийг идэвхжүүлнэ #include // нь сервер болон үйлчлүүлэгчтэй харилцах боломжийг олгодог (таны холбогдсон төхөөрөмж)

Esp8266 -ийг 80 -р порт дээр нээгдсэн вэб сервер болгон тохируулаарай. Портууд нь өгөгдөл дамжих зам юм. Серверийн портын хувьд энэ нь HTML файлыг үйлчлүүлэгчид илгээх болно (түүнтэй холбогдсон холболтууд).

Үйлчлүүлэгчээс ирсэн мессежийг сонсохын тулд 81 порт ашиглан вэбсокет холболт нэмнэ

Вэбсокетууд нь num, WStype_t, ачаалал, хэмжээ гэсэн параметртэй байдаг. Num нь үйлчлүүлэгчийн дугаарыг тодорхойлдог, ачаалал нь түүний илгээж буй мессеж, хэмжээ нь зурвасын урт, WStype_t нь өөр өөр үйл явдлуудад зориулагдсан болно.

  • WStype_DISCONNECTED - үйлчлүүлэгчийг салгахад.
  • WStype_CONNECTED: - үйлчлүүлэгч холбогдох үед
  • WStype_TEXT - Үйлчлүүлэгчээс мэдээлэл хүлээн авсан

Үйл явдлын төрлөөс хамааран янз бүрийн үйлдлийг хийж, энд тайлбарласан болно

хүчин төгөлдөр бус webSocketEvent (uint8_t num, WStype_t төрөл, uint8_t * ачаалал, size_t урт) {

шилжүүлэгч (төрөл) {тохиолдолд WStype_DISCONNECTED: Serial.printf ("[%u] салгагдсан! / n", тоо); // өгөгдлийг цуваа дэлгэцийн тасалдалд хэвлэнэ; тохиолдолд WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // үйлчлүүлэгчийн IP -ийг авна Serial.printf ("[%u]%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], ачаалал); webSocket.sendTXT (тоо, "Холбогдсон"); // "conencted" -ийг хөтчийн консол руу илгээдэг} завсарлага; тохиолдолд WStype_TEXT: Serial.printf ("[%u] Өгөгдөл: %s / n", тоо, ачаалал); // үйлчлүүлэгчийн дугаарыг %u хэлбэрээр хэвлэж, өгөгдлийг %s дотор тэмдэгт мөр болгон хэвлэнэ / n завсарлага;}}

Алхам 3: NODEMCU -ийг сервер болгон тохируулна уу

дараа нь холбогдохын тулд ашиглах ssid болон нууц үгээ тохируулна

const char *ssid = "Оролдох";

const char *password = "12345678";

тохиргоон дээр бид nodemcu болон pc -ийнхээ харилцах хурдыг тодорхойлдог бөгөөд энэ нь 115200 юм.

хүчингүй тохиргоо (хүчингүй) {

Цуваа.begin (115200); Serial.print ("\ n");

Үнэн гэж тохируулсан бол серила терминал дээрх wifi оношлогооны гаралтыг үзнэ үү

Serial.setDebugOutput (үнэн);

файлын системийг эхлүүлэх

SPIFFS.begin ();

Nodemcu -ийг ssid болон нууц үгийг өмнө нь нэвтрэх цэг болгон тохируулж, өмнө нь холбогдох nodemcu -ийн ip -ийг хэвлэ. Анхдагч байдлаар энэ нь 192.168.4.1 байна

Serial.print ("Хандалтын цэгийг тохируулж байна …");

WiFi горим (WIFI_AP); WiFi.softAP (ssid, нууц үг); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP хаяг:"); Serial.println (myIP);

Nodemcu дээрх вэбсокетыг эхлүүлээрэй

webSocket.begin ();

Webocket үйл явдал тохиолдоход webSocketEvent функцийг дуудна.

webSocket.onEvent (webSocketEvent);

Дебаг хийх зорилгоор "WebSocket сервер эхэлсэн" гэж шинэ мөрөнд хэвлэ. Энэ нь nodemcu -ийн боловсруулж буй кодын мөрийг тодорхойлох зорилготой юм

Serial.println ("WebSocket сервер эхэлсэн.");

үйлчлүүлэгч 192.168.4.1 -д зочлохдоо handleFileRead функцийг дуудаж, түүнтэй хамт бидний nodemcu мэдээлэл болох URI параметрийн серверийг илгээх болно. HandleFileRead функц нь nodemcu файлын системээс html файлд үйлчилнэ

server.onNotFound ( () {

if (! handleFileRead (server.uri ()))

олдохгүй бол "FileNotFound" -ыг харуулна.

server.send (404, "текст/энгийн", "FileNotFound");

});

Серверийг эхлүүлж, HTTP серверийг хэвлэж эхлэв.

server.begin (); Serial.println ("HTTP сервер эхэлсэн");

Хоосон цикл дээр бид серверийг үйлчлүүлэгч болон түүний вэбсайтын холбоосыг дараах байдлаар тасралтгүй удирдах боломжийг олгодог.

void loop (хүчингүй) {

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

Алхам 4: HTML файлыг ачаална уу

nodemcu файлын системээс html файлыг нээхийн тулд бид handleFileRead нэртэй функцийг ашиглах болно. Энэ нь ачаалагдсан эсэхийг тодорхойлохын тулд логик утгыг буцааж өгөх болно.

Үйлчлүүлэгч "192.168.4.1/" -ийг нээхэд бид файлын замыг өгөгдлийн хавтсанд байгаа файлынхаа нэрийг "/Joystick.html" болгож тохируулна.

bool handleFileRead (String path) {

Serial.println ("handleFileRead:" + зам); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (path)) {Файлын файл = SPIFFS.open (зам, "r"); size_t sent = server.streamFile (файл, "текст/html"); file.close (); үнэн рүү буцах; } худал буцах; }

"/Joystick.html" файлын зам байгаа эсэхийг шалгана уу

if (SPIFFS.exists (path)) {

Хэрэв байгаа бол түүнийг унших зорилгоор "r" -ээр заасан замыг нээнэ үү. Илүү олон зорилгоор энд очно уу.

Файлын файл = SPIFFS.open (зам, "r");

Файлыг "text/html" агуулгын хэлбэрээр сервер рүү илгээдэг.

size_t sent = server.streamFile (файл, "текст/html");

файлыг хаах

file.close ();

handleFileRead функц үнэнийг буцаана

үнэн буцах;}

хэрэв файлын зам байхгүй бол handleFileRead функц худал гэж буцаана

үнэн рүү буцах; }

Алхам 5: Үүнийг туршаад үзээрэй

Image
Image

NodeMCU руу холбогдоод "192.168.4.1" рүү ороод үзээрэй!:)

Зөвлөмж болгож буй: