Πίνακας περιεχομένων:

ESP8266 και ESP32 Με WiFiManager: 10 βήματα
ESP8266 και ESP32 Με WiFiManager: 10 βήματα

Βίντεο: ESP8266 και ESP32 Με WiFiManager: 10 βήματα

Βίντεο: ESP8266 και ESP32 Με WiFiManager: 10 βήματα
Βίντεο: Как запрограммировать модуль реле Wi-Fi ESP8266 ESP-01 2024, Νοέμβριος
Anonim
Image
Image
ΠΙΝΟΥΤ
ΠΙΝΟΥΤ

Είστε εξοικειωμένοι με το WiFiManager; Είναι μια βιβλιοθήκη που λειτουργεί ως διαχειριστής ασύρματης σύνδεσης και μαζί της, έχουμε έναν ευκολότερο τρόπο να διαμορφώσουμε τόσο ένα σημείο πρόσβασης όσο και έναν σταθμό. Έχω λάβει αρκετές προτάσεις για να συζητήσω αυτό το θέμα. έτσι σήμερα θα σας παρουσιάσω αυτήν τη βιβλιοθήκη και τις λειτουργίες της. Θα κάνω επίσης μια επίδειξη της χρήσης του τόσο με το ESP32 όσο και με το ESP8266.

Βήμα 1: PINOUT

ΠΙΝΟΥΤ
ΠΙΝΟΥΤ

Εδώ παρουσιάζω το PINOUT των δύο συσκευών που θα χρησιμοποιήσουμε:

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

Βήμα 2: WiFiManager

Το WiFiManager δεν είναι τίποτα περισσότερο από μια βιβλιοθήκη γραμμένη πάνω από το WiFi.h για εύκολη διαχείριση ασύρματων συνδέσεων. Να θυμάστε ότι με αυτό, έχουμε μεγαλύτερη ευκολία για τη διαμόρφωση τόσο ενός σημείου πρόσβασης όσο και ενός σταθμού. Για τη λειτουργία σταθμού, διαμορφώνουμε μέσω μιας πύλης στο πρόγραμμα περιήγησης.

Μερικά χαρακτηριστικά:

• Εξαρτάται από την αυτόματη συνδεσιμότητα

• Αρχικοποίηση μη αυτόματης πύλης διαμόρφωσης

• Λειτουργεί επιλεκτικά σε διπλή λειτουργία

Βήμα 3: Πώς λειτουργεί

Πως δουλεύει
Πως δουλεύει
Πως δουλεύει
Πως δουλεύει

Το ESP θα ξεκινήσει μια πύλη διαμόρφωσης WiFi όταν είναι συνδεδεμένη και θα αποθηκεύσει δεδομένα διαμόρφωσης σε μη πτητική μνήμη. Στη συνέχεια, η πύλη διαμόρφωσης θα ξεκινήσει ξανά μόνο εάν πατηθεί ένα κουμπί στη μονάδα ESP.

Εδώ μπορείτε να ελέγξετε τη ροή διαμόρφωσης και να ακολουθήσετε αυτό το βήμα προς βήμα:

1. Χρησιμοποιώντας οποιαδήποτε συσκευή με δυνατότητα WiFi με πρόγραμμα περιήγησης, συνδεθείτε στο σημείο πρόσβασης που δημιουργήθηκε πρόσφατα και εισαγάγετε τη διεύθυνση 192.168.4.1.

2. Στην οθόνη θα έχετε δύο επιλογές για σύνδεση σε υπάρχον δίκτυο:

• Διαμόρφωση WiFi

• Διαμόρφωση WiFi (Χωρίς σάρωση)

3. Επιλέξτε ένα από τα δίκτυα και εισαγάγετε τον κωδικό πρόσβασης (εάν χρειάζεται). Στη συνέχεια, αποθηκεύστε και περιμένετε να επανεκκινήσει το ESP.

4. Στο τέλος της εκκίνησης, το ESP επιχειρεί να συνδεθεί στο αποθηκευμένο δίκτυο. Εάν δεν μπορείτε να το κάνετε αυτό, θα ενεργοποιήσετε ένα Σημείο Πρόσβασης.

Βήμα 4: Βιβλιοθήκες

Βιβλιοθήκες
Βιβλιοθήκες

Προσθήκη βιβλιοθήκης "WifiManager-ESP32".

Μεταβείτε στη διεύθυνση https://github.com/zhouhan0126/WIFIMANAGER-ESP32 και κάντε λήψη της βιβλιοθήκης.

Αποσυμπιέστε το αρχείο και επικολλήστε το στο φάκελο βιβλιοθηκών του Arduino IDE.

C: / Αρχεία προγράμματος (x86) / Arduino / βιβλιοθήκες

Προσθέστε τη βιβλιοθήκη "DNSServer-ESP32".

Μεταβείτε στον σύνδεσμο https://github.com/zhouhan0126/DNSServer---esp32 και κάντε λήψη της βιβλιοθήκης.

Αποσυμπιέστε το αρχείο και επικολλήστε το στο φάκελο βιβλιοθηκών του Arduino IDE.

C: / Αρχεία προγράμματος (x86) / Arduino / βιβλιοθήκες

Προσθέστε τη βιβλιοθήκη "WebServer-ESP32".

Μεταβείτε στον σύνδεσμο https://github.com/zhouhan0126/WebServer-esp32 και κάντε λήψη της βιβλιοθήκης.

Αποσυμπιέστε το αρχείο και επικολλήστε το στο φάκελο βιβλιοθηκών του Arduino IDE.

C: / Αρχεία προγράμματος (x86) / Arduino / βιβλιοθήκες

Σημείωση:

Η βιβλιοθήκη WiFiManager-ESP32 έχει ήδη τις ρυθμίσεις που λειτουργούν με το ESP8266, οπότε θα το χρησιμοποιήσουμε μόνο, αντί για δύο λίμπες WiFiManager (ένα για κάθε τύπο τσιπ).

Όπως θα δούμε αργότερα, το ESP8266WiFi και το ESP8266WebServer είναι βιβλιοθήκες που δεν χρειάζεται να κατεβάσουμε, επειδή έρχονται ήδη κατά την εγκατάσταση του ESP8266 στο Arduino IDE.

Βήμα 5: Λειτουργίες

Λειτουργίες
Λειτουργίες
Λειτουργίες
Λειτουργίες
Λειτουργίες
Λειτουργίες

Εδώ είναι μερικές λειτουργίες που μας προσφέρει το WiFiManager.

1. autoConnect

Η λειτουργία αυτόματης σύνδεσης είναι υπεύθυνη για τη δημιουργία ενός σημείου πρόσβασης. Μπορούμε να το χρησιμοποιήσουμε με τρεις τρόπους.

• autoConnect ("όνομα δικτύου", "κωδικός πρόσβασης"). - δημιουργεί ένα δίκτυο με το καθορισμένο όνομα και κωδικό πρόσβασης.

• autoConnect ("όνομα δικτύου"); - δημιουργεί ένα ανοιχτό δίκτυο με το καθορισμένο όνομα.

• autoConnect (); - δημιουργεί ένα ανοιχτό και αυτόματα ονομαζόμενο δίκτυο με το όνομα «ESP» + chipID.

2. startConfigPortal

Η συνάρτηση startConfigPortal είναι υπεύθυνη για τη δημιουργία ενός Σημείου Πρόσβασης χωρίς προσπάθεια σύνδεσης σε προηγούμενο αποθηκευμένο δίκτυο.

• startConfigPortal ("όνομα δικτύου", "κωδικός πρόσβασης"). - δημιουργεί ένα δίκτυο με το καθορισμένο όνομα και κωδικό πρόσβασης.

• startConfigPortal (); - δημιουργεί ένα ανοιχτό και αυτόματα ονομαζόμενο δίκτυο με το όνομα «ESP» + chipID.

3. getConfigPortalSSID

Επιστρέφει το SSID της πύλης (Σημείο πρόσβασης)

4. getSSID

Αυτό επιστρέφει το SSID του δικτύου στο οποίο είναι συνδεδεμένο.

