Dalam artikel ini kami akan menetapkan alamat IP statik ESP32 yang boleh diingati oleh peranti lain.
Pengenalan kepada Alamat IP ESP32
Bekerja dengan ESP32 mungkin memerlukan alamat IP statik yang berasingan kerana apabila kami mereka bentuk pelayan web untuk ESP32, kami mengakses pelayan web tersebut menggunakan alamat IP ESP32. Alamat IP ini diberikan oleh rangkaian WiFi di mana ESP32 disambungkan.
Ini mungkin menyebabkan masalah semasa berurusan dengan ESP32 dalam projek kerana setiap kali penutupan atau penetapan semula ESP32 alamat IP baharu akan diberikan kepadanya oleh rangkaian WiFi. Akibatnya, kami memerlukan alamat IP baharu untuk pelayan web. Jadi, penyelesaian pantas untuk ini ialah menetapkan alamat IP statik untuk ESP32 yang kekal tidak berubah walaupun ESP32 dimatikan atau ditetapkan semula.
Biasalah DHCP (Protokol Konfigurasi Hos Dinamik) alat pengurusan rangkaian memberikan alamat IP kepada semua peranti yang disambungkan di dalam rangkaian WiFi. DHCP membantu kerana ia mengelakkan keperluan pentadbir rangkaian untuk memberikan alamat IP secara manual kepada semua peranti yang disambungkan di dalam rangkaian. Dalam rangkaian rumah biasanya penghala WiFi bertindak sebagai pelayan DHCP.
Bersama-sama dengan alamat IP DHCP juga memberikan beberapa parameter lain yang termasuk:
- Topeng subnet: Ia adalah nombor 32-bit yang menutup alamat IP dan membahagikannya kepada rangkaian dan alamat hos.
- Alamat pintu masuk: Ia ialah alamat IP peranti yang memautkan peranti rangkaian tempatan ke internet biasanya di rumah, ia adalah penghala WiFi.
- DNS: Ia adalah alamat IP pelayan nama domain.
Semua parameter ini penting untuk mengakses pelayan web ESP32. Apabila kami akan menggunakan alamat IP statik untuk ESP32 semua parameter ini mesti diluluskan jika tidak ESP32 akan gagal mewujudkan komunikasi.
Sebaik sahaja ESP32 diberikan dengan alamat IP statik, ia tidak akan menggunakan DHCP pelayan dan tidak akan mengambil data yang diperlukan. Jadi, untuk menyambungkan ESP32 dalam rangkaian WiFi dengan alamat IP statik kita mesti mengetahui parameter yang disebutkan di atas untuk itu pertama kita akan menyambungkannya ke rangkaian WiFi dan menyemak semua parameter rangkaian termasuk subnet mask, alamat gateway dan IP DNS alamat.
Selepas mengetahui parameter, kami boleh menetapkan alamat IP statik.
Mencari Parameter Rangkaian Lalai
Seperti yang dibincangkan dalam bahagian sebelumnya, kami akan menyambungkan ESP32 dengan rangkaian WiFi untuk mendapatkan semua parameter rangkaian itu. Jadi, dengan mentakrifkan SSID rangkaian dan kata laluan dan menggunakan perpustakaan WiFi.h kita boleh menyambungkan ESP32 ke rangkaian.
Kod
Muat naik kod yang diberikan di bawah dalam papan ESP32 dan ingat untuk menukar SSID dan kata laluan dengan kelayakan rangkaian anda sendiri.
#includeconst char * ssid = 'nama rangkaian anda' ;
const char * kata laluan = 'YourNetworkPass' ;
batal persediaan ( ) {
bersiri. bermula ( 115200 ) ;
WiFi. bermula ( ssid , kata laluan ) ;
sementara ( WiFi. status ( ) != WL_CONNECTED ) {
kelewatan ( 500 ) ;
bersiri. cetak ( 'Menyambung... \n \n ' ) ;
}
bersiri. cetak ( 'IP Tempatan: ' ) ;
bersiri. println ( WiFi. localIP ( ) ) ;
bersiri. cetak ( 'Topeng subnet: ' ) ;
bersiri. println ( WiFi. topeng subnet ( ) ) ;
bersiri. cetak ( 'IP Gerbang: ' ) ;
bersiri. println ( WiFi. gatewayIP ( ) ) ;
bersiri. cetak ( 'DNS 1:' ) ;
bersiri. println ( WiFi. dnsIP ( 0 ) ) ;
bersiri. cetak ( 'DNS 2:' ) ;
bersiri. println ( WiFi. dnsIP ( 1 ) ) ;
}
batal gelung ( ) { }
Kod dimulakan dengan memasukkan perpustakaan WiFi.h. Seterusnya, kami menentukan SSID dan kata laluan. Di sini ESP32 disambungkan ke rangkaian WiFi dan semua parameter yang diperlukan akan ditetapkan oleh pelayan DHCP.
Dalam bahagian kedua kod, kami mencetak alamat IP yang diberikan oleh pelayan DHCP bersama-sama dengan parameter tambahan: topeng subnet, IP get laluan dan kedua-dua IP pelayan DNS.
Pengeluaran
Dalam output kita boleh melihat semua parameter rangkaian dicetak pada monitor bersiri.
Sekarang kami akan menetapkan IP statik kepada ESP32. Kecuali untuk alamat IP tempatan semua parameter yang tinggal akan digunakan dalam bahagian seterusnya.
Menetapkan Alamat IP Statik untuk ESP32
Seperti yang telah kita ketahui parameter rangkaian di mana ESP32 disambungkan sekarang, kami akan menggunakan alamat IP tersuai untuk menyambungkan ESP32 dalam rangkaian yang sama sambil menggunakan parameter lain yang tidak berubah seperti yang kami dapat dalam output sebelumnya.
Tetapi sebelum itu kita perlu memasang ESP32Ping.h perpustakaan dalam Arduino IDE. Menggunakan perpustakaan ini, kami boleh mengesahkan cuaca alamat IP statik kami berfungsi atau tidak. Klik untuk memuat turun ESP32Ping.h perpustakaan.
Setelah fail zip dimuat turun Pergi ke: Lakaran>Sertakan Pustaka>Tambah Pustaka .Zip
Kod
Sekarang muat naik kod yang diberikan di bawah dalam ESP32. Kod ini akan menetapkan alamat IP statik untuk ESP32. Ingat untuk menggantikan SSID dan Kata Laluan untuk rangkaian.
#include#include
const char * ssid = 'nama rangkaian anda' ;
const char * kata laluan = 'YourNetworkPass' ;
IPAddress IP statik ( 192 , 168 , 18 , 53 ) ;
Gerbang IPAddress ( 192 , 168 , 18 , 1 ) ;
Subnet IPAddress ( 255 , 255 , 255 , 0 ) ;
IPAddress dns ( 101 , lima puluh , 101 , lima puluh ) ;
batal persediaan ( ) {
bersiri. bermula ( 115200 ) ;
jika ( WiFi. konfigurasi ( staticIP , pintu masuk , subnet , dns , dns ) == salah ) {
bersiri. println ( 'Konfigurasi gagal.' ) ;
}
WiFi. bermula ( ssid , kata laluan ) ;
sementara ( WiFi. status ( ) != WL_CONNECTED ) {
kelewatan ( 500 ) ;
bersiri. cetak ( 'Menyambung... \n \n ' ) ;
}
bersiri. cetak ( 'IP Tempatan: ' ) ;
bersiri. println ( WiFi. localIP ( ) ) ;
bersiri. cetak ( 'Topeng subnet: ' ) ;
bersiri. println ( WiFi. topeng subnet ( ) ) ;
bersiri. cetak ( 'IP Gerbang: ' ) ;
bersiri. println ( WiFi. gatewayIP ( ) ) ;
bersiri. cetak ( 'DNS 1:' ) ;
bersiri. println ( WiFi. dnsIP ( 0 ) ) ;
bersiri. cetak ( 'DNS 2:' ) ;
bersiri. println ( WiFi. dnsIP ( 1 ) ) ;
kejayaan bool = Ping. ping ( 'www.google.com' , 3 ) ;
jika ( ! kejayaan ) {
bersiri. println ( ' \n Ping gagal' ) ;
kembali ;
}
bersiri. println ( ' \n Ping berjaya.' ) ;
}
batal gelung ( ) { }
Kod dimulakan dengan memasukkan WiFi dan perpustakaan Ping. Seterusnya, kami menentukan SSID dan kata laluan untuk rangkaian WiFi.
Selepas itu kami menentukan semua parameter termasuk alamat IP statik bersama-sama dengan DNS, get laluan IP dan subnet. Ambil perhatian bahawa kami telah memberikan alamat IP (192, 168, 18, 53) yang berada dalam subnet alamat IP yang sama yang kami peroleh sebelumnya dalam kod sebelumnya. Pastikan alamat IP ini tidak digunakan oleh mana-mana peranti lain di dalam rangkaian.
Setelah WiFi disambungkan, kami mencetak semua parameter rangkaian dan menguji Ping menggunakan Google. Jika semua parameter ditakrifkan dengan betul Ping berjaya mesej akan muncul.
Pengeluaran
Sekarang apabila kami menyambung semula papan ESP32 ke PC selepas diputuskan sambungan, alamat IP statiknya sekali lagi dikonfigurasikan, menunjukkan bahawa ia tidak akan berubah walaupun kuasa padam.
Kami telah berjaya memberikan alamat IP statik kepada ESP32.
Kesimpulan
Semasa bekerja dengan ESP32 dalam mereka bentuk projek, alamat IP statik diperlukan. Apabila berbilang peranti perlu bersambung dengan alamat IP statik ESP32 menjadikan keseluruhan proses lancar. Menggunakan parameter rangkaian, kami boleh menentukan sebarang alamat IP statik. Di sini dalam artikel ini, kami membincangkan langkah-langkah yang diperlukan untuk menentukan alamat IP statik.