ESP8266ノウハウ

ESP8266はWi-Fiに対応した安価なモジュールです。私はESP-WROOM-02Dというモジュールを使っています。 ESP-WROOM-02DはESP8266の技適取得済みパッケージです。

I2C通信

Arduino Unoでは、wire.begin(SDA, SCL) のように SDA と SCL のピンを任意に変更することはできません。 ピン番号を指定しようとするとコンパイルエラーになります。 Arduino Uno のハードウェア仕様では、I2C通信は専用のピンに固定されています。

SDA (データ線): A4 ピン
SCL (クロック線): A5 ピン

ESP8266では、wire.begin()で初期化するとIO4, IO5にアサインされます。

SDA (データ線): IO4 ピン
SCL (クロック線): IO5 ピン

#include <Wire.h>

#define SDA 12
#define SCL 13

setup(){
    wire.begin(SDA,SCL);
}

上記のようにプログラムするとI2CのピンをIO12, IO13に移動できます。

SDA (データ線): IO12 ピン
SCL (クロック線): IO13 ピン