(Résolu) Comment envoyer de la data depuis EPS6288 vers Arduino nano?

Bonjour,
Faisant suite à mon projet d'une matrix Led affichant l'heure et diverses informations.
Lien : (Résolu)Programmer 2 délais d'affichage différents ds un même code matrice LED - Français - Arduino Forum

J'ai rajouté un module ESP6288 et programmé le code pour qu'il aille récupérer l'Api sur le site openweather.org (T°, Humidité, etc)

Si je connecte le module, via une adaptateur USB ESP-01 au PC, je peux lire les informations dans la console sans problème en serial.

/**************************************************************************************
 
 Internet weather station using ESP8266 Wi-Fi module
 This is a free software with NO WARRANTY.
 http://simple-circuit.com/
 
***************************************************************************************/
 
 
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>  // http web access library
#include <ArduinoJson.h>        // JSON decoding library
#include <SoftwareSerial.h>
 
const char *ssid     = "xxx";
const char *password = "xxxxx-xx";
 
void setup() {
 
  Serial.begin(115200);
  delay(500);
  Serial.print("Connecting.");
 
  WiFi.begin(ssid, password);   // access Wi-FI point
 
  while ( WiFi.status() != WL_CONNECTED ) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("connected\r\n");
 
}
 
void loop() {
 
  if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
 
    HTTPClient http;  //Declare an object of class HTTPClient
 
    // specify request destination
    http.begin("http://api.openweathermap.org/data/2.5/weather?q=xxxx&APPID=8b9xxxdd66af5xxda88xxx1b013");
 
    int httpCode = http.GET();  // send the request
 
    if (httpCode > 0) { // check the returning code
 
      String payload = http.getString();   //Get the request response payload
 
    DynamicJsonBuffer jsonBuffer(512);
 
      // Parse JSON object
      JsonObject& root = jsonBuffer.parseObject(payload);
      if (!root.success()) {
        Serial.println(F("Parsing failed!"));
        return;
      }
 
      float temp = (float)(root["main"]["temp"]) - 273.15;        // get temperature
      int   humidity = root["main"]["humidity"];                  // get humidity
      float pressure = (float)(root["main"]["pressure"]) / 1000;  // get pressure
      float wind_speed = root["wind"]["speed"];                   // get wind speed
      int  wind_degree = root["wind"]["deg"];                     // get wind degree
 
      // print data
      Serial.printf("Temperature = %.2f°C\r\n", temp);
      Serial.printf("Humidity    = %d %%\r\n", humidity);
      Serial.printf("Pressure    = %.3f bar\r\n", pressure);
      Serial.printf("Wind speed  = %.1f m/s\r\n", wind_speed);
      Serial.printf("Wind degree = %d°\r\n\r\n", wind_degree);
 
    }
 
    http.end();   //Close connection
 
  }
 
  delay(60000);   // wait 1 minute
 
}
// End of code.

Mais ou cela se gâte c’est quand je veux connecter le module à une Arduino Nano. Car rien ne fonctionne.

--> Est-ce correct de le faire avec une connection sur pin RX (ESP6288) –-- RX (Arduino nano) et TX (ESP6288) –RX (Arduino nano) ?

--> Comment je dis à ESP d’envoyer les informations via RX/TX ?

Merci pour toute aide

Entre les deux, il te faut un petit circuit adaptateur 5V <-> 3.3 V

+1, l'ESP8266 n'est pas censé supporter 5V sur son entrée RX (c'est du moins l'avis de son fabricant qui ne garantit rien au delà de 3,6V...; tout peut arriver...)

et côté Arduino éviter de relier l'ESP01 à un port série déjà utilisé pour la laison USB avec l'odrinateur
utiliser alors un second port série, nécessairement logiciel =SoftSerial(), sur la carte Nano

Comment je dis à ESP d'envoyer les informations via RX/TX ?

il le fait déjà puisque les données arrivent dans la console !!

il reste à dire à la carte Arduino de recevoir ces données par un port série logiciel, port dédié à la communication série avec l'ESP-01

al1fch:
+1

et côté Arduino éviter de relier l'ESP01 à un port série déjà utilisé pour la laison USB avec l'odrinateur
utiliser alors un second port série, nécessairement logiciel =SoftSerial(), sur la carte Nano
il le fait déjà puisque les données arrivent dans la console !!

il rste à dire à la carte Arduino de recevoir ces données par un port série logiciel, port dédié à la communication série avec l'ESP-01

Ca ne marche pas trop,
j'utilise un adaptateur USB pour programmer la carte ESP8266 et vérifier que la connection se fait bien et lire les résultats sur la console. Ensuite je j'enlève de l'adaptateur et je la connecte à l'Arduino.


Mais pour brancher ensuite la carte sur la carte Arduino nano, cela ne fonctionne pas. Je fais la connection suivante:
pin D0 ( TX Arduino Nano) ---> pin TX (Carte ESP)
pin D1 ( RX Arduinio Nano) ---> pin RX (Carte ESP)
VCC et Ch-Pd sont alimentés par le port 3.3V de l'Arduino, ça à l'air de suffire, car le led de la carte clignote brièvement lors du branchement USB au PC.
GND relié au GND de l'Arduino aussi.
Je note qu'il devient impossible de téléverser quand je connecte la carte ESP8266 à l'Arduino, car l'option USB connect n'est plus dispo dans l'Arduino IDE.

