Skip to content

Lua scripting engine integrated in Arduino for ESP8266

License

Notifications You must be signed in to change notification settings

Groguard/ESP8266-Arduino-Lua

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Lua scripting engine integrated in Arduino for ESP8266

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 97.5%
  • C++ 2.5%