码迷,mamicode.com
首页 > 其他好文 > 详细

11-开发板接入小五物联实现远程控制(Wi-Fi模块,远程升级自己的程序)

时间:2018-08-03 16:43:45      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:cli   远程访问   app   size   connect   time   amp   setup   pre   

https://www.cnblogs.com/yangfengwu/p/9411134.html

 

基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢

 

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)]]
View Code

为了测试明显,咱修改个地方,用手机APP直接远程控制

这个灯

技术分享图片

技术分享图片

技术分享图片

 

 好了现在远程下载

技术分享图片

 

 可以用手机也可以直接用软件

技术分享图片

 

技术分享图片

 更新完成后

 技术分享图片

现在用手机再控制试一试

技术分享图片  技术分享图片

 

 

技术分享图片  技术分享图片

 

 

现在用手机再试一试更新程序(需要更改个地方,因为是为了方便所有人,为了避免更新冲突)

技术分享图片

 

 技术分享图片   

 

根据自己的修改哈

技术分享图片

 

 技术分享图片

好现在用手机去更新程序

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 更新完

技术分享图片

 

 可以自己再试一试切换,或者试一试清除所有文件

技术分享图片

 

以后几节就要开始真正的学习啦!!!勤快点哈

11-开发板接入小五物联实现远程控制(Wi-Fi模块,远程升级自己的程序)

标签:cli   远程访问   app   size   connect   time   amp   setup   pre   

原文地址:https://www.cnblogs.com/yangfengwu/p/9414119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!