How to Use Multiple Analog Sensors on Your ESP8266

by witnessmenow in Circuits > Arduino

64264 Views, 70 Favorites, 0 Comments

How to Use Multiple Analog Sensors on Your ESP8266

[TMT] How to use multiple analog sensors on your ESP8266

Hello Everyone!

In this instructable I'm going to show you how to how to use multiple analog sensors with your ESP8266 using a 4051 multiplexer.

Check out the video (2 mins) for a quick run down of what I'll be covering here. I also have an example sketch on how to use the multiplexer on my github.

The Problem

NodeMCu.jpg
2-Axis-analog-Joystick.png

As mentioned in the introduction, the ESP8266 only has one analog pin, which can prove to be a problem for some applications.

I've included an image of an analog stick component that is quite common in Arduino sensor packs. The analog stick requires one analog input to measure the movement on the X-axis and a second analog input to measure the movement on the Y-axis. On it's own the ESP8266 can not be used with this sensor.

But fear not, all is not lost....

A Solution

MultiplexerEbay.png

There is a couple of different ways to solve problem, and the one I'll be covering here is the 4051 multiplexer, which can be picked up for less than $2 for a pack of 10 on Ebay.

With the 4051 you can connect up to 8 analog devices to the single analog pin on your ESP8266 (It also uses 3 digital pins, which I'll cover in a moment).

How It Works

Example1.png
Example2.png

So, how does it work?

It has:

  • 3 select pins, labeled A B and C (These are digital pins)
  • A Common pin
  • 8 option pins (labeled X0 - X7)

Based on the inputs provided to the select pins, a different option pin is connected to the Common pin.

In the first example, I set the option pins to 0 0 0 , which connects Common to X0

In the second example, I set the option pins to 1 1 0, which connects Common to X3

One thing to note is that you don't need to connect up all the select pins if you don't need that many option pins. For example, if I wanted to connect the Analog Stick Component from the first step to the ESP8266, I would only need to move between two of the option pins, which means I only need to connect up one of the select pins (and tie the other select pins to ground).

Wiring

4051.png
wemos.png

Now let's take a look at how to wire the Multiplexer to the ESP8266

Wemos -> 4051

D4 -> S0 (A)

D3 -> S1 (B)

D2 -> S2 (C)

A0 -> Common

3.3v -> VCC

G -> GND

G -> Inhibit

G -> VEE

Then connect whatever Analog sensors are required to the option pins (X0 - X7)

You should now be able run the example from this github page.

Hopefully you find this useful! If you have any questions please let me know.

Brian