ESP8266 je obľúbený modul pre IoT projekty, ktorý okrem WiFi ponúka aj podporu pre rôzne komunikačné protokoly vrátane zbernice I2C. Táto zbernica umožňuje pripojiť k ESP8266 množstvo periférií cez len dva vodiče – SDA (údaje) a SCL (hodiny) – čím šetrí piny a zjednodušuje zapojenie.
Na rozdiel od Arduino Uno, ktoré má pevné piny SDA (A4) a SCL (A5), ESP8266-01 (ESP-01) najčastejšie používa dva odporúčané piny GPIO2 (SDA) a GPIO0 (SCL), ktoré možno ale v kóde ľubovoľne zmeniť pomocou knižnice Wire volaním Wire.begin(SDA, SCL);. Vďaka tomu môžeme podľa potreby pripojiť OLED displej alebo iné periférie na flexibilné piny ESP8266 a jednoducho ich ovládať.
Ako príklad uvádzam pripojenie OLED displeja.

Ak teda na displeji (pri pohľade zo zobrazovacej časti) sú piny označené ako Gnd, Vcc, SCL, SDA, a displej funguje, potom je zapojenie takéto:
ESP8266 GPIO2 → SDA na displeji
ESP8266 GPIO0 → SCL na displeji
a kód vyzerá takto:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#define SDA 2 //data line #define SCL 0 //clock line Wire.begin(SDA, SCL); alebo priamo Wire.begin(2, 0); Príklad pre ESP-01 a OLED #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> //0.96" OLED Adafruit_SSD1306 display(128, 64, &Wire, -1); #define SDA 2 #define SCL 0 void setup() { Wire.begin(SDA, SCL); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.println("Hello MiroR"); display.display(); } void loop(){ } |

