Module wifi - commandes AT (resolu) + connexion arduino esp01 en websocket

Bonjour à tous j’essaie de me familiariser un peu avec le module wifi ESP3266 (esp01) sur une carte arduino uno.

j’aurais deux question si vous le permettez :slight_smile: .

D’abord j’essayé de me connecter avec mon esp sur des carte arduino (mega apk, mega, uno) mais cela ne marche pas , IL MARCHE QUE DANS UNE UNO je comprends pas pq ca marche dans cette derniere et pas dans les autre …

puis sur la deuxieme j’arrive a avoir feedback à l’aide des commandes AT ge,nre AT ===> OK mais j’ai des caracteres bizzare qui s’affiche pourtant j’ai essayé pas mal de valeur de baud .

Qu’en pensez vous ?

Voilà mon code :

#include <SoftwareSerial.h>
// On crée une communication série software pour l'ESP8266
SoftwareSerial espSerial(8, 9); // RX, TX
void setup() {
  // On ouvre une communication serie hardware pour les messages destines au moniteur série
  Serial.begin(9600);
  // On ouvre la communication serie software pour l'ESP8266
  espSerial.begin(115200);


  Serial.println("Pret.");
}
void loop() {
  // si l'ESP8266 a quelque chose a nous dire, on ecrit son message sur le moniteur série
  if (espSerial.available()) {
    Serial.write(espSerial.read());
  }
  // si quelque chose a été saisi dans le moniteur série, on l'envoie à l'ESP8266
  if (Serial.available()) {
    espSerial.write(Serial.read());
  }
}

et les extraits de ce qu’il s’affiche sur le moniteur serie :

Merci d’avance !

J'ai du mal à comprendre ce que tu fais. Peux-tu décrire simplement ton matériel (UNO + ESP01, ou un seul ?), comment c'est connecté, le code tourne sur lequel, lequel est branché sur le moniteur série ? ? ? ? ?

Sur ton image, on voit que tu as un problème de watchdog timer qui reboote le... ESP01 ?

Pourquoi deux images : c'est le jeu des 7 erreurs ? :grin:

J'ai du mal à comprendre ce que tu fais. Peux-tu décrire simplement ton matériel (UNO + ESP01, ou un seul ?), comment c'est connecté, le code tourne sur lequel, lequel est branché sur le moniteur série ? ? ? ? ?

je crois que je me suis mal exprimé ^^, c'est pas la connexion entre les cartes mais plutot j'avais du mal à faire fonctionner le module ESP01, au debut j'ai essayé sur une carte uno (copie) ca n'a pas marché j'avais pas de feedback commande AT , j'ai ressayé sur une autre carte mega (copie) et le meme probleme , j'ai ramené encore une fois une uno mais originale cette fois et là ca marche xD je voulais passer sur la mega apl (originale) mais là de nouveau ca refonctionne pas .

j'ai besoin de travailler sur la mega parce que j'ai besoin de plus de E/S mais bon la je fais avec l'uno en attendant .

donc je sais pas si c'est vraiment materiel ou autres ..

Sur ton image, on voit que tu as un problème de watchdog timer qui reboote le... ESP01 ?

Pourquoi deux images : c'est le jeu des 7 erreurs ? :grin:

lol , non mais je me suis dit peut etre que ca serait plus explicite ^^, y a t il une solution pour que ca reboot plus ?

Il est possible que ça soit un problème d'intensité. J'ai lu sur internet que l'Esp8266 avait besoin de 250 mA et 3.3V au minimum pour fonctionner.
(source: Boards — ESP8266 Arduino Core 3.0.1-12-g69f8cd69 documentation )

Pour les volts pas de problème, mais pour les ampères apparemment ça peut causer des problèmes, surtout si tu ne connectes pas directement le composant et que tu utilises la breadboard.

Je te conseil de regarder cette vidéo : ESP8266 Arduino Wifi tutoriel simple pour les nuls - YouTube

PS: Je suis nul là dedans, j'ai juste fais des recherches hier et je suis tombé sur ça.

Bonsoir,

outre l'éventuel problème d'alimentation :

  • d'après la doc de Sofware Serial la pin 8 n'est pas utilisable pour le RX de SoftwareSerial sur mega.
  • Les cartes mega2560 disposent de 4 ports séries non émulés et donc plus performants que ceux de SoftwareSerial.
  • Certaines vitesses de communications (bauds) passent mal avec SoftwareSerial. 115200 c'est beaucoup je pense pour lui (d'où les caractères bizarres). Essaye peut-être à 9600 bauds.

Bonjour à tous,

Merci pour votre aide !

Pour les volts pas de problème, mais pour les ampères apparemment ça peut causer des problèmes, surtout si tu ne connectes pas directement le composant et que tu utilises la breadboard.

bien vu ! c'etait exactement ca je connecté le module via le breadboard ... merci (t'espasNul) mdr