Mais pour brancher ensuite la carte sur la carte Arduino nano, cela ne fonctionne pas. Je fais la connection suivante:[/color]
pin D0 ( TX Arduino Nano) ---> pin TX (Carte ESP)
pin D1 ( RX Arduinio Nano) ---> pin RX (Carte ESP)

normal que ça ne fonctionne pas parfaitement , lire au dessus (entre autres : ne pas utiliser D0 et D1) s'il s'agit de faire communiquer l'ESP-01 et le microcontrolleur et non l'ESP-01 et l'ordinateur au travers de la carte Arduino, sans utilser le microcontrolleur.

VCC et Ch-Pd sont alimentés par le port 3.3V de l'Arduino, ça à l'air de suffire,

ça n'aura pas l"air longtemps !!! dès que le WiFi sera en service la demande en courant de l'ESP-01 dépassera l'offre , l'ESP8266 rebootera . Une alimentation 3v 500mA spécifique est indispensable pour un BON fonctionnement d'un ESP-01 avec le WiFi activé.

Bref avec :
-l'utilisation de D0 et D1
-l'alimentation par le 3,3V de la carte Arduino
-l'envoi d'un niveau 5V sur le Rx d'un ESP-01
tu cumules les choses à éviter....tu as peu de chances d'être satisfait du fonctionnement.

Le ESP_01 je le range après configuration de la carte Wifi. Je souhaite brancher uniquement la carte ESP8266 directement sur l'Arduino selon ce schéma exemple et récupérer les data provenant de la carte ESP8266 pour les afficher sur une matrix.

Les pin 2 et 3 étaient déjà pris, alors j'ai essayé avec les pins 4 et 5 sans résultats (diffère du schéma), donc j'ai essayé avec les pins TX/RX de l'Arduino.
merci déjà pour informations.

tu utilises un vocabulaire personnel qui n'arrange pas la communication !!

ESP-01 c'est la petite carte que tu représentes à droite de la carte Arduino !! (cette carte est sortie fin 2014 et a toujours eu ce nom) Pourquoi lui inventer un autre nom ?
Le composant principal de cette carte est un microcontrolleur ESP8266
Ce que tu as rangé c'est un adaptateur USB pour carte ESP-01, il t'a servi pour flasher la carte ESP-01

Comme indiqué plus haut tu n'iras pas loin en alimentant la carte ESP-01 avec le 3,3V de la carte Arduino

Pour information l'assemblage que tu tentes entre une carte Arduino et un ESP-01 date de l'apparition des ESP8266 (fin 2014) Depuis les choses ont bien progressé pour l'ESP8266 et sur ce forum la plupart des utilisateurs d'ESP8266 utilisent des cartes NodeMCU ou WEMOS D1 Mini où tout le travail confié à l'ESP8266
Il se débrouille bien mieux tout seul sans carte Arduino!!

al1fch:
tu utilises un vocabulaire personnel qui n'arrange pas la communication !!

ESP-01 c'est la petite carte que tu représentes à droite de la carte Arduino !! (cette carte est sortie fin 2014 et a toujours eu ce nom) Pourquoi lui inventer un autre nom ?
Le composant principal de cette carte est un microcontrolleur ESP8266
Ce que tu as rangé c'est un adaptateur USB pour carte ESP-01, il t'a servi pour flasher la carte ESP-01

Comme indiqué plus haut tu n'iras pas loin en alimentant la carte ESP-01 avec le 3,3V de la carte Arduino

Pour information l'assemblage que tu tentes entre une carte Arduino et un ESP-01 date de l'apparition des ESP8266 (fin 2014) Depuis les choses ont bien progressé pour l'ESP8266 et sur ce forum la plupart des utilisateurs d'ESP8266 utilisent des cartes NodeMCU ou WEMOS D1 Mini où tout le travail confié à l'ESP8266
Il se débrouille bien mieux tout seul sans carte Arduino!!

Re,
après m'être fait bloqué temporairement par openweathermap à cause du dépassement de la limite des calls/minute autorisée et un affichage des valeurs de la météo sur la matrice assez limité, j'ai laissé tomber et j'ai suivi ton conseil en passant sur une carte NodeMCU.
Maintenant c'est nickel, tout fonctionne parfaitement: l'affichage se fait directement depuis la dite carte.
Afin d'éviter un nouveau blocage: la fonction qui va chercher les paramètres météo sur openweather tourne tous les 20min et stocke les valeurs via EEPROM : (EEPROM.put()) puis la fonction arrête la connexion au site avec http.end().
Ensuite une deuxième fonction reprend les valeurs stoquées dans EEPROM (EEPROM.get() ) et les affiche (T°, P°, H° etc) en loop pendant 20minutes.
Il parait/à confirmer que EEPROM.put() ( tout comme EEPROM.update()) n'écrit dans la mémoire, que si la valeur a changé . Cela permet d'éviter des écrtures en mémoire inutiles et sauvegarder un peu la durée de vie de EEPROM.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.