15

I’m a hobbyist and have used Arduino so far for simple projects. Now I want to build a project involving addressable LEDs, I want to write several programs on the Arduino for the LEDs and on my phone I select which ones to run.

I found ESP8266 as a good and cheap solution to talk to my Arduino. Searching on the web to learn getting it to work I found that It has its own mcu on it and I can write and upload my code in Arduino IDE! 20kB of RAM, 80MHz CPU and 4MB of flash for 3 USD (However I’m not sure of these numbers but even one fourth of it is great)!! If I just need a few GPIOs why should use an Arduino UNO? Is this module reliable?

  • No, I'm not going to look up what a ESP8266 is to answer a question here. Besides, from the title this is clearly a opinion-based question, and it seems is about the use of electronic device rather than their design. Not only that, but to erase any doubt, you mention "arduino". – Olin Lathrop Jun 5 '16 at 13:58
  • 1
    The internal ESP8266 processor is able to run user programs. The language used depends on what you have access to. LOA is commonly used. – Russell McMahon Jun 5 '16 at 14:15
  • 10
    @OlinLathrop If people use terms such as "LM324", "BC337", 1N4148 it is generally accepted that they are well enough known that inclusion of opamp, bipolar low power NPN transistor and silicon small signal diode, respectively is not required for understanding. | The ESP8266 family is a range of modules with WiFi + processor in a single IC and a companion memory for program. These are very very well known and something extremely worth knowing about if you have not met them. While not (yet) quite as ubiquitous as eg an LM324 they are quite possibly the most common "IOT" WiFi interface overall. – Russell McMahon Jun 5 '16 at 14:19
  • 3
    I really do not think this question deserves a negative – Malachi Jun 6 '16 at 8:28
  • 3
    @linhartr22 Quoting from www.lua.org/about.html: "Lua" (pronounced LOO-ah) means "Moon" in Portuguese. As such, it is neither an acronym nor an abbreviation, but a noun. More specifically, "Lua" is a name, the name of the Earth's moon and the name of the language. Like most names, it should be written in lower case with an initial capital, that is, "Lua". Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right! – gone Jun 14 '16 at 14:21
11

Well, the answer of the question "Can it replace Arduino" - yes, in many cases it can.
Whether it would be "the Arduino killer" - I doubt it.
There are multiple arduinos and ESPs in my home and 1 ESP in my office running 24/7 as a part of my self-made (and constantly under development) smart home solution, together with 1-2 PCs. On top of that I have several experiments / unfinished projects involving the ESP.
So, from my not-so-limited experience, here are the pros and cons of ESP compared to Arduino:

++++ Internet connectivity built in!
++ Faster clock and more memory.
+ Runs on 3V3 (most, but not all Arduinos are 5V) so it can interface 3v3 devices (like most of the display modules) directly, without level shifters.
+ The "basic" ESP-12E costs about as much as an Arduino nano or pro micro.

- The "basic" ESP-12E is 2.0mm pitch, not 2.54mm, making it a pain in the ass to work with.
- There are breakouts that make it easier for prototyping, but they increase the cost and take too much space on a breadboard / protoboard.
- The most common breakout - NodeMCU - is more expensive and has pins remapped, major annoyance, unless you program it in Lua, which is only ok for very simple projects. IMO, it should be used for prototyping only.
- They run on 3v3, making it hard to interface 5V modules, fully turn on most MOSFETs, etc.
- They are extremely picky on their power supply.
- They draw significantly more power than the Arduino when not transmitting and much more when transmitting.
- They are almost always worse for battery operated projects - you need 3v3 regulator (which has quiescent current), you need to sleep a lot (and you need GPIO16 broken out for that) and at the end of the day an arduino + a low-power radio will do the same job while lasting significantly longer on battery.
- They have less GPIO pins and some of them must have set voltages at startup (GPIO0 - high, GPIO2 - high or floating, GPIO15 - low), also they "wiggle" some of their IO pins on startup, often making them unusable for many devices.
- They only have one ADC, and to my knowledge it is slower than the already slow Arduino ADCs, plus you can only use it with 0-1.1V (internal reference).
- Many of the Arduino libraries work out of the box or are already ported, but many don't. You either have to port them yourself or wait for someone to do it. In general, the Arduino community is much bigger and more mature, so most "noob-friendly" tutorials, libraries, etc. are provided for the Arduino.

Having that said, the ESP8266 is still great and extremely useful. Even Lua is useful for quick small projects. In most cases where internet connectivity is required, they seem to be the best solution. In many other cases, whether you will use ESP or Arduino actually doesn't matter. And sometimes the Arduino (or the little ATTiny85) is the better choice.
As always, "the right tool for the job" is the way to go.
Or combination of tools.

  • 2
    Strongly disagree that it is "just wrong" to use an ESP as a secondary device to an Arduino with a UART interface. You point out reasons for this yourself - if you want to use libraries that aren't yet ported to the ESP, why not have the Arduino as the primary device and use the ESP to do one job well? Or if you are more familiar with 8-bit AVR devices and can afford $5 for a very capable WiFi addon, why not do that? In engineering, excluding stupidity, there is no right or wrong way, provided it works - only more or less appropriate to a particular challenge. – stefandz Jun 5 '16 at 21:14
  • 2
    There is nothing wrong with having an arduino (or attiny) connected with ESP via UART. What feels "wrong" is using AT commands and having the Arduino parse HTML requests and responses, etc. It sure works (I've done it), but sounds wrong - the "logical" way would be for the more powerful chip (the ESP) to act as a master and offload specific tasks to the less powerful chip, not the other way around. Most of the time, it is also the easier way - fiddling with AT commands parsing on the Arduino is neither fun nor efficient. Yes, you have to program both chips this way, which is inconvenient. – Mishony Jun 6 '16 at 4:06
  • 1
    Might be worth editing your answer to include this clarification. – stefandz Jun 6 '16 at 6:51
  • 1
    Because the rest of the answer is good, but that last sentence is unclear and misleading imho. Clarifying for those seeking answers would help those who do not understand why this might be a bad idea - and get them away from the idea that there is such a thing as "just wrong" without clear reasoning. But the answer is yours - obviously you are free to do as you see fit. – stefandz Jun 6 '16 at 6:58
  • 1
    If you really need to use an Arduino AND an ESP (instead of just the ESP) then you can still use Serial communication, but on a higher level - for example Arduino sends "temp=26.5" to the ESP, your code on the ESP recognizes that and sends an HTTP request to thingspeak.com or whatever. For this to work, you must program both the Arduino and the ESP, which is a bit inconvenient, but not really harder than fiddling with AT commands. In many situations you can simply ditch the Arduino and only use the ESP. – Mishony Jun 6 '16 at 12:46
1

Yes there are a few I/O pins, so in theory you could drive one or a few leds or use an I/O port expander (I2C) for example.

And yes you can develop software and download it into even the low cost modules. The Arduino-like angle is just one way to do this. It is not an ARM as one might be lead to believe. But there is a gnu toolchain for the esp8266, etc. Yes 80 or 160MHz, 32 bit RISC, some flash, some ram.

1

If you can program it, then of course it is viable to directly control your lights. It doesn't have a large number of I/O pins like the Arduino does, but as long as you have enough to do the job, it certainly drops the cost, the size, and the power requirements.

  • 1
    @Dow you can find even better price on ebay/aliexpress. – Darko Jun 5 '16 at 12:43
  • 1
    For my application one IO is enough, however ESP-12 provides several IOs, 10 bit ADC and much more. Actually I bought one ESP-01 for 1.78 USD (From Aliexpress)! Check github.com/esp8266/Arduino for using your ESP in Arduino IDE. you just need a USB to serial converter. Or google NodeMCU to get it all in one board. – ahmadx87 Jun 5 '16 at 12:44
1

The Arduino Uno board and the ESP module are not the same, but as long as the GPIO of the ESP8266 provides the hardware that you need for your application it will work.

One of my concerns is certification. The product has received several certifications, you'ld need to check if your version is also certified. You can lookup the manufacturer's certifications (and some documentation) from the FCC Search Page by entering 2AC7Z as the grantee code. The board you use may depend on those or require their own certification.

As you noticed, it can be added as a board type to the Arduino tool which makes it a lot easier for hobiests to play with it.

I just checked the grants and all three of them require that the WiFi antenna is kept at least 20 cm of all persons.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.