物联网-万物互联
由于项目比较匆忙,刚开始支配的物联网采集模块没有实现自动升级的功能,后面须要升级固件非常未便利。以是考虑增加OTA远程升级功能,特写下本文记录一下干系实现过程。
OTA简介OTA:Over The Air,空中下载的意思详细指远程无线办法,OTA 技能是一种远程无线固件升级技能,通过支配云端OTA平台为具有连网功能的设备供应固件升级做事。
OTA升级流程
大略OTA升级流程
上图我们大略描述了下OTA的升级流程,首先制作升级包(可以是增量升级包、全量升级包),然后上传OTA平台,终端要求升级(主动要求、或者做事器推送升级),主动要求升级则须要携带干系参数(如模块唯一识别码IMEI、终端当前版本),OTA收到升级要求后可以根据IMEI等信息判断要求是否合法,根据当前版本号跟最新上传的OTA升级版本比较是否须要升级,如果须要升级则可以返回OTA升级包(文件流、或者升级包地址),然后终端收到升级包再进行下一步的处理。
OTA私有平台搭建OTA平台可以是自建私有平台、或者利用阿里等公有云OTA平台,OTA平台功能实在挺大略,至少包括以下几点:1. 升级包管理,包括升级包上传以及下载日志等。2. 项目管理,每个升级包对应不同的项目硬件固件,防止不同项目固件升级包稠浊。3. 对外升级暴露做事,相应要求升级要求。
我们可以自己利用JAVA、.NET、PHP等措辞自己实现一个大略的OTA升级平台,当然为了方便省事,我们可以从github或者gitee下载开源的版本自己支配就可以了,比如gitee上的nutz-book-project看了下功能比较符合我们的哀求,我们在gitee高下载nutz-book-project源码编译,利用maven打包后启动java -jar 启动打包的jar文件即可.
开源OTA平台
固件端增加升级功能固件程序开机时增加升级检测逻辑,增加下行升级指令的相应。朋友利用的模块编程措辞是C措辞,然后他说到现在的开拓板很方便了,可以利用lua脚本措辞。网上一搜索创造蛮多, 支持lua的wifi模块价格从10块起步,支持lua编写业务逻辑真是太方便了,准备买个开拓板来玩玩,再弄个甲醛传感器实时监控下家里的空气质量。下面是开拓板lua措辞的部分功能示例代码:
连接wifiwifi.setmode(wifi.STATION)wifi.sta.config("wifi ssid","wifi password")print(wifi.sta.getip())--成功得到ip192.168.0.3读取传感器数据t=require("ds18b20")t.setup(9) --串口IDaddrs=t.addrs()-- Total DS18B20 numbers, assume it is 2print(table.getn(addrs))print(t.read()) -- 读取数据http通讯conn=net.createConnection(net.TCP, false) conn:on("receive", function(conn, pl) print(pl) end)conn:connect(80,"ip")conn:send("发送数据")
本文由IT点滴原创,欢迎关注,带你一起长知识!