前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(项目功能演示--远程升级WIFI模块程序)2-STM32物联网开发WIFI(ESP8266)+GPRS(Ai

3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(项目功能演示--远程升级WIFI模块程序)2-STM32物联网开发WIFI(ESP8266)+GPRS(Ai

作者头像
杨奉武
发布2019-03-04 10:27:06
8890
发布2019-03-04 10:27:06
举报
文章被收录于专栏:知识分享

为了节省时间,基础篇的基础内容不再叙述 ,固件还是基础篇的固件

这一节演示一下远程升级WIFI模块程序,今天我又把上位机和底层程序优化了下,主要是根据做项目的时候别人提的问题优化的.

咱先看用上位机升级,用APP告诉模块升级还没来得及搞......

一,打开远程更新的上位机( 咱先升级某一个型号的设备)

一,修改和下载8266程序

把程序下载到自己的WIFI模块里面

按照基础篇的让WIFI模块连接上路由器

2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案基础篇(项目功能演示--Wi-Fi )

 现在咱升级一下(还是升级Aupdata1里面的内容)

 实质上是内部建了一个Bupdata1~7的文件,因为上位机选择的第一个,所以Bupdata1里面的内容就是刚才Aupdata1文件里面的内容,Bupdata6~7都是空的

咱现在新建一个文件,把原来的Aupdata1文件内容copy到这个文件并修改一下修,让它每隔一段时间打印"yang",就是显得明显一点,确确实实更新了

 当然也可以手动返回到上次的程序

代码语言:javascript
复制
yang
yang
yang
yang
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
yang
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
yang
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
PubilcTimerState=5
yang
PubilcTimerState=5
startsmart
PubilcTimerState=1
connect offline
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
yang
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
yang
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
yang
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
yang
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
yang
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
PubilcTimerState=1
yang
PubilcTimerState=1
change run:B   //////////////////////////////////////看这里
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
yang
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
yang
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
PubilcTimerState=3
yang

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 27564, room 16 
tail 12
chksum 0xd2
ho 0 tail 12 room 4
load 0x3ffe8000, len 2232, room 12 
tail 12
chksum 0x0b
ho 0 tail 12 room 4
load 0x3ffe88b8, len 136, room 12 
tail 12
chksum 0x68
csum 0x68
 

NodeMCU 2.2.0.0 build 20180725 powered by Lua 5.1.4 on SDK 2.2.1(cfd48f3)
run:Bfile    //////////////////////////////////////////切换了
Program version:0
MAC: dc:4f:22:10:bc:0a
> 192.168.10.119    255.255.255.0    192.168.10.1
connect mqtt
connected
subscribe success
subscribe success

不打印yang了 

 现在咱升级某一个设备

如果大家不想走我的MQTT服务器,大家修改为自己的就可以

我这个升级程序,最根本的就是WIFI向上位机发送

request1_1,request1_2,request1_3,request1_4,request1_5,request1_6,request1_7,request1_8

request2_1,....request2_8

request3_1,....request3_8

request4_1,....request4_8

request5_1,....request5_8

request6_1,....request6_8

request7_1,....request7_8

请求了56次数据,因为总共7个文件,我把每个文件都分成了8份

每一个文件的大小不能超过 8*800 = 6400个字节,因为我发现切割成800字节左右发送最稳定

7个文件就是 6400*7 =   44800个字节,对于网络模块应该足够用了,其实再多没有很大意义了

因为8266会报内存不足......

 下面主要的程序

代码语言:javascript
复制
    elseif topic == SubscribeUP then
        file.write(data)
        if OpenUpdataCnt == 8 then
           OpenUpdataCnt = 0
           OpenUpdataValue = OpenUpdataValue + 1;
           if OpenUpdataValue == 8 then
              file.close()
              client:publish(PublishUP,"UpdataOK", 0, 0, 
              function(client)
                dofile(ABUpdataFileCopy.."updata1.lua")
                dofile(ABUpdataFileCopy.."updata2.lua")
                dofile(ABUpdataFileCopy.."updata3.lua")
                dofile(ABUpdataFileCopy.."updata4.lua")
                dofile(ABUpdataFileCopy.."updata5.lua")
                dofile(ABUpdataFileCopy.."updata6.lua")
                dofile(ABUpdataFileCopy.."updata7.lua")
                UpdataTime:stop()
                if  file.open("ABUpdataFile.lua", "w+") then
                    file.write(ABUpdataFileCopy)
                    file.close() 
                end

                if  file.open("version.lua", "w+") then
                    file.write(versionCopy)
                    file.close() 
                end
                client:publish(PublishUP,"UpdataOKOK", 0, 0, function(client) node.restart(); end) 
                UpdataTime:interval(3000)
                UpdataTime:start();
              end) 
           else
              file.close()
              file.open(ABUpdataFileCopy.."updata"..OpenUpdataValue..".lua", "w+")   
           end
        end
        if OpenUpdataValue ~= 8 then
           OpenUpdataCnt = OpenUpdataCnt + 1;
           client:publish(PublishUP,"request"..OpenUpdataValue.."_"..OpenUpdataCnt, 0, 0, function(client)end)  
        end
        print("updata...."..OpenUpdataCnt)

停两天接着写上用APP升级WIFI模块的说明,还有升级GPRS,还有后期的升级STM32等等,让大家感觉感觉我做的这个升级功能怎么样

做这个升级的目的主要还是方便大家,我不喜欢循规蹈矩的,我喜欢灵活的运用知识,我也从来不嫌麻烦,只是有点累,累了就睡,然后醒了接着弄......然后就这样循环

这个升级规划了一个星期,然后又用了一个星期写代码,不知道累死了多少脑细胞......

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-02-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案基础篇(项目功能演示--Wi-Fi )
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档