Daftar Isi:

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

Video: Cara Menggunakan ESP8266 Sebagai Server Web: 5 Langkah

Video: Cara Menggunakan ESP8266 Sebagai Server Web: 5 Langkah
Video: #002 ESP8266 | Nodemcu - Membuat halaman web dan Routing di Server ESP8266 2024, Desember
Anonim
Cara Menggunakan ESP8266 Sebagai Server Web
Cara Menggunakan ESP8266 Sebagai Server Web

Hai, saya saat ini menggunakan windows 10, NodeMCU 1.0 dan berikut adalah daftar Perangkat Lunak yang saya gunakan dan panduan instalasi yang saya ikuti:

  • Arduino IDE
  • Papan tambahan untuk esp8266
  • Spiff

Perpustakaan yang digunakan:

soket web

Saya menggunakan NodeMCU sebagai server untuk menyajikan File HTML yang saya buat dari tutorial ini. Untuk menyajikan file ini, saya mengunggah file ke sistem file nodemcu menggunakan Spiffs. File HTML mengirimkan data ke nodemcu menggunakan soket web untuk dicetak pada monitor serial untuk ini. Komunikasi dua arah yang cepat melalui soket web server dan klien memungkinkan ini untuk digunakan sebagai kendali jarak jauh. Pada langkah-langkah berikut, saya akan menjelaskan cara kerja kode saya

Perlengkapan

NodeMCU

Langkah 1: Buat Ini Bekerja

Buat itu bekerja
Buat itu bekerja
Buat itu bekerja
Buat itu bekerja
Buat itu bekerja
Buat itu bekerja

Berikut langkah-langkah cara kerjanya

  1. Unduh file terlampir dan buka file mousebot.ino
  2. Buka sketsa> tampilkan folder sketsa dan buat folder baru bernama data
  3. Simpan file html dari tutorial ini di folder bernama. Saya menamai milik saya sebagai "Joystick"
  4. Pastikan spiff Anda sudah berfungsi dengan membuka alat dan melihat "unggahan data sketsa esp8266"
  5. Upload file html ke nodemcu dengan mengklik "esp8266 sketch data upload"
  6. Setelah file diunggah, unggah ke nodemcu file mousebot.ino dengan masuk ke arduino IDE dan tekan ctrl U

Langkah 2: Cara Kerja Kode

Pertama, kami menyertakan perpustakaan yang akan digunakan kode ini

//untuk mengaktifkan ESP8266 agar terhubung ke WIFI

#include #include #include //Mengaktifkan ESP8266 untuk bertindak sebagai server #include //mengaktifkan komunikasi dengan server dan klien (perangkat Anda yang terhubung) #include #include //Untuk membuka file yang di-uplaod di nodemcu #include

Atur esp8266 sebagai server web yang dibuka pada port 80. Port adalah jalur yang akan dilalui data. Sebagai port server, Ini akan mengirim file HTML ke klien (perangkat yang terhubung dengannya).

Menambahkan koneksi websocket menggunakan port 81 untuk mendengarkan pesan dari klien

Soket web memiliki parameter num, WStype_t, payload, dan ukuran. Angka tersebut menentukan nomor klien, payload adalah pesan yang dikirim, ukuran adalah panjang pesan dan WStype_t adalah untuk acara yang berbeda seperti

  • WStype_DISCONNECTED - saat pemutusan klien.
  • WStype_CONNECTED: - ketika klien terhubung
  • WStype_TEXT - Menerima data dari klien

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

void webSocketEvent(num uint8_t, tipe WStype_t, uint8_t * payload, size_t panjang) {

switch (type) { case WStype_DISCONNECTED: Serial.printf("[%u] Terputus!\n", num); //mencetak data ke serial monitor break; kasus WStype_CONNECTED: { IPaddress ip = webSocket.remoteIP(num); //mendapatkan IP klien Serial.printf("[%u] Terhubung dari %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], muatan); webSocket.sendTXT(angka, "Terhubung"); //mengirim "tersambung" ke konsol browser } break; case WStype_TEXT: Serial.printf("[%u] Data: %s\n", num, payload); //mencetak nomor klien di %u dan data yang diterima sebagai string di %s\n break;}}

Langkah 3: Atur NODEMCU Sebagai Server

menyetel ssid dan kata sandi yang akan Anda gunakan untuk menyambungkannya nanti

const char *ssid = "Coba";

const char *kata sandi = "12345678";

pada pengaturan, kami menentukan tingkat di mana nodemcu dan pc kami akan berkomunikasi, yaitu 115200.

pengaturan batal(batal){

Serial.begin(115200); Serial.print("\n");

atur ke true juga lihat output diagnostik wifi di terminal serila

Serial.setDebugOutput(benar);

inisialisasi sistem file

SPIFFS.mulai();

Atur nodemcu sebagai accesspoint dengan ssid dan password defiend sebelumnya dan cetak ip nodemcu yang akan Anda hubungkan sebelumnya. secara default adalah 192.168.4.1

Serial.print("Konfigurasi titik akses…");

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

Inisialisasi soket web pada nodemcu, yang merupakan server murni

webSocket.begin();

Memanggil fungsi webSocketEvent saat kejadian websocket terjadi.

webSocket.onEvent(webSocketEvent);

Untuk debugging, cetak " Server WebSocket dimulai" pada baris baru. Ini untuk menentukan baris kode yang diproses oleh nodemcu

Serial.println("Server WebSocket dimulai.");

ketika klien mengunjungi 192.168.4.1, ia akan memanggil fungsi handleFileRead dan mengirim bersamanya parameter server URI yang dalam hal ini adalah informasi nodemcu kami. Fungsi handleFileRead akan melayani file html dari sistem file nodemcu

server.onNotFound((){

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

jika tidak dapat ditemukan maka akan muncul "FileNotFound"

server.send(404, "teks/polos", "FileNotFound");

});

Memulai server dan mencetak server HTTP dimulai.

server.mulai(); Serial.println("Server HTTP dimulai");

Pada loop kosong kami, kami memungkinkan server untuk terus menangani komunikasi klien dan soket webnya sebagai berikut:

lingkaran kosong (batal){

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

Langkah 4: Muat File HTML

kita akan menggunakan fungsi bernama handleFileRead untuk membuka dan file html dari sistem file nodemcu. itu akan mengembalikan nilai boolean untuk menentukan apakah itu dimuat atau tidak.

Ketika "192.168.4.1/" dibuka oleh klien, kami mengatur jalur file ke "/ Joystick.html, nama file kami di folder data

bool handleFileRead(Jalur string){

Serial.println("handleFileRead: " + jalur); if(path.endsWith("/")) path += "Joystick.html"; if(SPIFFS.exists(path)){ File file = SPIFFS.open(path, "r"); size_t terkirim = server.streamFile(file, "teks/html"); file.close(); kembali benar; } kembali salah; }

Periksa apakah jalur file"/Joystick.html" ada

if(SPIFFS.exists(path)){

Jika ada, buka jalur dengan tujuan membacanya yang ditentukan oleh "r". Buka di sini untuk lebih banyak tujuan.

File file = SPIFFS.open(path, "r");

Mengirim file ke server dengan tipe konten "teks/html"

size_t terkirim = server.streamFile(file, "teks/html");

tutup filenya

file.tutup();

fungsi handleFileRead mengembalikan true

kembali benar;}

jika jalur file tidak ada, fungsi handleFileRead mengembalikan false

kembali benar; }

Langkah 5: Cobalah

Image
Image

Hubungkan ke nodeMCU dan buka "192.168.4.1" dan coba!:)

Direkomendasikan: