Inhoudsopgave:
- Stap 1: PINOUT
- Stap 2: WiFiManager
- Stap 3: Hoe het werkt
- Stap 4: Bibliotheken
- Stap 5: Functies
- Stap 6: Montage
- Stap 7: Coderen
- Stap 8: Instellen
- Stap 9: Loop
- Stap 10: Terugbellen
Video: ESP8266 en ESP32 met WiFiManager: 10 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Bent u bekend met WiFiManager? Het is een bibliotheek die dienst doet als beheerder van draadloze verbindingen, en daarmee hebben we een eenvoudigere manier om zowel een toegangspunt als een station te configureren. Ik heb verschillende suggesties gekregen om dit onderwerp te bespreken; dus vandaag zal ik je kennis laten maken met deze bibliotheek en zijn functies. Ik zal ook een demonstratie geven van het gebruik ervan met zowel ESP32 als ESP8266.
Stap 1: PINOUT
Hier toon ik de PINOUT van de twee apparaten die we zullen gebruiken:
- NodeMCU ESP-12E
- NodeMCU ESP-WROOM-32
Stap 2: WiFiManager
De WiFiManager is eigenlijk niets meer dan een bibliotheek die bovenop WiFi.h is geschreven voor eenvoudig beheer van draadloze verbindingen. Onthoud dat we hiermee een grotere mogelijkheid hebben om zowel een toegangspunt als een station te configureren. Voor Station-modus configureren we via een portal in de browser.
Sommige eigenschappen:
• Het hangt af van automatische connectiviteit
• Initialisatie van niet-automatisch configuratieportaal
• Werkt selectief in dubbele modus
Stap 3: Hoe het werkt
De ESP start een wifi-configuratieportaal wanneer deze is aangesloten en slaat configuratiegegevens op in niet-vluchtig geheugen. Vervolgens start het configuratieportaal pas weer als er op een knop in de ESP-module wordt gedrukt.
Hier kunt u de configuratiestroom controleren en deze stap voor stap volgen:
1. Gebruik een willekeurig WiFi-apparaat met een browser, maak verbinding met het nieuw gemaakte toegangspunt en voer het adres 192.168.4.1 in.
2. Op het scherm heb je twee opties om verbinding te maken met een bestaand netwerk:
• Wifi configureren
• Wifi configureren (geen scan)
3. Kies een van de netwerken en voer het wachtwoord in (indien nodig). Sla vervolgens op en wacht tot de ESP opnieuw is opgestart.
4. Aan het einde van het opstarten probeert ESP verbinding te maken met het opgeslagen netwerk. Als u dit niet kunt doen, schakelt u een toegangspunt in.
Stap 4: Bibliotheken
Bibliotheek toevoegen "WifiManager-ESP32".
Ga naar https://github.com/zhouhan0126/WIFIMANAGER-ESP32 en download de bibliotheek.
Pak het bestand uit en plak het in de bibliothekenmap van de Arduino IDE.
C: / Programmabestanden (x86) / Arduino / bibliotheken
Voeg de bibliotheek "DNSServer-ESP32" toe.
Ga naar de https://github.com/zhouhan0126/DNSServer---esp32 link en download de bibliotheek.
Pak het bestand uit en plak het in de bibliothekenmap van de Arduino IDE.
C: / Programmabestanden (x86) / Arduino / bibliotheken
Voeg de bibliotheek "WebServer-ESP32" toe.
Ga naar de https://github.com/zhouhan0126/WebServer-esp32 link en download de bibliotheek.
Pak het bestand uit en plak het in de bibliothekenmap van de Arduino IDE.
C: / Programmabestanden (x86) / Arduino / bibliotheken
Opmerking:
De WiFiManager-ESP32-bibliotheek heeft al de instellingen die werken met ESP8266, dus we zullen deze alleen gebruiken in plaats van twee WiFiManager-bibliotheken (één voor elk type chip).
Zoals we later zullen zien, zijn ESP8266WiFi en ESP8266WebServer bibliotheken die we niet hoeven te downloaden, omdat ze al komen wanneer we ESP8266 in de Arduino IDE installeren.
Stap 5: Functies
Hier zijn enkele functies die de WiFiManager ons biedt.
1. automatisch verbinden
De autoConnect-functie is verantwoordelijk voor het maken van een Access Point. We kunnen het op drie manieren gebruiken.
• autoConnect ("netwerknaam", "wachtwoord"); - creëert een netwerk met de gedefinieerde naam en wachtwoord.
• autoConnect ("netwerknaam"); - creëert een open netwerk met de gedefinieerde naam.
• automatisch verbinden (); - creëert een open en automatisch benoemd netwerk met als naam 'ESP' + chipID.
2. startConfigPortal
De startConfigPortal-functie is verantwoordelijk voor het maken van een toegangspunt zonder te proberen verbinding te maken met een eerder opgeslagen netwerk.
• startConfigPortal ("netwerknaam", "wachtwoord"); - creëert een netwerk met de gedefinieerde naam en wachtwoord.
• startConfigPortal (); - creëert een open en automatisch benoemd netwerk met als naam 'ESP' + chipID.
3. getConfigPortalSSID
Retourneert de SSID van de portal (Access Point)
4. getSSID
Dit retourneert de SSID van het netwerk waarmee het is verbonden.
5. getPassword
Dit retourneert het wachtwoord van het netwerk waarmee het is verbonden.
6. setDebugOutput
De functie setDebugOutput is verantwoordelijk voor het afdrukken van foutopsporingsberichten op de seriële monitor. Deze berichten zijn al gedefinieerd in de bibliotheek. Terwijl u de functies doorloopt, worden de gegevens afgedrukt.
Standaard is deze functie ingesteld op TRUE. Als u de berichten wilt uitschakelen, stelt u de functie eenvoudig in op FALSE.
7. stelMinimumSignaalKwaliteit in
De functie setMinimumSignalQuality is verantwoordelijk voor het filteren van netwerken op basis van signaalkwaliteit. Standaard toont WiFiManager geen aanmeldingsnetwerken onder de 8%.
8. setRemoveDuplicateAP's
De functie setRemoveDuplicateAPs is verantwoordelijk voor het verwijderen van netwerkduplicaten.
Standaard is deze ingesteld op TRUE.
9. setAPStaticIPConfig
De functie setAPStaticIPConfig is verantwoordelijk voor het instellen van de statische adresinstellingen in de toegangspuntmodus.
(IP, GATEWAY, SUBNET)
10. setSTAStaticIPConfig
De functie setSTAStaticIPConfig is verantwoordelijk voor het instellen van de statische adresinstellingen in de stationsmodus.
(IP, GATEWAY, SUBNET)
U moet de opdracht toevoegen vóór autoConnect!!!
11. setAPCallback
De setAPCallback-functie is verantwoordelijk voor het informeren dat de AP-modus is gestart.
De parameter is een functie die moet worden gemaakt om het aan te geven als een callback;
12. setSaveConfigCallback
De functie setSaveConfigCallback is verantwoordelijk om u te informeren dat een nieuwe configuratie is opgeslagen en dat de verbinding tot stand is gebracht.
De parameter is een functie om aan te maken en geeft dit aan als een allback.
U moet de opdracht toevoegen vóór autoConnect !!!
Stap 6: Montage
Voorbeeld
In ons voorbeeld zullen we een toegangspunt maken met ESP (de code dient zowel voor ESP8266 als ESP32). Na het maken van de AP, zullen we toegang krijgen tot de portal via IP 192.168.4.1 (wat de standaard is om toegang te krijgen). Dus laten we de beschikbare netwerken pakken, er een selecteren en opslaan. Vanaf daar zal de ESP opnieuw opstarten en proberen er verbinding mee te maken, en dan zal het werken als een station en niet langer als een toegangspunt.
Nadat u de stationsmodus hebt geactiveerd, kunt u de ESP alleen via de knop terug laten keren naar de toegangspuntmodus.
Stap 7: Coderen
Bibliotheken
Laten we eerst de bibliotheken definiëren die we zullen gebruiken.
Merk op dat we de commando's #if gedefinieerd, #else en #endif hebben. Voorwaarde is dat ze de noodzakelijke bibliotheken met betrekking tot de chip bevatten. Dit onderdeel is uiterst belangrijk om dezelfde code uit te voeren op zowel ESP8266 als ESP32.
#indien gedefinieerd(ESP8266)
#include //ESP8266 Core WiFi-bibliotheek #else #include //ESP32 Core WiFi-bibliotheek #endif
#indien gedefinieerd(ESP8266)
#include //Local WebServer gebruikt om de configuratieportal te bedienen
#anders
#include //Local DNS Server gebruikt voor het omleiden van alle verzoeken naar de configuratieportal (https://github.com/zhouhan0126/DNSServer---esp32)
#stop als
#include //Local WebServer gebruikt om de configuratieportal te bedienen (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINEEL)
Stap 8: Instellen
In de installatie configureren we onze WiFiManager op de eenvoudigste manier. Laten we gewoon de callbacks definiëren en het netwerk creëren.
const int PIN_AP = 2;
void setup() { Serial.begin(9600); pinMode (PIN_AP, INPUT); //declaração do objeto wifiManager WiFiManager wifiManager;
//utilizando esse comando, as configurações são apagadas da memoria //caso tiver salvo alguma rede para conectar automaticamente, ela é apagada. // wifiManager.resetSettings(); //callback voor quando in de configuratie van AP wifiManager.setAPCallback(configModeCallback); //callback voor quando-se-connectie met uma rede, of 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"); }
Stap 9: Loop
In de lus zullen we de knoppin lezen om te zien of deze is ingedrukt, en dan zullen we de methode aanroepen om de AP-modus opnieuw in te schakelen.
lege lus() {
wifimanager wifimanager; // Zie voor meer informatie if (digitalRead (PIN_AP) == HOOG) { Serial.println ("resetar"); //tenta abrir o portal if(!wifiManager.startConfigPortal("ESP_AP", "12345678")){ Serial.println("Falha en conectar"); vertraging (2000); ESP.herstart(); vertraging (1000); } Serial.println("Verbind ESP_AP!!!"); }
Wanneer u op de knop drukt, verlaat ESP de stationsmodus en opent u uw toegangspunt en portaal.
Onthoud dat we de opdracht resetSettings () niet gebruiken. De instellingen worden nog steeds bewaard voor de volgende keer dat de ESP opstart.
Stap 10: Terugbellen
De callback-functies, die aan gebeurtenissen zijn gekoppeld, zorgen ervoor dat u het exacte moment van een operatie hebt, in ons geval de AP-modus en de Stationsmodus. We kunnen dan een gewenste routine implementeren, zoals bijvoorbeeld het ophalen van de SSID van het aangesloten netwerk.
// callback que indica o ESP entrou no modo AP
void configModeCallback (WiFiManager * myWiFiManager) { // Serial.println ("Ingevoerde configuratiemodus"); Serial.println("Entrou no modo de configuração"); Seriële.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 ("Moet configuratie opslaan"); Serial.println("Configuration salva"); Seriële.println(WiFi.softAPIP()); //imprime o IP doen AP}
Aanbevolen:
E-mails met bijlagen verzenden met Arduino, Esp32 en Esp8266: 6 stappen
E-mails verzenden met bijlagen met Arduino, Esp32 en Esp8266: Hier wil ik de versie 2 van mijn bibliotheek EMailSender uitleggen, een grote evolutie ten opzichte van versie 1, met ondersteuning voor Arduino met w5100, w5200 en w5500 ethernet shield en enc28J60 apparaten klonen en ondersteuning voor esp32 en esp8266. Nu kunt u ad
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Aan de slag met ESP32 - ESP32-kaarten installeren in Arduino IDE - ESP32-knippercode: 3 stappen
Aan de slag met ESP32 | ESP32-kaarten installeren in Arduino IDE | ESP32-knippercode: in deze instructie zullen we zien hoe we met esp32 kunnen werken en hoe we esp32-kaarten in Arduino IDE kunnen installeren en we zullen esp 32 programmeren om knippercode uit te voeren met behulp van arduino ide
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze