-->
Page 1 of 2

New to esp8266 - feasibility question (v. xmas present!)

PostPosted: Mon Oct 19, 2015 9:08 am
by shoelessone
Hi all!

First, I want to say that I'm guessing I can answer all of these questions myself with enough research on all of the different topics involved, but I'd really appreciate it if somebody could give me their opinion on the feasiblity at a high level of my project idea.

I want to point out that I have a software dev background and a bit of arduino experience, but I am by FAR not an electronics expert.

That said, here is my goal at a high level, then slightly more detail:

I'd like to create 8 boxes and give one to each member of my family. Each box has 8 icons (that I'll laser cut) on the front face of the box, and one capacitive button (large copper inlay perhaps) on the top of the box. Each icon represents one of our family members. When a family member presses the button on the top of the box, all other family members boxes have the icon corresponding light up. (i.e. my name is Kevin, if I hit the button on my box all of the "Kevin" icons on the other boxes light up). Also, when you press the button on your box all of your lights go out.

So that's the basic idea and the way the box would work. Now, here is how I had hoped to build this thing:

1. I was hoping to use an ESP8266 to "power" the entire thing. No arduino, no other mc, just an ESP8266. I had HOPED that the ESP8266 esp-01 might work, but I understand that it doesn't have an analog input and so my idea for a capacitive touch button might not work so well (?)
2. I was hoping to use MQTT to handle the communication. This seems "simple" in that, assuming things work as advertised, I can have each box subscribe to the appropriate topics and be notified when a button is pressed on one of the boxes, and of course I'll notify the broker when a button is pressed on a machine.
3. I am planning on using a "wall wart" for power, so "always on" is fine, if that matters. In other words I'm not going to try to power this with a battery, so I don't need to worry about "deep sleep" or really power consumption at all.
4. I have no idea the best way to control 8 LEDs. I'm guessing this MIGHT be one of the more difficult parts because something like "charlieplexing" wouldn't work for 8 LEDs I'm guessing because I don't think the ESP8266 has enough outputs (I should point out that if at any point it sounded like I knew what I'm talking about up to this point, again, I really don't.... So maybe there are NO outputs on the ESP8266 for all I know - I just know I've watched videos/tutorials where people light up a LED with an esp-01 so I'm guessing there is at least ONE output). I'm wondering if there is some sort of inexpensive LED "driver" that I can buy that will take a single input from the ESP8266 to control the LEDs. remember there may be anywhere from 1 to 8 LEDs on at one point, and they need to be individually controllable. So LED 1 and 4 might be on, or 1, 2, 3, and 8. Etc.
5. I was planning on using Lua because that seems "easy" and popular, and I've seen MQTT examples work with it. Again, the way I normally go about these sorts of projects is by pulling various parts of different tutorials/articles/videos/examples together to build what I want.

For now, that's about it. The design of the box/etc is a different topic all together, my main concern is whether or not somebody who isn't a hardcore electornics guy will be able to do this. And if anybody might have any recommendations off the top I'd really really appreciate it. For example, "don't use the esp-01, use the esp-XY" or "you can power 8 LEDs independently using _________ - check out __________ for a great tutorial!" etc :).

Thanks for your time!

p.s. I will be spending lots more time researching individual components/etc, again I'm really just hoping somebody can come in and look at the project and say "that will never work because of _______" or "yes, that will work" - a bonus would be to point me in the right direction :)


Edit: A bit more googling and talking with some friends, it seems like "multiplexing" is perhaps the word I'm looking for in terms of controlling the 8 LEDs (?).

Re: New to esp8266 - feasibility question (v. xmas present!)

PostPosted: Mon Oct 19, 2015 1:27 pm
by martinayotte
For LEDs, I would suggest to attach an I2C GPIO Expander such MCP23017, it will take only 2 pins of the ESP and will provide you up to 16 new GPIOs.

Re: New to esp8266 - feasibility question (v. xmas present!)

PostPosted: Mon Oct 19, 2015 2:12 pm
by shoelessone
martinayotte wrote:For LEDs, I would suggest to attach an I2C GPIO Expander such MCP23017, it will take only 2 pins of the ESP and will provide you up to 16 new GPIOs.


Thanks for the reply!

How would that compare to something like the 74HC595? Is there a reason you would specifically recommend the MCP23017?

Re: New to esp8266 - feasibility question (v. xmas present!)

PostPosted: Mon Oct 19, 2015 2:22 pm
by martinayotte
shoelessone wrote:How would that compare to something like the 74HC595? Is there a reason you would specifically recommend the MCP23017?

You can use 74HC595, but it is a simple shift register, it is not an I2C device, so you endup with 3 pins (CS, CLK and DATA). If you need more devices, you need to have several CS. Also 74HC595 is 8 outputs, it can't be used as inputs.
With I2C bus, you can have several devices, usually 8 devices, mixed output and inputs, for a total of 128 GPIO, and it still only require 2 pins, SDA and SCK.
The choice of MCP23017 is simply one I use very often, but there is also plenty of other, such as PCF8574. There are also some with builtin PWM to control RGB LED colors/brightness, again only on 2 pins, something you can't do with 74HC595.