Au fait ça sert à quoi l'ESP8266 ?

Portrait de Aude

Question qui peut paraître bête mais je suis toute nouvelle avec ces histoires d'arduino et compagnie.

Le but final de mon projet (pour dans 1 mois) est d'avoir ma position géographique en temps réel sur une map de Blynk, sachant que j'ai les composants suivants : GPS de chez adafruit, arduino mega, et ESP8266 (celui là : https://joy-it.net/en/products/SBC-ESP8266). 

J'épluche les forums, les vidéos ytb mais je n'y comprends rien, la fac nous fait tt de suite aller dans des projets compliqués sans voir les bases. 

Déjà est ce que ce projet semble réalisable avec mes composants ? Ensuite, je ne comprends pas la fonction de L'ESP8266. Est ce que je suis censée recevoir un signal WiFi sur mon téléphone provenant de l'ESP ? Ou est ce que j'ai besoin de le connecter à un autre Wi-Fi ? Comment tout cela fonctionne... Et les codes arduino pour paramétrer tout ça je suis encore plus perdue.... 

Merci d'avance 

Portrait de Walter

Bonjour,

Pour répondre de suite à ta question, oui ton projet est réalisable avec tes composants.

l'ESP8266 est un composant pour des connectivités wifi, à la base un "shield" permettant à des micro-controleurs d'avoir une connection wifi, le dialogue entre le µC et l'esp8266 se faisant en commandes AT.

Donc en gros tu connecte ton ESP8266 à ton arduino et ton arduino pilote l'ESP avec des commandes AT pour pouvoir dialoguer avec d'autre composants(arduino, serveur WEB, PC) sur le réseau WIFI au quel tu es connecté.

Mais l'ESP8266 est aussi un µC, ce qui fait que tu peut très bien le programmer directement sans passer par un arduino.
Dans ce cas on utilisera souvent un ESP une carte plus fournie en entrée/sortie comme celle-ci même si au final au entrée/sortie près c'est la même chose.

De plus espressif le constructeurs de l'ESP8266 on fait en sorte de rentre compatible leur µC avec l'environement arduino, pour être programmer par leur IDE directement comme un arduino.

Vu le temps assez court qu'il te reste, je te conseillerez si l'arduino ne t'es pas imposé de prendre directement une carte de développement Esp8266-12 comme celle que j'ai donné en lien à la place d'un arduino.

Portrait de Aude

Bonjour,

D'abord merci pour cette réponse bien détaillée. Je ne suis pas encore familière avec tout ce vocabulaire donc ça n'est quand même pas facile à comprendre haha

Non la fac a passé des commandes précises et j'ai emporté ce matériel chez moi pour les vacances, donc je ne peux pas faire avec autre chose que ces composants. Effectivement, si j'avais compris tout cela plus tôt j'aurais demandé d'autres composants...

J'ai 2 autres remarques/questions : " tu connecte ton ESP8266 à ton arduino et ton arduino pilote l'ESP avec des commandes AT pour pouvoir dialoguer avec d'autre composants(arduino, serveur WEB, PC) sur le réseau WIFI au quel tu es connecté"

- pour le "sur le réseau WIFI au quel tu es connecté" c'est ma connexion wifi internet de chez moi par exemple ? (dsl ça peut paraître vraiment bête mais je veux être sûre)

- cela fait plusieurs fois que j'entends parler des commandes AT (ça a l'air un peu compliqué) et je crois que c'est justement ce qui me bloque dans mon avancement. Car ce matin dans le moniteur série j'avais "ESP is not responding". Après quelques recherches sur des forums, j'ai cru comprendre que cela pouvait venir des commandes AT. Pour l'instant je n'ai rien configuré. Est-ce que mon problème vient justement du fait que je n'ai pas configuré/inialisé/programmé (???) mon ESP ?

Merci

(PS : ça n'est pas très grave si cela n'aboutit pas entièrement, cela fait partie d'un gros projet qui inclut méca et élec. Mais je suis un peu obstinée et le résultat sur les vidéos youtube fait qd meme rêver :) )

Portrait de Walter

Oui la connexion internet de chez toi par exemple, enfin ta box wifi qui est reliée à internet, une connexion wifi avec ton téléphone en partage de connexion wifi, ..., a tout " point d'accès" wifi.
Le contraire est aussi vrai, ton esp8266 peut faire "point d'accès" pour que ton téléphone ou autre ce connecte sur lui.

Je n'ai pas l'habitude d'utiliser l'ESP8266 dans ce contexte, mais si tu as un message du type 'ESP is not responding' c'est que tu utilise un programme qui est censé utiliser l'ESP8266, il faudrait voir pourquoi tu affiche ce message dans ton programme et quel branchement tu as fait, pour te répondre.

Portrait de Aude

C'est bon j'ai enfin réussi à connecter mon téléphone et l'ESP ! (par contre parfois le moniteur série écrit qu'ils ne sont pas connectés alors que mon téléphone me dit le contraire...)

Mais bien sûr quand on règle un soucis, un nouveau apparait : pour les commandes AT quand j'écris dans la barre en haut du moniteur série les commandes AT+RST, AT+CWMODE=3 etc... qu'il faut apparemment écrire pour programmer l'ESP, rien n'apparait ensuite dans le moniteur série... Pas un seul bout de texte, aucune réaction, alors que dans les vidéos que je regarde on est censés recevoir des réponses du genre "ok", "ready"....  Est-ce qu'il y a des étapes préliminaires pour faire fonctionner les commandes AT ?

Ensuite, est-ce qu'il faut utiliser un montage différent pour la programmation de l'ESP avec les commandes AT et lors de l'utilisation de l'ESP dans sa vraie fonction ? J'ai vu des vidéos où il fallait changer de montages et même utiliser d'autres composants que je n'ai pas... J'utilise le montage suivant (arduino mega à la place de l'arduino uno).

Merci

Portrait de Walter

Normalement chaque commande AT doivent au minima répondre OK.

Si tu utilise les commandes AT, il n'y a pas besoin de programmer l'ESP, puisque le programme est justement le firmware te permettant de le commander à travers les commandes AT.

Par contre beaucoup de monde n'utilisent pas les commandes AT et préfèrent utiliser l'ESP de façons autonome comme dans cette vidéo,
dans ce cas là il faut programmer l'ESP pour qu'il sache quoi faire, puisqu'il n'y a plus de commande AT pour lui dire quoi faire.

Dans ton début d'exemple tu demande à l'ESP d'être dans le mode AP et station, c'est à dire que l'ESP va se connecter à un AP(routeur wifi par exemple) et lui-même déclarer un AP, les paramètre suivant "AT+CWMODE=3" servant normalement à ça(ex AT+CWHOSTNAME="AP_ESP").

Portrait de Aude

Oui c'est ça le problème haha mais merci pour l'aide 

Portrait de Walter

Ton programme arduino, relais bien ce qu'il reçoit de l'ESP sur le port série inclus dans l'USB?

Portrait de Aude

Ah désolée j'était sur mon téléphone je n'avais pas vu le message d'avant en entier !!

Les commandes AT ne répondent toujours pas, par contre j'ai eu un résultat assez prometteur avec le code suivant :

#define BLYNK_PRINT Serial
#define EspSerial Serial2
#define ESP8266_BAUD 115200

#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

char auth[] = "";
char ssid[] = "";
char pass[] = "";

ESP8266 wifi(&EspSerial);

WidgetMap myMap(V1);

void setup(){
  Serial.begin(9600);
  EspSerial.begin(ESP8266_BAUD);
  delay(10);
  Blynk.begin(auth, wifi, ssid, pass);

  int index = 0;
  float lat = ;
  float lon = ;
  myMap.location(index, lat, lon, "value");
}

void loop()
{
  Blynk.run();
}

(j'ai enlevé toutes les données perso) et sur Blynk j'obtiens la position à peu près vers chez moi !!!! Donc cela veut dire que ça semble fonctionner, pourtant je n'ai pas utilisé les commandes AT qui me paraissaient indispensables... C'est à n'y rien comprendre mais au moins cela fonctionne haha

Portrait de Walter

Ba tu utilise ESP8266_Lib.h, sait tu pourquoi tu utilise cette librairie et ce qu'elle fait?
de ce que j'ai trouvé elle te permet avec un "arduino" de gérer un esp8266 avec le firmware d'origine(avec les commandes AT).
Donc si tu regarde un peu ce que fait ton programme en profondeur, tu va vite tomber sur des commandes AT

Portrait de Aude

Il s'agit d'un code que j'ai généré sur Blynk donc c'est vrai que vu mon niveau je n'avais pas cherché à tout comprendre en profondeur... mais finalement je pense que mon code avec les libraires se suffisent à elles mêmes.

Merci beaucoup pour l'aide, c'est assez complexe pour moi qui suis mécanicienne et pas électronicienne, mais bon je commence à m'en sortir :)

Portrait de Walter

Oui le programme que tu as trouvé fait très bien l'affaire.
Par contre si tu veut comprendre ce que tu fais, il est difficile de se contenter d'une boite magique.
Et d'autant plus que c'est pas ton domaine, il est important non pas de tout comprendre en profondeur, mais de regarder ce que tu manipule, surtout sans chercher à tout comprendre.

Après je dis ça, je dis rien :)