Სარჩევი:

ESP8266 და ESP32 WiFiManager– ით: 10 ნაბიჯი
ESP8266 და ESP32 WiFiManager– ით: 10 ნაბიჯი

ვიდეო: ESP8266 და ESP32 WiFiManager– ით: 10 ნაბიჯი

ვიდეო: ESP8266 და ESP32 WiFiManager– ით: 10 ნაბიჯი
ვიდეო: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 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 ფუნქცია პასუხისმგებელია გაცნობოთ, რომ ახალი კონფიგურაცია შენახულია და კავშირი წარმატებით დასრულდა.

პარამეტრი არის შესაქმნელი ფუნქცია და მიუთითებს ამას როგორც უკანა მხარე.

თქვენ უნდა დაამატოთ ბრძანება ავტომატური კავშირის დაწყებამდე !!!

ნაბიჯი 6: შეკრება

შეკრება
შეკრება

მაგალითი

ჩვენს მაგალითში ჩვენ შევქმნით წვდომის წერტილს ESP– ით (კოდი მოემსახურება როგორც ESP8266 ასევე ESP32). AP– ის შექმნის შემდეგ, ჩვენ შევდივართ პორტალზე IP 192.168.4.1– ით (რაც ნაგულისხმევია მასზე წვდომისათვის). მოდით მივიღოთ არსებული ქსელები, ავირჩიოთ ერთი და შევინახოთ. იქიდან, ESP გადატვირთავს და შეეცდება მასთან დაკავშირებას, შემდეგ კი ის იმუშავებს როგორც სადგური და არა როგორც წვდომის წერტილი.

სადგურის რეჟიმში შესვლის შემდეგ, შეგიძლიათ ESP დააბრუნოთ წვდომის წერტილის რეჟიმში მხოლოდ ღილაკის საშუალებით.

ნაბიჯი 7: კოდი

ბიბლიოთეკები

ჯერ განვსაზღვროთ ბიბლიოთეკები, რომლებსაც ჩვენ გამოვიყენებთ.

გაითვალისწინეთ, რომ ჩვენ გვაქვს #if განსაზღვრული, #სხვა და #endif ბრძანებები. ისინი პირობითია ჩიპთან დაკავშირებული საჭირო ბიბლიოთეკების ჩათვლით. ეს ნაწილი ძალზე მნიშვნელოვანია ერთი და იგივე კოდის გასაშვებად როგორც ESP8266- ზე, ასევე ESP32- ზე.

#განსაზღვრული (ESP8266)

#ჩართვა // ESP8266 ძირითადი WiFi ბიბლიოთეკა #სხვა #ჩართვა // ESP32 ძირითადი WiFi ბიბლიოთეკა #ენდიფი

#განსაზღვრული (ESP8266)

#include // ლოკალური ვებ სერვერი გამოიყენება კონფიგურაციის პორტალის მომსახურებისთვის

#სხვა

#მოიცავს // ადგილობრივი DNS სერვერი გამოიყენება ყველა მოთხოვნის კონფიგურაციის პორტალზე გადამისამართებისთვის (https://github.com/zhouhan0126/DNSServer---esp32)

#დაასრულე თუ

#მოიცავს // ადგილობრივი ვებ სერვერი კონფიგურაციის პორტალს ემსახურებოდა (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ორიგინალი)

ნაბიჯი 8: დაყენება

დაყენებისას, ჩვენ ვაყენებთ ჩვენს WiFiManager- ს უმარტივეს გზას. მოდით განვსაზღვროთ გამოძახება და შევქმნათ ქსელი.

const int PIN_AP = 2;

void setup () {Serial.begin (9600); pinMode (PIN_AP, INPUT); // გამოცხადება wifiManager WiFiManager wifiManager;

// გამოიყენოს ეს კომანდო, როგორც configurações são apagadas da memória // caso tiver salvo alguma rede para conectar automatamente, ela é apagada. // wifiManager.resetSettings (); // ზარის დაბრუნება quado entra em modo de configuração AP wifiManager.setAPCallback (configModeCallback); // გამოძახება quando se conecta em uma rede, ou seja, quando passa trabahar em modo estação wifiManager.setSaveConfigCallback (saveConfigCallback); // cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect ("ESP_AP", "12345678"); }

ნაბიჯი 9: მარყუჟი

მარყუჟში, ჩვენ წავიკითხავთ ღილაკის პინს, რომ ნახოთ არის თუ არა დაჭერილი, და შემდეგ ჩვენ გამოვიძახებთ მეთოდს ხელახლა ჩართვის AP რეჟიმში.

ბათილი მარყუჟი () {

WiFiManager wifiManager; // იხილეთ თუ არა (digitalRead (PIN_AP) == HIGH) {Serial.println ("გადატვირთვა"); // 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– ის მოძიება დაკავშირებული ქსელიდან, მაგალითად.

// გამოძახება, რომელიც მითითებულია ESP– ით, არ შეიცავს APO– ს

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 ()); // იმპრიმი o SSID კრიდია და რედე

}

// გამოძახება 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}

გირჩევთ: