Projet esp8266

Bonjour ! Ca fait maintenant quelques temps que je m'amuse sur arduino (je suis débutant) et j'ai un projet de terminale (et de nombreux projets perso) sur lequel j'ai besoin de connecter mon arduino à internet l'idée est la suivante :

je possède un esp8266 01 , un arduino un capteur de luminosité, un pHmètre et un DHT22 (mes capteurs sont déjà programmés et marchent très bien) j'aimerais pouvoir avoir accés à ces valeurs à disctance (pas en local)( peu importe l'esthétisme , ou la plateforme) je me suis renseigné du côté de l'html mais j'ai besoin que l'on m'aide car mes connaissance sont trop faibles pour comprendre les tutos comme ici

je ne peux pas non plus "flasher" mon esp8266 car je n'ai pas de ftdi breakout Mon esp8266 etant de type "01" et ayant 2 capteurs fonctionnant sur 2 ports analogiques distincts et le dht22 sur un port numérique, je suis contraint de passer par mon arduino

Bref, j'ai besoin d'aide mon professeur me dit qu'il ne peut pas m'aider car il ne connait pas ce domaine, je suis très motivé pour reussir mon défi : mettre des valeurs sur un reseaux

je vous en suis très reconnaissant, à bientôt Léo-Paul

Bonjour

Le tutoriel que tu cites ne correspond pas du tout à ce que tu dis vouloir faire : utiliser un ESP8266, (sous forme de module ESP-01) en 'périphérique WiFi d'une carte Arduino", il correspond à l'utilisation d'un ESP8266 en toute autonomie, [u]sans carte Arduino.[/u]

Vois plutôt du côté de ce tutoriel : https://forum.arduino.cc/index.php?topic=501923.0

Pas besoin dans ton cas de flasher l'ESP-01 s'il contient le 'firmware AT', donc s'il est capable d'interpréter et exécuter des commandes AT émises par la carte Arduino

Autre solution : utiliser en 'en solo' (sans carte Arduino) une carte à base d'ESP32 qui offre plusieurs entrées analogiques. Faire le développement 'comme si c'était une carte Arduino' en utilisant l'extension ESP32 pour IDE Arduino et les exemples fournis avec

merci beaucoup, je m'y atèle de ce pas !

https://forum.arduino.cc/index.php?topic=501923.0

Il faudrait déplacer ce topic. J'étais en train de chercher dans tutos :confused:

n’ayant pas de carte arduino MEGA mais seulement une UNO , j’ai cru comprendre que l’on pouvait simuler un second port série, j’ai donc modifié le code du début du tutoriel comme ceci :

// Controle du reset de la carte ESP-01
const byte hardResetPIN = 7;
#include <SoftwareSerial.h>
SoftwareSerial portOne(0, 1);

void setup() {
  while (!Serial)
  Serial.begin(115200);
  portOne.begin(115200); // suivant votre config, essayez 9600 19200 38400 57600 74880 115200
  pinMode(hardResetPIN, OUTPUT); // merci icare - j'avais oublié cette ligne

  // on reset notre esp-01 (RST pin à ground pour 100ms)
  digitalWrite(hardResetPIN, LOW);
  delay(100);
  digitalWrite(hardResetPIN, HIGH);
 
  // on attend un peu le reboot
  delay(500);
  
}

void loop()
{
  int r;

  // on lit ce que l'utilisateur tape sur la console série et on l'envoie à l'ESP
  while (portOne.available()) {
    r = portOne.read();
    if (r != -1) Serial.write((char) r);
  }
 
  // on lit ce que l'ESP nous dit et on l'affiche pour l'utilisateur sur la console série
  while (Serial.available()) {
    r = Serial.read();
    if (r != -1) portOne.write((char) r);
  }
 
}

mais j’ai ce message :
"
Using Port : COM5
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x03
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x03

avrdude done. Thank you.

Problème de téléversement vers la carte. Voir http://www.arduino.cc/en/Guide/Troubleshooting#upload pour suggestions."

Pouvez vous m’aider s’il vous plaît ? :confused:

N'utilise pas les broches 0 et 1 pour SoftwareSerial, malheureux ! Ces broches sont câblées sur l'USB de l'Arduino.

Le message t'invite à aller voir une page Internet. Y est-tu allé ?

hbachetti: https://forum.arduino.cc/index.php?topic=501923.0

