Isi kandungan:

ESP8266 dan ESP32 Dengan WiFiManager: 10 Langkah
ESP8266 dan ESP32 Dengan WiFiManager: 10 Langkah

Video: ESP8266 dan ESP32 Dengan WiFiManager: 10 Langkah

Video: ESP8266 dan ESP32 Dengan WiFiManager: 10 Langkah
Video: Ubah Config Wireless Tanpa Coding - ESP8266 dan ESP32 WiFi Manager - AutoConnected 2024, Julai
Anonim
Image
Image
PINTAR
PINTAR

Adakah anda biasa dengan WiFiManager? Ia adalah perpustakaan yang berfungsi sebagai pengurus sambungan tanpa wayar, dan dengan itu, kami mempunyai cara yang lebih mudah untuk mengkonfigurasi Titik Akses dan Stesen. Saya telah menerima beberapa cadangan untuk membincangkan perkara ini; jadi hari ini saya akan memperkenalkan anda kepada perpustakaan ini dan fungsinya. Saya juga akan membuat demonstrasi penggunaannya dengan ESP32 dan ESP8266.

Langkah 1: PINOUT

PINTAR
PINTAR

Di sini saya menunjukkan PINOUT dua peranti yang akan kami gunakan:

  • NodeMCU ESP-12E
  • NodeMCU ESP-WROOM-32

Langkah 2: WiFiManager

WiFiManager sebenarnya tidak lebih daripada perpustakaan yang ditulis di atas WiFi.h untuk pengurusan sambungan tanpa wayar yang mudah. Ingatlah bahawa dengannya, kita mempunyai kemudahan yang lebih besar untuk mengkonfigurasi Titik Akses dan Stesen. Untuk mod Stesen, kami mengkonfigurasi melalui portal di penyemak imbas.

Beberapa ciri:

• Ia bergantung pada penyambungan automatik

• Permulaan portal konfigurasi bukan automatik

• Beroperasi secara terpilih dalam mod dwi

Langkah 3: Bagaimana Ia Berfungsi

Bagaimana ia berfungsi
Bagaimana ia berfungsi
Bagaimana ia berfungsi
Bagaimana ia berfungsi

ESP akan memulakan portal konfigurasi WiFi apabila disambungkan dan akan menyimpan data konfigurasi ke memori yang tidak mudah berubah. Selepas itu, portal konfigurasi hanya akan dimulakan semula sekiranya butang ditekan dalam modul ESP.

Di sini anda boleh memeriksa aliran konfigurasi dan ikuti langkah demi langkah ini:

1. Dengan menggunakan sebarang peranti berkemampuan WiFi dengan penyemak imbas, sambungkan ke titik akses yang baru dibuat dan masukkan alamat 192.168.4.1.

2. Pada layar anda akan mempunyai dua pilihan untuk menyambung ke rangkaian yang ada:

• Konfigurasikan WiFi

• Konfigurasikan WiFi (Tanpa Imbasan)

3. Pilih salah satu rangkaian dan masukkan kata laluan (jika diperlukan). Kemudian simpan dan tunggu ESP dimulakan semula.

4. Pada akhir boot, ESP cuba menyambung ke rangkaian yang disimpan. Sekiranya anda tidak dapat melakukan ini, anda akan mengaktifkan Titik Akses.

Langkah 4: Perpustakaan

Perpustakaan
Perpustakaan

Tambahkan perpustakaan "WifiManager-ESP32".

Pergi ke https://github.com/zhouhan0126/WIFIMANAGER-ESP32 dan muat turun perpustakaan.

Buka zip fail dan tampalkannya ke folder perpustakaan Arduino IDE.

C: / Fail Program (x86) / Arduino / perpustakaan

Tambahkan pustaka "DNSServer-ESP32".

Pergi ke pautan https://github.com/zhouhan0126/DNSServer---esp32 dan muat turun perpustakaan.

Buka zip fail dan tampalkannya ke folder perpustakaan Arduino IDE.

C: / Fail Program (x86) / Arduino / perpustakaan

Tambahkan pustaka "WebServer-ESP32".

Pergi ke pautan https://github.com/zhouhan0126/WebServer-esp32 dan muat turun perpustakaan.

Buka zip fail dan tampalkannya ke folder perpustakaan Arduino IDE.

C: / Fail Program (x86) / Arduino / perpustakaan

Catatan:

Perpustakaan WiFiManager-ESP32 sudah mempunyai tetapan yang berfungsi dengan ESP8266, jadi kami hanya akan menggunakan ini, bukan dua lib WiFiManager (satu untuk setiap jenis cip).

Seperti yang akan kita lihat nanti, ESP8266WiFi dan ESP8266WebServer adalah perpustakaan yang tidak perlu kita muat turun, kerana mereka sudah datang ketika kita memasang ESP8266 di Arduino IDE.

Langkah 5: Fungsi

Fungsi
Fungsi
Fungsi
Fungsi
Fungsi
Fungsi

Berikut adalah beberapa fungsi yang ditawarkan oleh WiFiManager kepada kami.

1. sambung auto

Fungsi autoConnect bertanggungjawab untuk membuat Titik Akses. Kita boleh menggunakannya dalam tiga cara.

• autoConnect ("nama rangkaian", "kata laluan"); - membuat rangkaian dengan nama dan kata laluan yang ditentukan.

• autoConnect ("nama rangkaian"); - membuat rangkaian terbuka dengan nama yang ditentukan.

• autoConnect (); - mewujudkan rangkaian yang terbuka dan dinamakan secara automatik dengan nama menjadi 'ESP' + chipID.

2. mulaConfigPortal

Fungsi startConfigPortal bertanggungjawab untuk membuat Titik Akses tanpa cuba menyambung ke rangkaian yang disimpan sebelumnya.

• startConfigPortal ("nama rangkaian", "kata laluan"); - membuat rangkaian dengan nama dan kata laluan yang ditentukan.

• startConfigPortal (); - mewujudkan rangkaian yang terbuka dan dinamakan secara automatik dengan nama menjadi 'ESP' + chipID.

3. dapatkanConfigPortalSSID

Mengembalikan SSID portal (Titik Akses)

4. getSSID

Ini mengembalikan SSID rangkaian yang disambungkan.

5. getPassword

Ini mengembalikan kata laluan rangkaian yang disambungkannya.

6. setDebugOutput

Fungsi setDebugOutput bertanggungjawab untuk mencetak mesej debug pada monitor bersiri. Mesej ini sudah ditentukan di perpustakaan. Semasa anda menjalankan fungsi, data akan dicetak.

Secara lalai, fungsi ini ditetapkan ke BENAR. Sekiranya anda ingin mematikan mesej, tetapkan fungsinya ke PALSU.

7. setMinimumSignalQuality

Fungsi setMinimumSignalQuality bertanggungjawab untuk menyaring rangkaian berdasarkan kualiti isyarat. Secara lalai, WiFiManager tidak akan menunjukkan rangkaian masuk di bawah 8%.

8. setRemoveDuplicateAPs

Fungsi setRemoveDuplicateAPs bertanggungjawab untuk membuang pendua rangkaian.

Secara lalai ia ditetapkan ke BENAR.

9. setAPStaticIPConfig

Fungsi setAPStaticIPConfig bertanggung jawab untuk menetapkan tetapan alamat statik ketika berada dalam mod titik akses.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

Fungsi setSTAStaticIPConfig bertanggungjawab untuk menetapkan tetapan alamat statik ketika berada dalam mod stesen.

(IP, GATEWAY, SUBNET)

Anda mesti menambah perintah sebelum autoConnect !!!

11. setAPCallback

Fungsi setAPCallback bertanggungjawab untuk memberitahu anda bahawa mod AP telah dimulakan.

Parameter adalah fungsi yang mesti dibuat untuk menunjukkannya sebagai panggilan balik;

12. setSaveConfigCallback

Fungsi setSaveConfigCallback bertanggungjawab untuk memberitahu anda bahawa konfigurasi baru telah disimpan dan sambungan berjaya diselesaikan.

Parameter adalah fungsi untuk membuat dan menunjukkan ini sebagai allback.

Anda mesti menambah arahan sebelum autoConnect !!!

Langkah 6: Perhimpunan

perhimpunan
perhimpunan

Contohnya

