i2C Connection between ESP8266 & Arduino MKR 1200 FOX

Hello,

I tried to send "hello" from ESP8266 to Arduino MKR Fox 1200 with i2C protocol.
I connected SCL (D1 ESP8266) to SCL (D12 Arduino Fox) and SDA (D2 ESP8266) to SDA (D11 Arduino FOX) and Ground to ground.

The codes compile but nothing happened, I tried to add a Serial.print in the "while(Wire.available())" and it seems that it doesn't even go in.

I used those codes

For Arduino MKR Fox 1200 (master_receiver) :

#include <Wire.h>

void setup()
{
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
}

void loop()
{
  Wire.requestFrom(8, 6);    // request 6 bytes from slave device #8

  while(Wire.available())    // slave may send less than requested
  { 
    char c = Wire.read(); // receive a byte as character
    Serial.print(c);         // print the character
  }

  delay(500);
}

For ESP8266 (slave_sender) :

#include <Wire.h>

#define SDA_PIN 2
#define SCL_PIN 1
const int16_t I2C_SLAVE = 8;

void setup() {
  Wire.begin(SDA_PIN, SCL_PIN, I2C_SLAVE);                // join i2c bus with address #8
  Wire.onRequest(requestEvent); // register event
}

void loop() {
}

// function that executes whenever data is requested by master
// this function is registered as an event, see setup()
void requestEvent() {
  Wire.write("hello"); // respond with message of 5 bytes
  // as expected by master
}

Arduino IDE config
For Arduino MKR FOX 1200 :

For ESP8266 :

config_arduinoFox.PNG

config_arduinoFox.PNG

Bonjour

Ici on parle français !! (un coup d'oeil aux messages des autres avant de poster permetde s'en rendre compte....)

D'après la documentation de la dernière version (2.7.4) de l'extension ESP8266 pour IDE Arduino la libairie Wire n'est pas censée supporter l'I2C en Slave :
https://arduino-esp8266.readthedocs.io/en/2.7.4_a/libraries.html#i2c-wire-library

Avec des modifications c'est sans doute faisable, à moins que la documentation ne soit pas à jour et que le mode Slave soit déjà pris en charge.

Que dit un scanner I2C lancé sur la carte MKR 1200 Fox ?

Merci pour ta réponse.
ah oui désolé, l'interface en anglais m'a induite erreur.

Pour la bibliothèque, j'ai trouvé le code slave de l'ESP8266 dans les exemples présents dans l'IDE dans la catégorie ESP8266... J'ai donc pensé que c'était bon.

Le scan ne donne rien :frowning:

En effet il y a deux exemples Slave proposés danbs le groupe Wire

ESP8266 pas vu au scan, mauvais signe...

Les indispensables résistances de pull-up sont elle pérsentes sur le bus ?

J'ai regardé la doc mais je ne sais pas vraiment repérer ce genre d'information, j'ai un niveau plutôt novice.

Il faut une pull up sur les pins SCL des deux cartes ?

Une seule résistance (3, 3k ou 4,7k) entre SCL 3,3V
Idem pou SDA

+Voir l'article I2C de wikipedia

Bonjour la communauté duino,

On a essayé avec la pull up mais pas d'amélioration, peut être est-elle inclue de base ?

deux pull up, un pour SDA l'autre pour SCL

il faut franchir l'étape de la reconnaissance de l'esclave à la bonne adresse par un scanner sur le maÎtre

oui nous avons mis une pull up sur sda et scl
Le scanner ne détecte toujours rien

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