标题: ESP8266 lua开发 GPIO操作详解 [打印本页]

作者: 沙漠之痕    时间: 2018-11-5 12:51
标题: ESP8266 lua开发 GPIO操作详解
本帖最后由 沙漠之痕 于 2018-11-7 12:40 编辑

打开开发工具,前面已经介绍如何安装,创建桌面快捷方式,在桌面打开如图所示软件图标(我的是win10系统,不清楚在其他系统下是什么样子的)

烧写固件成功后,就可以编写自己的lua程序进行测试了...
首先正确连接串口模块与wifi控制器;串口模块的RX接我wifi控制器的TX;
串口模块的TXwifi控制器的RX;串口模块的5Vwifi控制器的5V
串口模块的GNDwifi控制器的GND
烧写完固件后打开开发工具ESPlorer.jar , 连接好串口,在开发工具中正确打开连接wifi控制器的串口, 按下wifi控制器上的复位按钮开发工具上会提示Formatting file system. Please wait...   此时只有等待....
当开发工具上的串口打印信息再次提示”lua: cannot open init.lua” , wifi模块可以正常的下载lua程序


通过提示信息可知Wifi模块默认的lua文件是init.lua 所以单文件只有一个init.lua文件操作GPIO
下面创建一个init.lua文件






首先看下怎么使用print()在串口打印信息;
Init.lua文件:
        print("hello 8266")
Init.lua文件结束



我们还可以使用另一种方式打印信息:
init.lua文件:
str = "hello 8266"
print(str)
init.lua文件结束



下面开始写控制继电器的程序:
控制继电器吸合,并通过串口打印”relay open”
init.lua 文件
gpio.mode(1, gpio.OUTPUT)
gpio.write(1, 1)   
print("relay open")
init.lua 文件结束



为什么要使用gpio.write(1,1),控制继电器不是GPIO5? 因为模块是通过IO索引号查找GPIO的对应关系如下图:


那么我使用一个变量存储这个IO索引号, 修改GPIO时只需要改这个变量就可以了;同理继电器状态是不是也可以使用一个变量保存
我们试着去关闭继电器通过指示灯和串口打印查看:
init.lua文件:
relay = 1
RelayStat = "relay close"
gpio.mode(relay, gpio.OUTPUT)
gpio.write(relay, 0)   
print(RelayStat )
init.lua文件结束
我们同样创建一个空白文档,命名为init.lua


Esp8266控制GPIO的函数操作文档参考: nodemcureadthedocsio/en/master/en/modules/gpio/#gpiomode

这里我们使用GPIO的输出模式控制继电器

通过原理图可知控制继电器需要相应的GPIO输出输出高电平;这里的gpio.HIGH就是1;也就是设置输出高电平

GPIO操作(单文件).zip (1.08 KB, 下载次数: 51)

交流QQ:  1813763867
QQ群:455163546



作者: 会飞的狼    时间: 2019-10-8 00:22
很详细,非常感谢,适合入门
作者: small_tiger09    时间: 2019-10-22 22:31
非常详细,感谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1