outre l'éventuel problème d'alimentation :

  • d'après la doc de Sofware Serial la pin 8 n'est pas utilisable pour le RX de SoftwareSerial sur mega.
  • Les cartes mega2560 disposent de 4 ports séries non émulés et donc plus performants que ceux de SoftwareSerial.
  • Certaines vitesses de communications (bauds) passent mal avec SoftwareSerial. 115200 c'est beaucoup je pense pour lui (d'où les caractères bizarres). Essaye peut-être à 9600 bauds.

Merci pour ton aide supercc, oui j'utilisais bien les pins 10 et 11 mais j'avais toujours ce probleme, mais finalement je crois que c'est à cause du breadboard aussi .
pour les caractères j'ai essayé plusieur valeurs de baud mais à chaque fois je change de 115200 ca marche plus.

Certaines vitesses de communications (bauds) passent mal avec SoftwareSerial. 115200 c'est beaucoup je pense pour lui (d'où les caractères bizarres). Essaye peut-être à 9600 bauds.

J'ai changé le baud rate de mon esp à 9600 avec la commande :

AT+CIOBAUD=9600

et là j'ai plus de caracteres bizarre ! Merci encore une fois !

Cool et si tu veux aller plus vite utilises sur mega un second "vrai" port série (UART) : MultiSerialMega. C'est plus performant et plus simple que SoftwareSerial (bon, je n'ai jamais testé).

Je suppose qu'il reboot toujours ?

Cool et si tu veux aller plus vite utilises sur mega un second “vrai” port série (UART) : MultiSerialMega. C’est plus performant et plus simple que SoftwareSerial (bon, je n’ai jamais testé).

Je suppose qu’il reboot toujours ?

D’accord je testerai celà :D.

Non ca reboot plus depuis que j’ai reduit le chemin en breadboard ^^.

est ce que tu as une idée du processus pour envoyer et recevoir des données d’une DB à l’arduino et vice versa ?

lgabed420:
est ce que tu as une idée du processus pour envoyer et recevoir des données d'une DB à l'arduino et vice versa ?

Je ne sais pas , qu'est ce que tu appelles DB ? je n'ai pas bien compris ce que devais faire ton esp. Perso je ne joue pas avec les ESP-01 ni avec ses commandes AT.

Je ne sais pas , qu'est ce que tu appelles DB ? je n'ai pas bien compris ce que devais faire ton esp. Perso je ne joue pas avec les ESP-01 ni avec ses commandes AT.

DB : Base de donnée.

Je voudrais faire un websocket pour pouvoir envoyer et recevoir des données à un serveur ou une page web par exemple, ce que je trouve sur le net c'est surtout websocket en utilisant les GPIO de l'esp mais pas avec l'arduino donc c'est un peu galere... car j'ai besoin de plein de I/O sur mon ptit projet

vous utiliser quoi à la place du esp-01 ?

J'utilise (en amateur hein) des cartes esp8288 avec port USB (nodemcu, d1 mini) histoire de pouvoir les programmer simplement.

Je n'ai pas non plus jouer avec les Websockets mais j'ai gardé un exemple sous la main pour le jour ou, peut-être qu'il te sera utile.

Il y a peut-être des exemples/tutos sur ce forum, fais peut-être une recherche.

Sais-tu programmer ton ESP (je dis cela car comme tu joues avec les commandes AT, j'ai un doute).

D'après ce que je comprends, ce que je ferai, perso mais ce n'est peut-être pas la bonne voie :

  1. Programmer l'ESP comme serveur WebSocket fonctionnel, c'est a dire qu'il peut pousser/recevoir des données fictives dans/a partir un navigateur.

  2. Faire un programme ESP et un programme mega pour établir une communication (via la liaison série) afin que le programme ESP récupère (à la demande, à intervalle régulier ?) les données des capteurs du mega.

  3. Fusionner les 2 parties de programmes de l'ESP en un seul (il pousse les nouvelles valeurs lues sur la mega).

Il y a peut être plus simple, déjà tout fait mais je ne connais pas. Tu as été voir ce qui se faisant en domotique ?

Ravi d'avoir pu t'aider.

Savez-vous s'il existe une solution simple pour utiliser de la wifi avec Arduino. Au début je voulais prendre un ESP8266, mais l'ampérage de l'Arduino n'est pas suffisant, il faut donc acheter quelque chose comme ça :

Une pile est-elle suffisante ?

J'ai besoin d'une pompe à eau pour mon projet, en plus de la wifi, j'imagine que les volts nécessaires au moteur de la pompe sont supérieurs à ceux fournis par L'arduino UNO. Cela signifie que pour un petit projet, j'aurai besoin de 3 sources d'énergie, une pour la pompe, pour l'ESP et pour l'Arduino ?

N'existe-t'il pas de solution plus simple pour se connecter en wifi ?

@JeSuisNul, je pense que tu devrais ouvrir ton propre sujet pour ta recherche.

Ma solution, mais attention, je n'ai pas choisi mon pseudo à la légère, j'ai déjà grillé pleins des trucs :wink:

et je débute aussi mais mes premiers tests avec des convertisseurs abaisseurs de tension sont concluants.

Du coup, avec un fer a souder et un multimetre pour tourner le potar jusqu'à 9V, une solution possible peut-être pour toi (pas testé perso) :

 Alim 12 Volts
   |           |
  +12         GND      +--------------------------------+ 
   |           |       |                                |
   +-----------^---- RELAIS ---- +12 V ) pompe (+)      |
   |           +------------------ GND )                |
   |           |                                        |
   |           |                                        |
   +-----------^----------+12 V ) Mega (Vin)            |
   |           |                )        Dx           --+
   |           |                )        Tx/Rx        --+ 
   |           +----------- GND )                       |
   |           |                                        |
  Convertisseur de tension                              | liaison série
   |           |                                        |
  +9V     GND  |                                        |
   |           |                                        |
   +-----------^----------- +9 V ) nodemcu (Vin)        |
               |                           Tx/Rx -------+
               +------------ GND )

