2017-02-25 13 views
2

私はESP8266の接続とi2cバスを介してメッセージを送信しようとしています。私はNodeMcu開発ボードを使用しています。ピンD1、D2、GNDは互いに接続されている。ESP8266〜ESP8266 i2C通信

#include <Wire.h> 

void setup() { 
    Wire.begin(D1,D2); // join i2c bus (address optional for master) 
    Serial.begin(115200); 
} 

byte x = 0; 

void loop() { 

Wire.beginTransmission(8); 
    Wire.write(x);    // sends one byte 
    Wire.endTransmission(); // stop transmitting 
    Serial.println("Transmitted"); 
    x++; 
    delay(500); 
} 

そして、私の奴隷ESP上のコードは次のとおりです:私のマスターに

コードがある

#include <Wire.h> 

void setup() { 
    Wire.begin(8);    // join i2c bus with address #8 
    Wire.onReceive(receiveEvent); // register event 
    Serial.begin(115200);   // start serial for output 
} 

void loop() { 
    delay(100); 
} 

// function that executes whenever data is received from master 
// this function is registered as an event, see setup() 
void receiveEvent(int howMany) { 
    Serial.println("Received.."); 
    /* 
    while (1 < Wire.available()) { // loop through all but the last 
    char c = Wire.read(); // receive byte as a character 
    Serial.print(c);   // print the character 
    } 
    */ 
    int x = Wire.read(); // receive byte as an integer 
    Serial.println(x);   // print the integer 
} 

が実行これは、レシーバチップには出力を与えません。

それはI2Cのように見えないコメントで述べたように
+0

現在Arduino-ESP8266またはNodeMCUファームウェアでは、I2Cスレーブモードは使用できません。 https://github.com/nodemcu/nodemcu-firmware/issues/1687およびhttps://github.com/esp8266/Arduino/issues/1330を参照してください。 http://bbs.espressif.com/viewtopic.php?t=2092も参照してください。 –

+0

普通のシリアル通信を試みるかもしれません。 – dandavis

+0

[リンク](https://github.com/esp8266/Arduino/compare/master...bjoham:i2c_slave)を参照してください。しかし、私はまだそれを理解することはできません。キャンプの後でさえも – user3599285

答えて

0

がサポートされていますが、あなたはちょうど2つのデバイス間の通信を可能にするために、単一のワイヤを接続する必要がPJON

を使用することができます

Esp8266 to Esp8266 diagram

0

私は確信していませんが、私はArduinoのWireライブラリがATMegaのハードウェアI2Cコントローラを使用することを期待しています。エスプレッソのファームウェアのI2CドライバはGPIO上でI2Cを実行しているようですが、それはESP上にコントローラがないことを示唆します。ですから、Wire.h以外のものを使う必要があるので、私はあなたのArduino IDE用にGPIOを使ってI2Cを偽​​造するものをダウンロードしてみてください。 thisのように。多分、私はそれを試していない。私は完全な解決策ではないことを知っていますが、少なくともこれは役立ちます..幸運を祈る!