5. getPassword

Αυτό επιστρέφει τον κωδικό πρόσβασης του δικτύου στο οποίο είναι συνδεδεμένο.

6. setDebugOutput

Η λειτουργία setDebugOutput είναι υπεύθυνη για την εκτύπωση μηνυμάτων εντοπισμού σφαλμάτων στη σειριακή οθόνη. Αυτά τα μηνύματα έχουν ήδη οριστεί στη βιβλιοθήκη. Καθώς περνάτε από τις λειτουργίες, τα δεδομένα θα εκτυπωθούν.

Από προεπιλογή, αυτή η λειτουργία έχει οριστεί σε TRUE. Εάν θέλετε να απενεργοποιήσετε τα μηνύματα, απλώς ρυθμίστε τη λειτουργία σε FALSE.

7. setMinimumSignalQuality

Η συνάρτηση setMinimumSignalQuality είναι υπεύθυνη για το φιλτράρισμα δικτύων με βάση την ποιότητα του σήματος. Από προεπιλογή, το WiFiManager δεν θα εμφανίζει δίκτυα σύνδεσης κάτω του 8%.

8. setRemoveDuplicateAPs

Η συνάρτηση setRemoveDuplicateAPs είναι υπεύθυνη για την αφαίρεση διπλότυπων δικτύου.

Από προεπιλογή έχει οριστεί σε TRUE.

9. setAPStaticIPConfig

Η συνάρτηση setAPStaticIPConfig είναι υπεύθυνη για τη ρύθμιση των ρυθμίσεων στατικής διεύθυνσης όταν βρίσκεστε σε λειτουργία σημείου πρόσβασης.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

Η λειτουργία setSTAStaticIPConfig είναι υπεύθυνη για τη ρύθμιση των ρυθμίσεων στατικής διεύθυνσης όταν βρίσκεστε σε λειτουργία σταθμού.

(IP, GATEWAY, SUBNET)

Πρέπει να προσθέσετε την εντολή πριν από την αυτόματη σύνδεση !!!

11. setAPCallback

Η λειτουργία setAPCallback είναι υπεύθυνη για την ενημέρωσή σας ότι έχει ξεκινήσει η λειτουργία AP.

Η παράμετρος είναι μια συνάρτηση που πρέπει να δημιουργηθεί για να την υποδείξει ως επανάκληση.

12. setSaveConfigCallback

Η λειτουργία setSaveConfigCallback είναι υπεύθυνη για την ενημέρωσή σας ότι έχει αποθηκευτεί μια νέα διαμόρφωση και ότι η σύνδεση ολοκληρώθηκε με επιτυχία.

Η παράμετρος είναι μια συνάρτηση για δημιουργία και την υποδεικνύει ως allback.

Πρέπει να προσθέσετε την εντολή πριν από την αυτόματη σύνδεση !!!

Βήμα 6: Συναρμολόγηση

Συνέλευση
Συνέλευση

Παράδειγμα

Στο παράδειγμά μας, θα δημιουργήσουμε ένα Σημείο Πρόσβασης με ESP (ο κωδικός θα εξυπηρετεί τόσο το ESP8266 όσο και το ESP32). Μετά τη δημιουργία του AP, θα έχουμε πρόσβαση στην πύλη μέσω IP 192.168.4.1 (που είναι η προεπιλογή για πρόσβαση σε αυτήν). Ας πάρουμε λοιπόν τα διαθέσιμα δίκτυα, επιλέγουμε ένα και αποθηκεύουμε. Από εκεί, το ESP θα επανεκκινήσει και θα επιχειρήσει να συνδεθεί με αυτό και στη συνέχεια θα λειτουργήσει ως σταθμός και όχι πλέον ως Σημείο Πρόσβασης.

Αφού μπείτε στη λειτουργία σταθμού, μπορείτε να επιστρέψετε το ESP στη λειτουργία σημείου πρόσβασης μόνο μέσω του κουμπιού.

Βήμα 7: Κωδικός

Βιβλιοθήκες