Dalam contoh kami, kami akan membuat Titik Akses dengan ESP (kodnya akan berfungsi untuk ESP8266 dan ESP32). Selepas penciptaan AP, kami akan mengakses portal melalui IP 192.168.4.1 (yang merupakan lalai untuk mengaksesnya). Oleh itu, mari dapatkan rangkaian yang ada, pilih satu dan simpan. Dari sana, ESP akan dimulakan semula dan cuba menyambung ke sana, dan kemudian ia akan berfungsi sebagai stesen dan tidak lagi sebagai Titik Akses.

Setelah memasuki mod stesen, anda boleh membuat ESP kembali ke mod Titik Akses hanya melalui butang.

Langkah 7: Kod

Perpustakaan

Pertama mari kita tentukan perpustakaan yang akan kita gunakan.

Perhatikan bahawa kami mempunyai perintah #if, #else, dan #endif. Mereka bersyarat untuk memasukkan perpustakaan yang diperlukan berkaitan dengan cip. Bahagian ini sangat penting untuk menjalankan kod yang sama pada ESP8266 dan ESP32.

#jika ditentukan (ESP8266)

#include // ESP8266 Core Library Library #else #include // ESP32 Core WiFi Library #endif

#jika ditentukan (ESP8266)

#include // Local WebServer yang digunakan untuk melayani portal konfigurasi

#selamat

#include // Pelayan DNS Tempatan yang digunakan untuk mengalihkan semua permintaan ke portal konfigurasi (https://github.com/zhouhan0126/DNSServer---esp32)

#endif

#include // Local WebServer yang digunakan untuk melayani portal konfigurasi (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNServer---esp32 (ASAL)

Langkah 8: Persediaan

Dalam persediaan, kami mengkonfigurasi WiFiManager kami dengan cara paling mudah. Mari kita tentukan panggilan balik dan buat rangkaian.

const int PIN_AP = 2;

batal persediaan () {Serial.begin (9600); pinMode (PIN_AP, INPUT); // Dekaração do objeto wifiManager WiFiManager wifiManager;

// utilizando esse comando, as configurações são apagadas da memória // caso tiver salvo alguma rede para conectar automamente, ela é apagada. // wifiManager.resetSettings (); // callback para quando entra em modo de configuração AP wifiManager.setAPCallback (configModeCallback); // callback untuk quando se conecta em uma rede, ou seja, quando passa a trabalhar em modo estação wifiManager.setSaveConfigCallback (saveConfigCallback); // cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect ("ESP_AP", "12345678"); }

Langkah 9: Gelung

Di gelung, kita akan membaca pin butang untuk melihat apakah sudah ditekan, dan kemudian kita akan memanggil kaedah untuk mengaktifkan semula mod AP.

gelung kosong () {

WiFiManager wifiManager; // se o botão juga pressionado if (digitalRead (PIN_AP) == TINGGI) {Serial.println ("resetar"); // tenta abrir o portal if (! wifiManager.startConfigPortal ("ESP_AP", "12345678")) {Serial.println ("Falha ao conectar"); kelewatan (2000); ESP.mulakan semula (); kelewatan (1000); } Serial.println ("Conectou ESP_AP !!!"); }

Apabila anda menekan butang, ESP akan keluar dari mod Stesen dan membuka Titik Akses dan portal anda.

Ingat bahawa kita tidak menggunakan arahan resetSettings (). Tetapan masih disimpan untuk kali berikutnya ESP boot.

Langkah 10: Panggilan Balik

Fungsi panggil balik, yang berkaitan dengan peristiwa, berfungsi untuk anda memiliki saat operasi yang tepat, dalam kes kami, memasuki mod AP dan mod Stesen. Kita kemudian dapat melaksanakan beberapa rutin yang diinginkan, seperti mengambil SSID dari rangkaian yang disambungkan, misalnya.

// callback que indica que o ESP entrou no modo AP

void configModeCallback (WiFiManager * myWiFiManager) {// Serial.println ("Memasukkan mod konfigurasi"); Serial.println ("Entrou no modo de configuração"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP Serial.println (myWiFiManager-> getConfigPortalSSID ()); // imprime o SSID criado da rede

}

// callback que indica que salvamos uma nova rede para se conectar (modo estação)

batal saveConfigCallback () {// Serial.println ("Harus simpan config"); Serial.println ("Configuração salva"); Serial.println (WiFi.softAPIP ()); // imprime o IP lakukan AP}

Disyorkan: