I2C Scanner for ESP8266-01

(Last Updated On: May 23, 2018)

I2CI am semi new to programming electronics. Straight amateur thats for sure, but I know enough to be dangerous. I have been trying to figure out how to get my MPU6050 sensor to work with the ESP-01. I couldn’t figure it out for the life of me. I have tried all kinds of things. I started this endeavor back when there was no Arduino IDE support for the ESP (a while ago). It was AT commands or LUA. Now that the Arduino IDE can be used it makes things much easier (I initially had issues getting it to work on my Mac). But sometimes there is a catch. I have noticed that most of the Arduino sketches will work but with a small minor tweak here or there. For example most tutorials I have found people are using the ESP8266-12. The model 12 has multiple pins available for TX & RX, the 01 model does not. The 01 model is the cheapest and happens to be what I have.

I found out it was pretty easy to change the sketch to get it working, most of the time. In the case of say I2C you have to specify the pins used for communication. The 01 only has two free pins, GPIO0 and GPIO2. Those can be used as inputs/outputs for a relay or say an LED. Or, you can use them for I2C communication. You need to specify the pins used in the sketch though. I am pretty sure this is beginner stuff, but hey I just figured it out.

Load up the default I2C scanner sketch and where you see Wire.being()  change that to Wire.being(0,2)  and you are now good to go. That should get you going on almost any I2C based sketch for Arduinos. You wont be able to use the pins for input/outputs (as far as I know) but now you have I2C.

Leave a Reply