Isi kandungan:

Cara Menggunakan ESP8266 Sebagai Pelayan Web: 5 Langkah
Cara Menggunakan ESP8266 Sebagai Pelayan Web: 5 Langkah

Video: Cara Menggunakan ESP8266 Sebagai Pelayan Web: 5 Langkah

Video: Cara Menggunakan ESP8266 Sebagai Pelayan Web: 5 Langkah
Video: Atur SSID WiFi ESP8266 Lewat Web Browser 2024, November
Anonim
Cara Menggunakan ESP8266 Sebagai Pelayan Web
Cara Menggunakan ESP8266 Sebagai Pelayan Web

Hai, Saya sedang menggunakan windows 10, NodeMCU 1.0 dan berikut adalah senarai Perisian yang saya gunakan dan panduan pemasangan yang saya ikuti:

  • Arduino IDE
  • Papan tambahan untuk esp8266
  • Spiff

Perpustakaan yang digunakan:

Websocket

Saya menggunakan NodeMCU sebagai pelayan untuk melayani Fail HTML yang saya buat dari buku ini. Untuk melayani fail ini, saya memuat naik fail ke sistem fail nodemcu menggunakan Spiffs. Fail HTML menghantar data ke nodemcu menggunakan soket web untuk dicetak pada monitor bersiri untuk ini. Komunikasi dua arah yang cepat melalui soket web pelayan dan pelanggan membolehkan ini digunakan sebagai alat kawalan jauh. Pada langkah-langkah berikut, saya tidak akan menerangkan bagaimana kod saya berfungsi

Bekalan

NodeMCU

Langkah 1: Jadikannya Berfungsi

Jadikan Ia Berfungsi
Jadikan Ia Berfungsi
Jadikan Ia Berfungsi
Jadikan Ia Berfungsi
Jadikan Ia Berfungsi
Jadikan Ia Berfungsi

Inilah langkah-langkah bagaimana ia berfungsi

  1. Muat turun fail yang dilampirkan dan buka fail mousebot.ino
  2. Pergi ke sketsa> tunjukkan folder sketsa dan buat folder baru bernama data
  3. Simpan fail html dari tutorial ini dalam folder bernama. Saya menamakan saya sebagai "Joystick"
  4. Pastikan spiff anda sudah berfungsi dengan pergi ke alat dan melihat "esp8266 sketsa muat naik data"
  5. Muat naik fail html ke nodemcu dengan mengklik "muat naik data sketsa esp8266"
  6. Selepas memuat naik fail, muat naik ke file nodemcu mousebot.ino dengan memasukkan ke arduino IDE dan menekan ctrl U

Langkah 2: Bagaimana Kod Berfungsi

Pertama, kami memasukkan perpustakaan yang akan digunakan kod ini

// untuk membolehkan ESP8266 menyambung ke WIFI

#include #include #include // Membolehkan ESP8266 bertindak sebagai pelayan #include // membolehkan komunikasi dengan pelayan dan klien (peranti anda yang disambungkan) #include #include // Untuk membuka fail yang dinaikkan pada nodemcu #include

Tetapkan esp8266 sebagai pelayan web yang dibuka di port 80. Pelabuhan adalah laluan yang akan dilalui oleh data. Sebagai port pelayan, Ia akan menghantar fail HTML kepada klien (alat yang terhubung dengannya).

Menambah sambungan soket web menggunakan port 81 untuk mendengar mesej dari pelanggan

Soket web mempunyai bilangan parameter, WStype_t, muatan dan ukuran. Num menentukan bilangan pelanggan, muatan adalah mesej yang dihantar, ukuran adalah panjang mesej dan WStype_t adalah untuk acara yang berbeza seperti

  • WStype_DISCONNECTED - semasa pemutusan hubungan pelanggan.
  • WStype_CONNECTED: - apabila pelanggan menyambung
  • WStype_TEXT - Data yang diterima daripada pelanggan

Bergantung pada jenis acara, tindakan yang berbeza dilakukan dan dikomentari di sini