Il faudrait déplacer ce topic. J'étais en train de chercher dans tutos :confused:

C'est fait....

Oh ! je suis désolé :confused: j’y suis allé mais je n’avais pas vu ; cependant maintenant, j’arrive a téléverser le code mais rien ne se passe quand je tape AT+… ou même juste AT

voici mon code , j’ai essayé toute les vitesses indiquées sur le code et j’ai essayer d’inverser “Serial” avec “portOne”

// Controle du reset de la carte ESP-01

#include <SoftwareSerial.h>
SoftwareSerial portOne(10, 11);
const byte hardResetPIN = 7;

void setup() {
  while (!Serial)
  Serial.begin(115200);
  portOne.begin(115200); // suivant votre config, essayez 9600 19200 38400 57600 74880 115200
  pinMode(hardResetPIN, OUTPUT); // merci icare - j'avais oublié cette ligne

  // on reset notre esp-01 (RST pin à ground pour 100ms)
  digitalWrite(hardResetPIN, LOW);
  delay(100);
  digitalWrite(hardResetPIN, HIGH);
 
  // on attend un peu le reboot
  delay(500);
  
}

void loop()
{
  int r;

  // on lit ce que l'utilisateur tape sur la console série et on l'envoie à l'ESP
  while (Serial.available()) {
    r = Serial.read();
    if (r != -1) portOne.write((char) r);
  }
 
  // on lit ce que l'ESP nous dit et on l'affiche pour l'utilisateur sur la console série
  while (portOne.available()) {
    r = portOne.read();
    if (r != -1) Serial.write((char) r);
  }
 
}

Merci d’avance :slight_smile:

Dans la console Arduino, il faut demander à envoyer CR+LF à la fin des lignes (c-à-d qd tu tapes Entrée).

Bonjour désolé pour le retard , c'est à dire ? comme ceci ?

void loop()
{
  int r;

  // on lit ce que l'utilisateur tape sur la console série et on l'envoie à l'ESP
  while (Serial.available()) {
    r = Serial.read();
    if (r != -1) portOne.write((char) r);
  }

  // on lit ce que l'ESP nous dit et on l'affiche pour l'utilisateur sur la console série
  while (portOne.available()) {
    r = portOne.read();
    if (r != -1) Serial.write((char)+r+ "CR+LF");
  }

}

Ps: je note que la led RX s'allume lorsque j'appuie sur entré donc il recoit bien quelquechose mais ne renvoi rien

Bonjour

Non pas comme ça , plus simplement : dans le terminal Arduino, en bas à côté du réglage du débit on voit un choix d'options pour la terminaison des lignes envoyées

Dans ce cas je l’ai déjà fait mais en vain , Cependant c’est “NL et CR” pour moi et non “CR et LF”

Je viens de faire un test et quand je mes mon esp sur les pin RX et TX de l'arduino la commande AT marche mais je pense que je passe directement par l'arduino et pas par mon code , je peux continuer le tuto sur les port RX et TX ou pas ducoup ?

Le turoriel de J-M-L , s'il s'agit bien de ce tutoriel, utilse une carte Mega 2560 qui met à deisposition deux ports série matériels :

l'un , Serial, dédié à la communication avec le PC,( via l'USB)

l'autre , Serial1, à la communication avec l'ESP-01

Il est important de séparer ces deux "canaux de communication"

donc je commande une carte mega et j'attend de la recevoir ? je ne peux pas creer un port virtuel avec SoftwareSerial ?

Oui : Port série software , SoftwareSerial

Attention ce port ne fonctionne que sur ceratines E/S et gère mal le débit 115200 bauds … qui est le débit à utiliser aves les firmwares AT des ESP-01 depuis ‘un ceratin temps’

Ayant totalement abandonné les ESP-01 et les firmwares AT je suis mal placé pour être plus utile !

Illupo12725:
Dans ce cas je l’ai déjà fait mais en vain , Cependant c’est “NL et CR” pour moi et non “CR et LF”

CR veut dire “carriage return” (retour chariot)
LF veut dire “line feed” (aller à la ligne), NL (new line) veut dire la même chose.
Il ne s’agit pas d’envoyer la chaine de caractères “CR+LF” :disappointed_relieved:
Mais d’envoyer LE caractère CR (son code est 13) puis LE caractère NL (code 10).
La Console Arduino le fait pour toi (à chaque fois que tu tapes Entrée) si tu le lui demandes gentiment.