找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9300|回复: 2
打印 上一主题 下一主题
收起左侧

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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:189454 发表于 2019-10-8 00:22 | 只看该作者
很详细,非常感谢,适合入门
回复

使用道具 举报

板凳
ID:111843 发表于 2019-10-22 22:31 | 只看该作者
非常详细,感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表