Suivant la consommation de la pompe tu peux remplacer l'alim 12V par une batterie 12V (ou 3 accus 18650 en série en reréglant la sortie du convertisseur qui d'après ce que j'ai lu ne dois pas dépasser 9V pour la broche Vin du nodemcu).

Avec des réserves.

EDIT : intégration d'un relai pour la pompe dans le schéma
EDIT 2 : si tu comptes utiliser des batteries/accus il faudra gérer les mode "veille" de la mega et de l'esp.

D'après ce que je comprends, ce que je ferai, perso mais ce n'est peut-être pas la bonne voie :

  1. Programmer l'ESP comme serveur WebSocket fonctionnel, c'est a dire qu'il peut pousser/recevoir des données fictives dans/a partir un navigateur.

  2. Faire un programme ESP et un programme mega pour établir une communication (via la liaison série) afin que le programme ESP récupère (à la demande, à intervalle régulier ?) les données des capteurs du mega.

  3. Fusionner les 2 parties de programmes de l'ESP en un seul (il pousse les nouvelles valeurs lues sur la mega).

Il y a peut être plus simple, déjà tout fait mais je ne connais pas. Tu as été voir ce qui se faisant en domotique ?

Je vois tres bien ce que tu veux dire et je trouve que c'est pas mal mais pour etre honnete j'ai aucune idée de la façon que je dois suivre pour commencer tout cela, et j'ai beau cherché des exemples de websocket arduino et esp01 mais j'ai pas trouvé du tout, et pour l'utilisation du esp32/nodemcu tout seul c'est un peu limité car il y a pas assez d'I/O.

j'essaie avec des exemples des esp32 les plus courantes mais j'ai toujours cette erreur :

In file included from C:\Users\medam\OneDrive\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:33:0,

                 from C:\Users\medam\OneDrive\Documents\Arduino\libraries\arduinoWebSockets-master\examples\esp8266\WebSocketClient\WebSocketClient.ino:10:

C:\Users\medam\OneDrive\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26:19: fatal error: queue.h: No such file or directory

compilation terminated.

exit status 1

ESP32 n'est pas le même µcontrolleur que l'ESP8266. La video proposé par JeSuisNul doit expliquer le processus et regardes peut-être d'autres vidéo, document. Tous ceux qui programme des ESP-01 doivent passer par là.

Dans un premier temps oublie websocket et cherche juste à intégrer un programme de base (genre blink : For ESP-01 blink sample on Arduino · GitHub).

ESP32 n'est pas le même µcontrolleur que l'ESP8266. La video proposé par JeSuisNul doit expliquer le processus et regardes peut-être d'autres vidéo, document. Tous ceux qui programme des ESP-01 doivent passer par là.

Dans un premier temps oublie websocket et cherche juste à intégrer un programme de base (genre blink : For ESP-01 blink sample on Arduino · GitHub).

Bonjour supercc, oui j'ai bien remarqué cela, et j'ai cherché presque partout mais je trouve pas ce que je veux.

j'ai deja integrer des programmes de base, maintenant j'ai vraiment besoin du websocket en esp01, mais je crois cela n'existe pas.

Je n’ai pas d’expérience avec les websockets mais, pour moi, il n’y a aucune raison que cela ne fonctionne avec un esp 01 (la carte) doté d’un esp8266 (le microcontrôleur qui équipe la carte) . Ne focalise pas sur esp 01, maintenant que tu sais le programmer tous les exemples websocket pour esp8266 doivent fonctionner. Je serai toi je chercherai le plus petit exemple possible de websocket pour 8266 et je testerai.

Oui mais il faut des librairies etc.. sauf si je fais la mienne.
j'ai testé beaucoup d'exemple et j'obtiens toujours l'erreur sur #14, je compte pas lacher l'affaire je continue mes recherches ^^

Quand tu as des erreurs :

poste ton code entre balise code et /code

ET poste le message complet de l'erreur (toujours entre balise code et /code).

Pas de capture d'écran STP

Cela suffit souvent pour trouver une piste.