我试图让我的ESP8266通过i2c总线连接和发送消息。我正在使用NodeMcu开发板。引脚D1,D2和GND相互连接。
我主人的代码是:
$('#client_id').change(function(){
//Client name should be select here base on selected id
});
$('#client_name').change(function(){
//Client id should be select here base on selected client name
});
我的奴隶ESP上的代码是:
#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);
}
运行此命令不会在接收器芯片上输出。
答案 0 :(得分:0)
答案 1 :(得分:0)
我不确定,但我希望Arduino的Wire库能够将硬件I2C控制器用于ATMega。 Espressif固件中的I2C驱动程序似乎是通过GPIO进行I2C,这暗示ESP上没有hw控制器(无论如何它们的概率是多少)。所以你需要使用除Wire.h之外的其他东西,因此我建议 - 尝试下载一些东西,它可以通过GPIO为你的Arduino IDE下载I2C。就像this ...也许,我还没试过。我知道不是一个完整的解决方案,但也许至少这有助于......祝你好运!
答案 2 :(得分:0)
ESP8266(I2C主站)到ESP8266(I2C从站)可以从版本2.5.0开始工作。查看我的评论on the ESP8266 GitHub