C'est possible? ESP8266 se connecter au routeur wifi via l'application iOS? Je veux faire en sorte qu'une application contrôle quelque chose par ESP8266. Mon workflow ci-dessous:
- Ouvrez l'application, sur l'appareil connecté au routeur wifi.
- Connectez-vous à ESP8266 et donnez-lui les informations SSID et MOT DE PASSE du Wifi actuel.
- ESP8266 reçoit ces informations et se connecte automatiquement au routeur Wifi.
Merci pour vos conseils d'abord.
J'ai essayé de cette façon mais j'obtiens une expérience utilisateur. Parce que l'utilisateur doit faire de nombreuses étapes. - En utilisant WiFiManager, créez ESP8266 comme routeur wifi. - Accédez au paramètre Wifi de l'appareil pour vous connecter à ESP8266 Wifi. - Donner des informations Wifi (SSID, PASSWORD) en accédant à 192.168.4.1 depuis le navigateur Web. Notez simplement ici pour éviter cette façon
Veuillez me donner vos conseils. Je vous remercie
2 réponses
J'ai trouvé le moyen de le faire: Ceci est du code sur l'application iOS: https://github.com/EspressifApp/EsptouchForIOS
Ceci est le code sur ESP8266 exécuté sur Arduino:
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
WiFiUDP Udp;
void setup() {
int cnt = 0;
//Allocate baud 115200
Serial.begin(115200);
//Mode wifi is station
WiFi.mode(WIFI_STA);
//Waiting for connect
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if(cnt++ >= 10){
WiFi.beginSmartConfig();
while(1){
delay(1000);
//Check the connect and print inform if success
if(WiFi.smartConfigDone()){
Serial.println("SmartConfig Success");
break;
}
}
}
}
Serial.println("");
Serial.println("");
WiFi.printDiag(Serial);
// Allocate server
Udp.begin(49999);
Serial.println("Server started");
// Print IP address
Serial.println(WiFi.localIP());
}
void loop() {
// Receive the package from ESPTouch
Udp.parsePacket();
//Print IP of ESP8266
while(Udp.available()){
Serial.println(Udp.remoteIP());
Udp.flush();
delay(5);
}
}
Tout d'abord, je ne pense pas que vous ayez fait de l'ESP8266 un routeur Wi-Fi. Je pense que vous voulez dire qu'il passe en mode AP pour inviter l'utilisateur à fournir les informations d'identification.
J'ai contourné ce problème en utilisant la bibliothèque EEPROM. Vous pouvez facilement trouver un exemple de code ici
Donc en gros:
- Informations d'identification pré-codées (peuvent être des données factices pour la première exécution) à l'EEPROM.
- Lorsque l'ESP8266 démarre, chargez ces informations d'identification et essayez de vous connecter au Wi-Fi.
- S'il ne parvient pas à se connecter, demandez à l'utilisateur de saisir ses informations d'identification.
- ESP8266 tente de se reconnecter. S'il peut se connecter, écrivez les informations d'identification dans l'EEPROM.
- Répétez à partir de l'étape 2 chaque fois qu'il démarre.
Désormais, au lieu d'avoir les informations d'identification de l'utilisateur à chaque fois, il essaiera de se connecter en premier. En cas d'échec, l'utilisateur devra effectuer un travail supplémentaire.
Faites-moi savoir si je peux vous aider, j'ai beaucoup travaillé sur ce problème et j'ai un code fonctionnel.
De nouvelles questions
esp8266
L'ESP8266 est une puce hautement intégrée qui offre une solution de réseau Wi-Fi complète et autonome, lui permettant d'héberger des applications ou de décharger toutes les fonctions de réseau Wi-Fi d'un autre processeur d'application.