https://cloud.tencent.com/developer/article/1185631
基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-18540610442.6.36a74814ZSaRsu&id=569295486025
这一节为教程最终版功能演示,现在不必深究,早晚自己全部都会实现的(静静的跟着我学哈)
这一节学习远程升级自己的程序
如果要远程升级自己的程序,需要自己下载底层的升级程序,因为需要修改一些参数,让模块远程访问自己
的升级软件
如果前面下载了,可以用下面的方式清除程序
如果这种方式清除不了,可以
现在打开远程升级软件
修改些东西,因为自己这个软件既可以升级WIFI也可以升级GPRS,所以需要做对应的修改
好现在下进去程序
我给大家准备了一个测试的程序(其实就是自己云端默认的程序,上上姐默认远程下载的程序)
local RelayNowState=0
local RelayNowStateCopy=0
globalSendData ="nil";
local UsartReceiveData="";
local UsartReceiveDataCnt=0;
local UsartReceiveDataCntCopy=0;
RelayPin = 2;
if file.open("switch.lua", "r") then
if file.read() == "relay=1" then
gpio.write(RelayPin,1)
gpio.mode(RelayPin,gpio.OUTPUT)
print("relay=1")
else
gpio.write(RelayPin,0)
gpio.mode(RelayPin,gpio.OUTPUT)
print("relay=0")
end
file.close();
end
local DataDisposeTimerCnt = 0;
local DataDisposeTimer = tmr.create()
DataDisposeTimer:register(10, 1, function()
RelayNowState = gpio.read(RelayPin)
if RelayNowState ~= RelayNowStateCopy then
RelayNowStateCopy = RelayNowState
globalSendData = "switch;relay="..RelayNowState
end
if UsartReceiveDataCnt ~= 0 then
DataDisposeTimerCnt=DataDisposeTimerCnt + 1;
if DataDisposeTimerCnt>=10 then
UsartReceiveDataCnt = 0;
DataDisposeTimerCnt=0;
globalSendData = UsartReceiveData;
UsartReceiveData="";
end
end
if Mymqtt ~= nil and MqttConnectedFlage == true then
if globalSendData ~= "nil" then
Mymqtt:publish(PublishTopic,globalSendData, 0, 0, function(client)
end)
globalSendData = "nil"
end
end
end)
DataDisposeTimer:start()
function MqttDisposeMethod(client, topic, data)
uart.write(0,data)
list = split(data, ';')
if string.find(list[1],"switch") ~= nil then
if list[2] ~= nil then
if file.open(list[1]..".lua", "w+") then
file.write(list[2])
file.close()
end
if list[2] == "relay=0" then
gpio.write(RelayPin,0)
gpio.mode(RelayPin,gpio.OUTPUT)
elseif list[2] == "relay=1" then
gpio.write(RelayPin,1)
gpio.mode(RelayPin,gpio.OUTPUT)
end
globalSendData = data;
end
elseif string.find(list[1],"query") then
if list[2] ~= nil then
if list[2] == "switch" then
RelayNowState = gpio.read(RelayPin)
globalSendData = "switch;relay="..RelayNowState
end
end
end
end
--[[
uart.setup(0, 115200, 8, uart.PARITY_NONE, uart.STOPBITS_1)
uart.on("data",0,function(data)
UsartReceiveData = UsartReceiveData..data;
UsartReceiveDataCnt = UsartReceiveDataCnt + 1;
DataDisposeTimerCnt = 0;
end, 0)]]
为了测试明显,咱修改个地方,用手机APP直接远程控制
这个灯
好了现在远程下载
可以用手机也可以直接用软件
更新完成后
现在用手机再控制试一试
现在用手机再试一试更新程序(需要更改个地方,因为是为了方便所有人,为了避免更新冲突)
根据自己的修改哈
好现在用手机去更新程序
更新完
可以自己再试一试切换,或者试一试清除所有文件
以后几节就要开始真正的学习啦!!!勤快点哈