batal webSocketEvent (jumlah uint8_t, jenis WStype_t, uint8_t * muatan, ukuran_t panjang) {

beralih (jenis) {case WStype_DISCONNECTED: Serial.printf ("[% u] Disconnected! / n", num); // mencetak data ke rehat monitor bersiri; kes WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // mendapat IP pelanggan Serial.printf ("[% u] Disambungkan dari% d.% d.% d.% d url:% s / n", num, ip [0], ip [1], ip [2], ip [3], muatan); webSocket.sendTXT (bilangan, "Bersambung"); // menghantar "disambungkan" ke konsol penyemak imbas} rehat; kes WStype_TEXT: Serial.printf ("[% u] Data:% s / n", bilangan, muatan); // mencetak nombor pelanggan dalam% u dan data yang diterima sebagai rentetan dalam% s / n rehat;}}

Langkah 3: Tetapkan NODEMCU Sebagai Pelayan

menetapkan ssid dan kata laluan yang akan anda gunakan untuk menyambungnya kemudian

const char * ssid = "Cuba";

const char * kata laluan = "12345678";

pada penyiapan, kami menentukan kadar di mana nodemcu dan pc kami akan berkomunikasi, iaitu 115200.

persediaan kosong (kekosongan) {

Serial.begin (115200); Cetakan bersiri ("\ n");

tetapkan ke benar juga lihat output diagnostik wifi di terminal serila

Serial.setDebugOutput (benar);

initaliaze sistem fail

SPIFFS.begin ();

Tetapkan nodemcu sebagai titik akses dengan ssid dan kata sandi yang terdahulu dan cetak ip nodemcu yang akan anda sambungkan lebih awal. secara lalai adalah 192.168.4.1

Serial.print ("Mengkonfigurasi pusat akses …");

WiFi.mode (WIFI_AP); WiFi.softAP (ssid, kata laluan); IPAddress myIP = WiFi.softAPIP (); Serial.print ("Alamat IP AP:"); Serial.println (myIP);

Memulakan soket web di nodemcu, yang merupakan pelayan pur

webSocket.begin ();

Memanggil fungsi webSocketEvent ketika kejadian websocket berlaku.

webSocket.onEvent (webSocketEvent);

Untuk penyahpepijatan, cetak "Pelayan WebSocket dimulakan" pada baris baru. Ini untuk menentukan garis kod yang diproses oleh nodemcu

Serial.println ("Pelayan WebSocket dimulakan.");

apabila pelanggan melayari 192.168.4.1, ia akan memanggil fungsi handleFileRead dan menghantarnya URI pelayan parameter yang dalam kes ini adalah maklumat nodemcu kami. Fungsi handleFileRead akan melayani fail html dari sistem fail nodemcu

pelayan.onNotFound ( () {

jika (! handleFileRead (server.uri ()))

jika tidak dijumpai, ia akan menunjukkan "FileNotFound"

server.send (404, "text / plain", "FileNotFound");

});

Memulakan pelayan dan mencetak pelayan HTTP dimulakan.

pelayan.begin (); Serial.println ("Pelayan HTTP dimulakan");

Pada gelung kekosongan kami, kami membolehkan pelayan untuk menangani komunikasi klien dan soket webnya secara berterusan seperti berikut:

gelung kosong (kekosongan) {

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

Langkah 4: Muatkan Fail HTML

kita akan menggunakan fungsi bernama handleFileRead untuk membuka dan fail html dari sistem fail nodemcu. ia akan mengembalikan nilai boolean untuk menentukan sama ada dimuat atau tidak.

Apabila "192.168.4.1/" dibuka oleh klien, kami menetapkan jalan fail ke "/Joystick.html, nama fail kami di folder data

bool handleFileRead (String path) {

Serial.println ("handleFileRead:" + jalan); if (path.endsWith ("/")) jalan + = "Joystick.html"; if (SPIFFS.exists (path)) {Fail fail = SPIFFS.open (jalan, "r"); size_t sent = server.streamFile (fail, "teks / html"); fail.tutup (); kembali benar; } kembali palsu; }

Periksa sama ada laluan fail "/Joystick.html" ada

jika (SPIFFS. wujud (jalan)) {

Sekiranya ada, buka jalan dengan tujuan membacanya yang ditentukan oleh "r". Pergi ke sini untuk lebih banyak tujuan.

Fail fail = SPIFFS.open (jalan, "r");

Menghantar fail ke pelayan seperti dengan jenis kandungan "text / html"

size_t sent = server.streamFile (fail, "text / html");

tutup fail

fail.tutup ();

fungsi handleFileRead kembali benar

kembali benar;}

jika laluan fail tidak ada, fungsi handleFileRead kembali palsu

kembali benar; }

Langkah 5: Cubalah

Image
Image

Sambung ke nodeMCU dan pergi ke "192.168.4.1" dan cubalah!:)

Disyorkan: