Impossible d'utiliser le WiFi - Arduino Mega 2560 R3 WiFi

Bonjour à vous Arduiniens :slight_smile:

Je viens vers vous car j'ai un soucis avec ma carte Arduino, je n'arrive pas à la connecter à ma box.
A chaque fois que j'utilise la fonction WiFi.begin(ssid,pass), cela n'aboutit jamais.

Voici un lien vers ma carte : https://fr.aliexpress.com/item/32950536539.html?spm=a2g0s.9042311.0.0.27426c37oEZ3A0

J'ai suivi tous les tutos que j'ai pu trouver pour essayer de la faire fonctionner de la façon la plus simple possible (se connecter à la box).

J'ai flashé mon ESP8266 suivant ce tuto :
Lien vers tuto ESP

J'ai suivi ces différents tutos :
Lien vers tuto 1

Lien vers tuto 2

Lien vers tuto 3

Mais ça bloque à chaque fois au même endroit. Je précise avoir bien compris comment fonctionnent les switchs pour upload du sketch ou test de celui-ci, etc.

Voici un code simple qui bloque :

#include <WiFi.h>


void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  // WiFi card example
char ssid[] = "Bbox-xx";    // your SSID
char pass[] = "xx";       // your SSID Password

WiFiClient client;
  int status = WiFi.begin(ssid,pass);
  if ( status != WL_CONNECTED) {
    Serial.println("Couldn't get a wifi connection");
    delay(2000);
    while(true);
  }
  // print out info about the connection:
  else {
    Serial.println("Connected to network");
    IPAddress ip = WiFi.localIP();
    Serial.print("My IP address is: ");
    Serial.println(ip);
  }

}

void loop() {
  // put your main code here, to run repeatedly:
}

Ce n'est bien sûr pas le seul que j'ai essayé, en utilisant d'autres librairies également.
Savez vous pourquoi il n'arrive pas a se connecter à ma box ?
Ou alors sauriez-vous où je pourrais trouver un tuto efficace pour cela ?

J'ai déjà réussi à apercevoir l'esp sur mon smartphone dans les reseaux wifi disponibles. Mais pas systématiquement ni forcément de façon durable.

Bonsoir

mot de passe trop court ? mots de passe avec des caractères non supportés par l'ESP8266 ?

Le code donné ci-dessus est destiné à être exécuté par le Mega2560 ou l'ESP8266 ?
Il ressemble plutôt à un code tournant sur l'ESP8266

ce n'est pas clair , du moins pour moi, et j'ai l'impression que les tutos mentionnés ne facilitent pas les choses en entretenant une certaine ambigüité

Si l'ESP8266 tourne sous firmware AT le code du Mega2560 doit gérer l'ESP8266 au moyen de commandes AT

Simple constatation : les diverses cartes combinant ESP8266 et Mega328 ou ESP8266 et Mega2560 ne passionnent pas beaucoup sur ce forum, la préférence pour les divers projets va aux ESP8266 et ESP32 utilisés seuls !!
A plusieurs reprises sur ce forum ces cartes mixtes ont été signalées comme 'cartes galères', 'cartes à éviter', 'cartes mal conçues'......

Bonjour et merci pour votre réponse !

Le mot de passe est la clé d'origine d'un peu plus de 20 caractères, lettres latines + chiffres (classique quoi)

Le code donné est transféré à l'ESP (les biblios wifi semblent ne pas fonctionner sur la mega, c'est comme ça que j'ai compris que les deux étaient indépendantes).

Je confirme que c'est une plaie à mettre en place... En achetant un système combiné je pensais naturellement gagner en simplicité. Je ne comprends pas pourquoi il faut flasher le firmware, etc. Je suis les tutos mais c'est bête que ça ne fonctionne pas simplement.

Je continue les recherches, mais ça fait quelques dizaines d'heures que je suis dessus...
Si quelqu'un a une suggestion, je suis preneur !

J'ai aussi remarqué quelque chose que je ne trouve pas logique dans l'execution du code ou son affichage (cf image jointe).

Mis à part que ça mouline sans fin au moment de se connecter à ma box (les "..........." ), je trouve cela étrange que les print ou println précédents n'apparaissent pas : je devrais normalement voir le résultat de :

Serial.print("Connecting to ");
Serial.println(ssid);

Peut-être que tout est lié ? Avez-vous une idée ?

la copié d'écran montre un code compilé pour l'ESP8266 , flashé vers lui et exécuté par lui, ce code travaille indépendemment du Mega2560
En général c'est la librairie ESP8266WiFi qui est utilisée (voir les nombreux exemples venant avec le 'core' ESP8266 pour IDE Arduino

le premier des 4 tutoriels cités montre autre chose : un ESP266 qui garde son firmware AT (ou reçoit une nouvelle versionde firmware AT) ce tutoriel donne ensuite un code compilé pour le Mega2560 et exécuté par lui , code qui pilote l'ESP8266 au moyen de commandes AT

je crains une confusion entre deux utilisations possibles de l'ESP8266; plusieurs utilsation possibles de cette cartehybridse ...avec les positions de switches qui vont avec

  1. l'utilisateur fait son propre 'firmware' ESP8266 , en "langage Arduino" puis le flashe dans l'ESP8266. L'ESP8266 peut alors être indépendant du Mega2560.
    ça donne un code ressemblant à celui montré au message initial
    Reste à définir dans ce cas le rôle du Mega2560 et l'éventuel dialogue entre les deux processeurs....

  2. L'ESP fonctionne avec un firmware AT figé et obéit aux ordres (comandes AT) donnés par le Mega2560 Dans ce cas seul le programme pour Mega 2560 est à éditer et 'téléverser'
    L'ESP8266 est alors une sorte de 'co-processeur' radio du Mega2560 et retea à tout moment sous son contrôle.

Il faut choisir en ces deux façons opposées de travailler et ne pas prendre à l'une et à l'autre....et encore moins mélanger des tutoriels plus ou moins sérieux décrivant des usages différents.

Je ne comprends pas pourquoi il faut flasher le firmware

Faut-il ou pas flasher ? Pourquoi ? avec quel firmware ?
Il faut éclaircir ceci avant de pouvoir espérer obtenir un fonctionnement satisfaisant

Merci beaucoup pour le temps que vous consacrez à me répondre.

La confusion que vous relatez est vraie : des tutos nous font injecter du code dans l'esp, d'autres dans la mega qui communique vers l'esp...

Je pensais qu'il fallait d'abord qu'un code de l'esp lui permette de se connecter à un réseau (box par exemple), puis que la mega lui envoie un code que l'esp enverrait sur le réseau.

Ce que je souhaite, personnellement, c'est une solution simple qui me permette d'envoyer depuis un programme situé dans ma mega, des infos dans une bdd mysql (et qu'elle les récupère également).

J'ai flashé l'esp car dans le tuto que j'ai précisé précédemment, il était indiqué qu'il fallait faire ça pour envoyer des commandes AT de la mega vers l'esp (Je n'ai pour l'instant pas trouvé comment bien utiliser les commandes AT... )

Je veux juste me connecter en wifi, je pensais pas que ce serait le parcours du combattant...

Aucun des 4 tutoriels cités ne présente correctement les choses d'un bout à l'autre, en particulier le 'tutoriel' de Robodyn créateur de la carte, c'est dire le sérieux de la chose.....

ça peut devenir simple en laissant tomber cette carte hybride et en implantant tout le code sur une carte à ESP8266 (NodeMCU, D1 Mini) ou une carte de base à ESP32.
Code développé sous IDE Arduino. avec les librairies habituelles
Plus de commandes AT, plus de combinaison douteuse de deux microcontrolleurs

Si l'ATMega 2560 est pour une raison ou une autre impératif mieux vaux re flasher dans l'ESP8266 de la carte mixte un firmware AT
-> à permière vue c'est le Tuto3 , step 1 à 7

par la suite créer du code pour Mega2560 avec utilisation de l'ESP8266 au moyen de commandes AT-
-> dans le genre du code qui est à la fin du Tuto 1
Pour des exempels de tutoriels par commandes AT, voir dans la partie Tutoriels de ce forum, il y a quelques bons exemples bien expliqués.

Merci beaucoup pour votre réponse. Vous avez raison, c'est finalement ce que j'ai commencé à faire : j'ai reflashé avec le firmware d'origine (les commandes at dans la console semblent enfin fonctionner).

Je vais voir si j'arrive à avoir quelque chose de concret ce soir côté connectivité.

Une carte nodemcu ou d1 mini seraient vraiment plus simples pour mon projet ? (lecture / écriture dans bdd mysql)

Auriez vous un lien vers un bon modèle de l'une ou l'autre ? (et d'ailleurs laquelle pourrait être la plus adéquate ?)

Encore merci pour votre aide

Pour choisir une carte il faudrait bien définir le besoin, en particulier le nombres d'E/S numériques, d'E/S analogiques nécessaires

la simplicité d'utilisation d'une carte D1 Mini, NodemCU, ou d'une carte à ESP32 découle du fait que le programmation est ouverte (grand nombres de fonctions , de librairies utilisables) et non contraînte par un jeu de commandes AT qui restreint les possibilités.

Sélectionner dans 'Type de cartes'' (IDE Arduino ) une des cartes à ESP8266 ou ESP32 et voir la richesse en exemples d'applications avec du WiFiet d'exemples

lancer un moteur de recherche avec 'ESP8266 MYSQL' et nombre de tutoriels apparaîtront

Bonjour,

Je reviens vers vous après d'innombrables essais, toujours sur ma carte Mega2560 R3 WiFi...
Pas de suspense, rien de concluant.

Les seuls résultats que j'ai, sont obtenus avec le firmware d'origine réinstallé (ESP_8266_BIN0.92.bin) ou v0.9.2.2 AT Firmware.bin (ce dernier prend un peu de temps avant de répondre à la commande AT+CWJAP)

Voici les différentes réponses aux commandes :

11:10:01.898 -> AT
11:10:01.898 -> 
11:10:01.898 -> OK

11:10:05.146 -> AT+GMR
11:10:05.146 -> 0018000902
11:10:05.146 -> 
11:10:05.146 -> OK

11:10:10.405 -> AT+CWMODE=1
11:10:10.473 -> 
11:10:10.473 -> OK

11:10:23.285 -> AT+CWJAP="",""
11:10:38.410 -> 
11:10:38.410 -> FAIL

11:13:51.106 -> AT+CWLAP
11:13:53.229 -> 
11:13:53.229 -> OK

En gros je n'arrive à pas grand chose de concret et d'utile. Les commandes AT ne fonctionne qu'après flashing. Si je débranche et rebranche la carte, les commandes AT ne fonctionnent plus dans la console.

Je pense arrêter de perdre du temps avec celui là.

Je dois conserver ma carte Mega car j'aurais de nombreux capteurs / mosfet / relais connectés dessus.

Si je suis ce tuto, pensez-vous que j'ai une chance que cela fonctionne ?
https://forum.arduino.cc/index.php?topic=501923.0

Savez-vous quel matériel exact est utilisé ? Il semble y avoir de nombreuses versions...

Encore merci à vous !
Est ce

Bonjour

Oui, ce tutoriel est 'de confiance' et en cas de p.b son auteur ne vous laissera pas tomber ! :wink: