智宇物联 专注于提供高稳定、高速率的三网物联网卡

自己动手搭建物联网模块OTA升级平台

  • 作者:佚名
  • 发表时间:2022年10月16日下午9:00
  • 来源:未知

最近朋友在弄一个公厕所空气质量检测项目,买了物联网通讯芯片,采集空气传感器数据通过通讯芯片上传到服务器,实现空气质量检测分析以及清扫建议等功能。

自己动手搭建物联网模块OTA升级平台

物联网-万物互联

由于项目比较匆忙,刚开始部署的物联网采集模块没有实现自动升级的功能,后面需要升级固件非常不方便。所以考虑增加OTA远程升级功能,特写下本文记录一下相关实现过程。

OTA简介

OTA:Over The Air,空中下载的意思具体指远程无线方式,OTA 技术是一种远程无线固件升级技术,通过部署云端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升级平台

开源OTA平台

固件端增加升级功能
固件程序开机时增加升级检测逻辑,增加下行升级指令的响应。朋友使用的模块编程语言是C语言,然后他说到现在的开发板很方便了,可以使用lua脚本语言。网上一搜索发现蛮多, 支持lua的wifi模块价格从10块起步,支持lua编写业务逻辑真是太方便了,准备买个开发板来玩玩,再弄个甲醛传感器实时监控下家里的空气质量。下面是开发板lua语言的部分功能示例代码:

连接wifi
wifi.setmode(wifi.STATION)
wifi.sta.config("wifi ssid","wifi password")
print(wifi.sta.getip())
--成功得到ip192.168.0.3

读取传感器数据
t=require("ds18b20")
t.setup(9) --串口ID
addrs=t.addrs()
-- Total DS18B20 numbers, assume it is 2
print(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点滴原创,欢迎关注,带你一起长知识!

最新资讯
最热资讯