/ESP8266-Arduino-Lua

Lua scripting engine integrated in Arduino for ESP8266

Primary LanguageCGNU General Public License v3.0GPL-3.0

ESP8266/ESP32 Arduino Lua

This Arduino library provides the lua 5.3.4 scripting engine for ESP8266/ESP32 sketches. This allows dynamic execution of code on Arduino without having to compile and flash a new firmware. As an example, the following standard Arduino functions are available in lua scripts as bindings:

  • pinMode()
  • digitalWrite()
  • delay()
  • millis()
  • print() which redirects to Serial.println()

Installation into the Arduino IDE

Download the content of this Github repository as a ZIP archive by clicking on Clone or download then Download ZIP. Follow the instructions on installing additional Arduino libraries and navigate to the file downloaded previously.

Arduino sketch examples

After installing the library, some sketch examples are available from the File menu, then Examples and finally under ESP8266-Arduino-Lua. The examples include ExecuteScriptFromSerial which takes a lua script from the serial line and executes it:

# Enter the lua script and press Control-D when finished:
print("My first test!")
# Executing script:
My first test!


# Enter the lua script and press Control-D when finished:
print("Current uptime: "..millis())
# Executing script:
Current uptime: 159926.0

Lua script examples

The lua language syntax is described in the reference manual. It is extended by the Arduino functions listed above.

Hello world

print("Hello world!")

Blinking LED

pinLED = 2
period = 500
pinMode(pinLED, OUTPUT)
while(true)
do
  print("LED on")
  digitalWrite(pinLED, LOW)
  delay(period)
  print("LED off")
  digitalWrite(pinLED, HIGH)
  delay(period)
end