Αρχικά ας ορίσουμε τις βιβλιοθήκες που θα χρησιμοποιήσουμε.

Λάβετε υπόψη ότι έχουμε εντολές #ififed, #else και #endif. Είναι υπό όρους να περιλαμβάνουν τις απαραίτητες βιβλιοθήκες που σχετίζονται με το τσιπ. Αυτό το τμήμα είναι εξαιρετικά σημαντικό για την εκτέλεση του ίδιου κώδικα τόσο στο ESP8266 όσο και στο ESP32.

#if καθορισμένο (ESP8266)

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

#if καθορισμένο (ESP8266)

#include // Τοπικός διακομιστής Web που χρησιμοποιείται για την εξυπηρέτηση της πύλης διαμόρφωσης

#αλλού

#include // Τοπικός διακομιστής DNS που χρησιμοποιείται για ανακατεύθυνση όλων των αιτημάτων στην πύλη διαμόρφωσης (https://github.com/zhouhan0126/DNSServer---esp32)

#τέλος εαν

#include // Τοπικός WebServer χρησιμοποιείται για την εξυπηρέτηση της πύλης διαμόρφωσης (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINAL)

Βήμα 8: Ρύθμιση

Κατά τη ρύθμιση, διαμορφώνουμε το WiFiManager με τον απλούστερο τρόπο. Ας ορίσουμε απλώς τις κλήσεις και δημιουργήστε το δίκτυο.

const int PIN_AP = 2;

void setup () {Serial.begin (9600); pinMode (PIN_AP, INPUT); // δηλώστε το objeto wifiManager WiFiManager wifiManager;

// χρησιμοποιήστε το, όπως διαμορφώνονται από τις αποστολές σας // από το όνομά σας, αλλά και για την αυτόματη εκτέλεση, από την αρχή. // wifiManager.resetSettings (); // callback para quando entra em modo de configuração AP wifiManager.setAPCallback (configModeCallback); // callback para 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"); }

Βήμα 9: Βρόχος

Στον βρόχο, θα διαβάσουμε το pin του κουμπιού για να δούμε αν έχει πατηθεί και στη συνέχεια θα καλέσουμε τη μέθοδο για να ενεργοποιήσουμε ξανά τη λειτουργία AP.

void loop () {

WiFiManager wifiManager? // se o botão foi pressionado if (digitalRead (PIN_AP) == HIGH) {Serial.println ("resetar"); // tenta abrir o portal if (! wifiManager.startConfigPortal ("ESP_AP", "12345678")) {Serial.println ("Falha ao conectar"); καθυστέρηση (2000). ESP.restart (); καθυστέρηση (1000)? } Serial.println ("Conectou ESP_AP !!!"); }

Όταν πατήσετε το κουμπί, το ESP θα βγει από τη λειτουργία σταθμού και θα ανοίξει το σημείο πρόσβασης και την πύλη σας.

Θυμηθείτε ότι δεν χρησιμοποιούμε την εντολή resetSettings (). Οι ρυθμίσεις εξακολουθούν να αποθηκεύονται για την επόμενη φορά που θα ξεκινήσει το ESP.

Βήμα 10: Επιστροφές κλήσεων

Οι λειτουργίες επανάκλησης, οι οποίες σχετίζονται με συμβάντα, σας βοηθούν να έχετε την ακριβή στιγμή μιας λειτουργίας, στην περίπτωσή μας, εισερχόμενη λειτουργία AP και λειτουργία σταθμού. Στη συνέχεια, μπορούμε να εφαρμόσουμε κάποια επιθυμητή ρουτίνα, όπως η ανάκτηση του SSID από το συνδεδεμένο δίκτυο, για παράδειγμα.

// επανάκληση que indica que o ESP entrou no modo AP

void configModeCallback (WiFiManager *myWiFiManager) {// Serial.println ("Μπήκε στη λειτουργία ρύθμισης παραμέτρων"); 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)

void saveConfigCallback () {// Serial.println ("Θα πρέπει να αποθηκευτεί η διαμόρφωση"); Serial.println ("Configuração salva"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP}

Συνιστάται: