Javadoc link

The Esp8266_01 service can be used to connect any of the i2c devices that exists in MRL to an ESP8266-01 or any other variant of ESP8266.

An ESP8266 is a small WiFi enabled device that comes in many different variants. The variant I have tested  is the ESP8266-01. The Esp8266-01 service acts as an i2cController, so any i2c device can be connected to is. So now we have: 

Wireless servos using Adafruit16CServoDriver

Wireless Voltage and Current measuring using AdafruitIna219

Wireless A/D conversion using Ads1115

Wireless IMU using either Bno055 or Mpu6050

Wireless display using OledSsd1306

Wireless digital I/O expander using Pcf8574

And all the devices above can be connected on the same ESP8266 using only two pins.

And if you want to use multiple i2c devices with the same address, the i2cMux also works wireless


To use the Esp8266_01 service you also need compile and upload the Esp8266_01.ino file to the Esp8266. The sketch can be found in <MRL-home>\resource\Esp8266_01

To connect a i2c device use this schematic. The schematic shows an MPU-6050, but you can connect any other i2c device the same way. 

ESP8266-01 and MPU-6050


When you connect to the esp8266_01 using this address: http://esp8266-01.local/ it will show a screen with a map of all connected i2c devices.

This video expains more about the different steps:



Example code (from branch develop):
# Initiate the Esp8266-01
esp = runtime.start("esp","Esp8266_01")
oled = runtime.start("oled","OledSsd1306")
# Demo to show how to write images
# Images arrays are created using the LCDAssistance as described here:
# and downloaded from here:
Example configuration (from branch develop):
listeners: null
peers: null
type: Esp8266_01