ESP8266基于Lua开发点灯示例
- ✨基于
ESPlorer IDE
:https://github.com/4refr0nt/ESPlorer/releases
- 🔧固件烧录工具:
NodeMCU-PyFlasher
- 🌿esp8266烧录工具下载:
https://github.com/marcelstoer/nodemcu-pyflasher/releases/tag/v5.0.0
注意事项
- ✨运行
ESPlorer IDE
是基于安装了JDK环境。
🛠在线生成固件
- 📍固件生成网址:
https://nodemcu-build.com/
- 🌿根据需求选择对应的组件:(这个和合宙的Lua云编译类似)
- 🔖提交后,一般1-3分钟就可以完成云编译。
- 🌿会生成两个版本的固件:一个整数型的和一个浮点型的。(针对代码中的表达式能否使用浮点型数)
- 🌿使用
NodeMCU-PyFlasher
工具进行烧录
ESPlorer IDE使用
-
🌿运行
ESPlorer
-
🌿esp8266连接电脑上,打开对应的串口号。
-
🌿Lua ESP8266引脚定义
-- GPIO0
gpio0 = 3
-- GPIO2
gpio2 = 4
-- GPIO4
gpio4 = 2
-- GPIO5
gpio5 = 1
-- GPIO9
gpio9 = 11
-- GPIO10
gpio10 = 12
-- GPIO12
gpio12 = 6
-- GPIO13
gpio13 = 7
-- GPIO14
gpio14 = 5
-- GPIO15
gpio15 = 8
📝点灯程序
- ⚡需要注意的是这里的4号引脚对应的esp8266上面的
GPIO2
,也就是nodemcu
上面的板子led灯。延时函数形参单位是微秒。
-- 设置D2为输出模式
pin = 4
gpio.mode(pin, gpio.OUTPUT,gpio.PULLUP)
-- 定义循环函数
local function blink()
while true do
gpio.write(pin, gpio.HIGH)
tmr.delay(200000)
gpio.write(pin, gpio.LOW)
tmr.delay(200000)
end
end
-- 开始循环
blink()
- 📝状态翻转
-- 设置GPIO2为输出
gpio.mode(4, gpio.OUTPUT)
-- 闪烁函数
function blink()
if gpio.read(4) == gpio.LOW then
gpio.write(4, gpio.HIGH)
else
gpio.write(4, gpio.LOW)
end
end
-- 每隔1秒翻转一次
local Ticker_timer = tmr.create()
Ticker_timer:alarm(1000, tmr.ALARM_AUTO, function()
blink()
end)
- 📋利用定时器控制led闪烁程序
-- 设置D2为输出
gpio.mode(4, gpio.OUTPUT)
-- 闪烁函数
function blink()
if gpio.read(4) == gpio.LOW then
gpio.write(4, gpio.HIGH)
else
gpio.write(4, gpio.LOW)
end
end
if not tmr.create():alarm(1000, tmr.ALARM_AUTO, function()
print("hey there")
blink()
end)
then
print("whoopsie")
blink()
end
- 🔰如果想让程序,一上电就自动运行,那么需要将程序名改为
init.lua
保存到esp8266内部即可实现通电自动开始从init.lua
运行。