ESP32 NodeMCU Module – Basic UART, Timer

ESP8266 and ESP32 NodeMCU Lua Module functions are different. So we can’t use ESP8266 fuctions directly in ESP32 Check the Official Documentation of NodeMCU Lua for ESP32

Hello World :

Connecting to ESP8266 and ESPlorer IDE

Set Baud rate: 115200.

UART Write


Timer Module


  • Create timer alarm based objects,
  • Register and unregistered any timer.
  • Check the state (Status) of the timer while running,
  • Can change the timer interval while running.

Not have the following Features

  • Timer Interval functions,
  • Watch dog Timer functions.


  • tmr.create()                 – Creates a dynamic timer object.
  • tmr.obj:alarm()            – This is a convenience function combining tmr.
  • tmr.obj:interval()      – Changes a registered timer’s expiry interval.
  • tmr.obj:register()      – Configures a timer and registers the callback function to call on expiry.
  • tmr.obj:start()           – Starts or restarts a previously configured timer.
  • tmr.obj:state()           – Checks the state of a timer.
  • tmr.obj:stop()             – Stops a running timer, but does not unregister it.
  • tmr.obj:unregister()  – Stops the timer (if running) and unregisters the associated callback.

Ex : Create a timer alarm for every 2 second

Create a alarm for every 2 seconds once print some strings like “” and automatically repeat.

  • Create a timer alarm object  name “ArunEworld_timer” using tmr.create() function.
  • Configures a timer and registers the callback function to call on expiry. using tmr.obj:register()  function.
  • Starts or restarts a previously configured timer using tmr.obj:start() function.



Ex : Change the timer interval time

  • You can change the timer interval for running timer alarm using the function tmr.obj:interval()
  • The above example code sets 2 seconds now change to 3 Seconds Ex : ArunEworld_timer.interval(3000)
  • This functions is very use full for running time we can change the timer interval value directly.

Ex : Check the Timer Current state

  • Check the current state of the timer..(timer may running or stop.)
  • Checks the state of a timer using function  tmr.obj:state()




Node Module

  • node.bootreason()     – Returns the boot reason and extended reset info.
  • node.chipid()            – Returns the ESP chip ID.
  • node.compile()          – Compiles a Lua text file into Lua bytecode, and saves it as .
  • node.dsleep()            – Enters deep sleep mode, wakes up when timed out.
  • node.flashid()          – Returns the flash chip ID.
  • node.heap()               – Returns the current available heap size in bytes.
  •               – Returns NodeMCU version, chipid, flashid, flash size, flash mode, flash speed.
  • node.input()             – Submits a string to the Lua interpreter.
  • node.key()                –deprecated Defines action to take on button press (on the old devkit 0.
  • node.led()                 –deprecated Sets the on/off time for the LED (on the old devkit 0.
  • node.output()            – Redirects the Lua interpreter output to a callback function.
  • node.readvdd33()      –deprecated Moved to adc.
  • node.restart()          – Restarts the chip.
  • node.restore()          – Restores system configuration to defaults using the SDK function system_restore(), which doesn’t document precisely what it erases/restores.
  • node.setcpufreq()    – Change the working CPU Frequency.
  • node.stripdebug()    – Controls the amount of debug information kept during node.
  • node.osprint()         – Controls whether the debugging output from the Espressif SDK is printed.
  • node.egc.setmode() – Sets the Emergency Garbage Collector mode.
  •     – Enable a Lua callback or task to post another task request.

Ex : node.heap()

Ex : node.chipid()

GPIO Module


  • gpio.config()  Configure GPIO mode for one or more pins.
  •  Read digital GPIO pin value.
  • gpio.trig()  Establish or clear a callback function to run on interrupt for a GPIO.
  • gpio.wakeup()  Configuring wake-from-sleep-on-GPIO-level.
  • gpio.write()  Set digital GPIO pin value.

Ex : Set pin as Input, Output and Read

  • GPIO-23 as LED output and GPIO-0 as Button input
  • But this example used while loop in Lua.
  • Set the GPIO-23 pin as output and GPIO-0 pins input (GPIO-0 usually connected to flash button in dev board) using function gpio.config()
  • check the GPIO-0 pin stat using function  and set and clear the pin GPIO-23 using function gpio.write()




Ex : GPIO pin interrupt based print message serial

  • Set GPIO-0 pins as interrupt using function  gpio.trig()
  • if interrupt rise call the another function and print ArunEworld  in serial




Next :

Previous :


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

if you have any queries call us +918300026060 or WhatsApp Dismiss


Your Cart

%d bloggers like this: