0

I already have an Arduino Uno, and I want to learn Internet-of-Things. I'm planning to use an ESP8266 since it's cheap. Should I purchase an ESP8266 Wifi transceiver module to use with my Arduino Uno or just buy an ESP8266 NodeMCU board?

Is there any advantage using an ESP8266 NodeMCU board to using my Arduino Uno with an ESP8266 Serial transceiver module?

  • don't be "one of those guys", program the ESP8266; it's a million times faster with a billion times more ram and flash (an exaggeration, but true in spirit) – dandavis May 21 '18 at 19:33
  • The Uno has its place, but its not an ideal platform for a connected device. The ESP is bigger, but can connect less hardware, but if you need more hardware connections you can always slave an UNO to the ESP :) – Code Gorilla May 22 '18 at 11:55
6

In my opinion, it is more desirable to program the ESP8266 directly. I'm always shivering when I see a Uno (ab)using the ESP8266 as a WiFi bridge when the ESP8266 already has everything needed for the project. Of course, this is highly project specific.

Advantages of programming an ESP8266 directly:

  • you learn about a new MCU and architecture (XTensa vs AVR)
  • you learn to use a new Arduino Core (Arduino-ESP8266)
  • ESP8266 is way more powerful than the Arduino Uno
    • 80MHz (overclockable to 160MHz) vs 16 MHz
    • ~40kB free RAM at startup vs 2 kB
    • 4 MB Flash vs 32kB
    • can use an RTOS like FreeRTOS
    • Flash can be used as filesystem (e.g. for a HTTP(S) server)
    • ==> we can build way more complex projects
  • WiFi radio and stack directly on the processor, no need to get information via a serial bridge
    • higher speed, more direct control over sockets etc.
  • you can try out other frameworks and languages, such as
  • easier to move to its big brother, the ESP32 (Dual-Core XTensa LX6 @ 240MHz, WiFi + BT, 4MB Flash, 520kB RAM (+4MB PSRAM optional), tons of peripherals and accelerators) for even more complex projects

Disadvantages:

  • only 1 ADC input (vs. 6) with a voltage range of 0 to 1.0V (unlike the normal 5V range on the Uno)
    • remedy: external ADCs via I2C / SPI (e.g. MCP3008)
  • 3.3V device, must be careful when connecting to existing 5V devices or shields
  • less number of available digital GPIO pins (9 vs 13)

In summary, I think a good way of acquiring a better skillset is to try to explore and program a new board directly vs programming the old board and slapping the new one on top over serial. I hope this gave a rough overview of why an ESP8266 might be better (or worse) for a certain project.

  • Really good answer +1 isn't enough. – Code Gorilla May 22 '18 at 11:57

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.