1. 通过串口发送指令控制继电器, 掉电记忆继电器状态,再次上电恢复继电器状态。
  2. 通过串口发送"open"打开继电器, 发送"close"关闭继电器 ,并把继电器状态写入mode.lua文件; 发送"rest"系统软件复位
  3. 测试通过串口发送"open"打开继电器后, 点击板子的复位按键, 系统复位, 松开后程序会获取断电前的继电器状态,恢复继电器状态

init.lua文件

RELAY_Stat = ""
RELAY_Pin = 1
gpio.mode(RELAY_Pin, gpio.OUTPUT)
if file.open("mode.lua", "r") thenRELAY_Stat = file.readline()print(RELAY_Stat)file.close()
end
if string.find(RELAY_Stat,"RELAY=1",1) thengpio.write(RELAY_Pin,1)
elseif string.find(RELAY_Stat,"RELAY=0",1) thengpio.write(RELAY_Pin,0)
end
tmr.alarm(0,4000,0,function() dofile("file.lua")
end)

file.lua文件

UartReceCnt = 0
UartReceTempCnt = 0
UartReceData = ""
uart.on("data",0,function(data) UartReceData = UartReceData..data UartReceCnt = UartReceCnt + 1
end,0)
tmr.alarm(1,10,1,function()if UartReceCnt ~= 0 then if UartReceTempCnt == UartReceCnt then  UartReceCnt = 0UartReceTempCnt = 0 if UartReceData == "open" then  gpio.write(RELAY_Pin,1)if  file.open("mode.lua", "w+") thenfile.writeline("RELAY=1")file.flush()elseprint("open mode.lua faild") endfile.close()elseif UartReceData == "close" thengpio.write(RELAY_Pin,0)  if  file.open("mode.lua", "w+") thenfile.writeline("RELAY=0")file.flush()elseprint("open mode.lua faild") endfile.close()elseif UartReceData == "rest" thennode.restart()enduart.write(0,UartReceData) UartReceData = ""  UartReceCnt = 0elseUartReceTempCnt = UartReceCnt  endend
end)

演示视频:https://v.youku.com/v_show/id_XMzkxMTAyOTI0MA==.html?spm=a2h0j.11185381.listitem_page1.5~A

ESP8266学习之路 十二 (读写文件)相关推荐

  1. Python基础学习笔记(十二)文件和目录

    文章目录 一.文件目录的基本操作 1. 创建文件--mknod()方法和open()方法 2. 创建目录--mkdir()方法 3. 删除目录和文件--rmdir()方法和remove()方法 4. ...

  2. 嵌入式学习之路(二十)——数据结构(2)

    嵌入式学习之路(二十)--数据结构(2) 上次我们讲了排序的四个基本的算法,今天我们先来讲讲数据结构 一.什么是数据结构 是指相互之间具有一定联系的数据元素的集合. 元素之间的相互联系称为逻辑结构. ...

  3. Go语言学习之路(二)

    Go语言学习之路(二) 面对对象编程思想 抽象 封装 继承 接口 文件 命令行参数 Json 序列化 反序列化(unmarshal) 单元测试 Redis Redis简介 Redis基本使用 Go连接 ...

  4. c语言压缩文本文件北京理工大学,北京理工大学C语言程序设计第十二章文件.ppt...

    北京理工大学C语言程序设计第十二章文件 2000年1月25日 北京理工大学 / 第十二章 文件 第一节 文件概述 第二节 文件的处理 第三节 文件的顺序读写操作 第四节 文件的随机读写操作 第五节 文 ...

  5. JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    JavaWeb学习总结(五十二)--使用JavaMail创建邮件和发送邮件 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两 ...

  6. Windows保护模式学习笔记(十二)—— 控制寄存器

    Windows保护模式学习笔记(十二)-- 控制寄存器 控制寄存器 Cr0寄存器 Cr2寄存器 Cr4寄存器 控制寄存器 描述: 控制寄存器有五个,分别是:Cr0 Cr1 Cr2 Cr3 Cr4 Cr ...

  7. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  8. Windows Workflow HOL学习笔记(十二):创建状态基工作流

    W indows Workflow HOL学习笔记(十二):创建状态基工作流 本文内容来自Microsoft Hands-on Labs for Windows Workflow Foundation ...

  9. ElasticSearch (ES)学习之路(二)Win10安装ES,可视化界面,Kibanna

    ElasticSearch (ES)学习之路(二)Win10安装ES,可视化界面,Kibanna 我前一段时间学习的时候ES 还是7.6.x 现在看ES 官网已经到了7.8.X了,迭代维护的速度还是挺 ...

最新文章

  1. python闭包锁住女神的心
  2. 一元多项式的乘法与加法运算_行测数学运算之速算与技巧
  3. php如何从左往右轮播,js实现从左向右滑动式轮播图效果
  4. Python-jsonpath使用和json转换
  5. Delphi与Windows 7下的用户账户控制(UAC)机制
  6. 算法导论——排序算法
  7. linux-安装-MySQL
  8. 执行容器内的shell_你的Docker容器可能充满了Graboid加密蠕虫
  9. 网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、VXLAN
  10. 存储器基本概念及分类介绍
  11. axis2 异常OMElement
  12. 调音台、声卡、视频采集卡技术参数
  13. 爬虫获取页面信息并存储
  14. IOS - 怎么辨别苹果手机的数据线是否原装?
  15. 《响应式网页设计》系列分享专栏
  16. 年薪6万美元/应届医学博士赴加州大学圣迭戈分校博士后就职
  17. 【算法】分治策略:芯片测试
  18. 新一代网状网协议T-Mesh无线通信技术优势介绍
  19. vue2.0_在vue中实现input输入框的模糊查询
  20. Remoting学习

热门文章

  1. sql语句,如何找出重复的数据
  2. final 关键字:用来修饰类,方法,成员变量,局部变量
  3. 【Linux】VMware使用 - 虚拟机克隆
  4. Javascript特效:音乐钢琴
  5. 四、Scala从入门到精通一一循环控制
  6. JVM 报 GC Overhead limit exceeded 是什么意思?
  7. c#dataview遍历_[C#] DataView用法
  8. unity 谷歌广告介入_Unity为开发人员发布Google广告
  9. 计算机键盘分为哪几个键区,标准键盘一般分为哪四个键区
  10. java jdbc 是什么意思_java中的jdbc是什么,