Noob’s Guide to Nextion Displays with ESP8266 | NodeMCU | WeMos D1 Mini

Software Serial support has been added. Now connect Nextion HMI display to any two pins of ESP8266. Check out our Github Repository (Link is available under “Downloads” section below) for modified Nextion library for ESP8266 (Tutorial work is in progress).

Nextion is a Seamless Human Machine Interface (HMI) solution that provides a control and visualization interface between a human and a process, machine, application or appliance. Nextion is mainly applied to IoT or consumer electronics field. It is the best solution to replace the traditional LCD and LED.

Nextion includes hardware part (A series of TFT boards) and software part (Nextion editor). The Nextion TFT board uses only one serial port to communicate. It lets you avoid the hassle of wiring. Nextion editor has mass components such as button, text, progress bar, slider, instrument panel etc. to enrich your interface design. And the drag-and-drop function ensures that you spend less time in programming, which will reduce 99% of your development workloads. With the help of this Nextion editor, designing a GUI is a piece of cake.

Interesting? So let’s make the working combination of Nextion and ESP8266, Just FOLLOW ME  😛

Hardware Needed:

Software Needed:

  • Arduino IDE with ESP8266 support
  • Nextion Example Sketch
  • Nextion Editor
  • Nextion library

All of the above mentioned software can be downloaded under “Downloads” section below.

Nextion Editor:

Nextion Editor is a Windows based drag and drop tool for creation Nextion GUI in real time, as you can see what you are building. Here is the fun begins, so let’s get started  😎 . Download Nextion Editor and install it. Follow the video tutorial for rest of demonstration. Download Nextion HMI file for current project from “Downloads” section below.


Arduino IDE:

Download Nextion Library (Link is under “Downloads” section below) and install it. Download .ino file for this tutorial under download section. If you are using your own sketch, use the baud rate of 9600 in “void setup” function i.e.   Serial.begin(9600); Follow the video for rest of the demonstration.

Connection Diagram:



Demonstration Video:

Youtube: A Noob’s Guide to Nextion Displays

17 thoughts on “Noob’s Guide to Nextion Displays with ESP8266 | NodeMCU | WeMos D1 Mini

  1. fabio says:

    hello friend,
    great tutorial!
    Could you write code for nextion display enhanced and arduino controller for me?
    I have an existing project to modify


    I would help to adapt it to my use.
    Hope you can thanks, Fabio


    assalamualaikum ahmed..
    nice tutorial from you. everything completed.
    if you dont mind, can u share the node flows code?
    Really interested to know so that i can simulate all those thing as a completed tutorial/example.

    thanks n regards

    • Waqas Ahmed says:

      Waleikum Salam. Thank you so much for appreciating us. We are using our ESPMetRED Library for communicating Node Red and ESP8266. There are simple MQTT IN and MQTT OUT Nodes involve in this whole back and forth communication. Being an old article, We cannot assure you providing the Nodered flow, however, We’ll try our best to provide a more clean tutorial in our blog as soon as possible. Just stay tuned.

  3. Naveen Shetty says:

    Hi Ahmed,
    A query , you have put a link for Nextion library here, but there is another linked termed as Nextion-master ; which of these would work with nodemcu 1.0 .
    Also can we connect the tx , rx of nextion with rx,tx of nodemcu which is gpio3 and gpio1 as compared to yours as you are using a software serial.
    can i connection without level shifter to gpio3 and gpio1 if using hardware serial.
    can i connection without level shifter to gpio5 and gpio4 if using software serial.

    • Waqas Ahmed says:

      Hello Naveen,
      I have corrected the link for downloading library. Library at our github repository is the new one in which we have added support for software serial. It is a modified version of original Itead Studio Library with ESP8266 support included in it.
      Nextion displays are of 5v logic and ESP8266 or Nodemcu (A development board of ESP8266) pins have 3.3v logic. RX and TX pins are not tolerant to 5v. However, all other pins have tolerance to 5v up to some extent. A logic shifter is compulsory otherwise, your ESP8266 will be destroyed after sometime.

  4. Bob Cohen says:

    Good afternoon gentlemen, Thank you for you nextion library adjusted to be used with NodeMCU. All looks fine but there’s no .cpp or .h code for Dual State Buttons. I’ve been using the original itead version on a Mega with great success but when I use your library the DS Button code is missing. I copied the code across from the original itead library but still problems …error: ‘NexDSButton’ does not name a type. Just wondering if this should work (Ie just copying DS Button across or am I missing something? Would a solution be, to use the original itead library with your NexHardware.h and the .cpp copied across to the original folder. Thanks

    • Waqas Ahmed says:

      Hello Bob, We are pleased to know that our mod was helpful for you. Actually Nextion Library (modified by us) has not been updated for quite a while and any new features added to original Nextion Library may not been added yet. I cannot provide you with exact timeline for all these new features addition in our modified library but it will be covered soon.

  5. virendra says:

    i tried your setup it up as instructed on a nodemcu 1.0 and nextion screen.. and got the below compile error pls help..

    C:\Users\Ginger Brown Design\Documents\Arduino\libraries\Nextion-master\NexHardware.cpp:18:25: error: conflicting declaration ‘SoftwareSerial Serial’

    SoftwareSerial nexSerial(5, 4); // TXblue, RXyellow


    In file included from C:\Users\Ginger Brown Design\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/Arduino.h:260:0,

    from C:\Users\Ginger Brown Design\Documents\Arduino\libraries\Nextion-master\NexHardware.h:17,

    from C:\Users\Ginger Brown Design\Documents\Arduino\libraries\Nextion-master\NexHardware.cpp:15:

    C:\Users\Ginger Brown Design\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/HardwareSerial.h:146:23: error: ‘Serial’ has a previous declaration as ‘HardwareSerial Serial’

    extern HardwareSerial Serial;

    • Waqas Ahmed says:

      There seems problem with software serial library. Which Nextion library are you using? Original one or modified by us?

Leave a Reply

Your email address will not be published. Required fields are marked *

For better user experience, please clear your browser cookies and cache at least for once. Dismiss