mirror of
https://git.mirrors.martin98.com/https://github.com/luc-github/ESP3D.git
synced 2025-06-06 02:36:49 +08:00
57 lines
1.7 KiB
Markdown
57 lines
1.7 KiB
Markdown
# ESP8266/ESP32 Arduino Lua
|
|
|
|
This Arduino library provides the [lua](https://www.lua.org/) 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](https://www.arduino.cc/en/Guide/Libraries#toc4) 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](https://www.lua.org/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
|
|
```
|