第1章云平台以及终端产品介绍

Luat云平台,基于阿里物联云。

1.1 产品总体架构

yun

按照目前的功能定义,支持如下三类功能

  1. 固件升级

  2. 基站查询经纬度

  3. 云平台管理

按照目前的产品定义,终端设备划分为两类产品:

  1. 基础功能产品(支持“固件升级”+“基站查询经纬度”功能)

  2. 用户定制化产品(支持“固件升级”+“基站查询经纬度”+“云平台管理”功能)

1.2 基础功能产品

基础功能产品可以使用“固件升级”+“基站查询经纬度”功能

yun2

yun3

1.3用户定制化产品

用户定制化产品可以使用“固件升级”+“基站查询经纬度”+“云平台管理”功能

yun4

yun5

yun6

第2章固件升级功能使用说明

2.1 注册账号(云平台)[如果有账号,则跳过本步]

打开https://iot.openluat.com,进行注册

2.2 创建新项目(云平台)[如果有项目,则跳过本步]

  1. 打开https://iot.openluat.com,登陆账号

  2. 点击右上角的

yun7

yun8

2.3 获取项目的ProductKey(云平台)

  1. 打开https://iot.openluat.com,登陆账号

  2. 参考下图,点击进入项目

yun9

  1. 点击下图中的项目信息

    yun10

  2. 获取项目的ProductKey,即下图中的ProductKey

    yun11

2.4 修改终端代码(以update/Luat_iot_server为例)

2.4.1 修改代码支持升级功能

打开main.lua

参考前3行代码的注释,根据自己的需要修改PROJECT、VERSION、PRODUCT_KEY,PRODUCT_KEY的值就是在2.3章节获取到的ProductKey

yun12

根据自己的需要,配置“开机+定时+实时”升级功能

yun13

新的升级包中main.lua中的VERSION一定要比终端中的老版本号新,例如终端中当前的VERSION是1.0.0,新的升级包中的main.lua中的VERSION可以是1.0.1,也可以是1.0.2,只要比1.0.0新即可。

2.4.2 获取终端信息

在服务器配置升级的时候需要用到IMEI和固件名称。

  1. IMEI: IMEI:终端的IMEI,可以通过模块标签获得

  2. 固件名称:main.lua中的PROJECT_底层软件版本号,例如:

脚本main.lua中PROJECT=” LUAT_IOT_SERVER_UPDATE”,

固件版本是:Luat_V0010_Air200_SSL

则固件名称是:LUAT_IOT_SERVER_UPDATE_Luat_V0010_Air200_SSL

在trace中也可以抓取到IMEI和固件名称,方法如下:

把支持升级功能的软件烧写到终端后,终端开机,会自动连接升级后台,然后发送请求包到后台,在trace中搜索PROJECT的值,例如LUAT_IOT_SERVER_UPDATE,搜索结果如下:

yun14

其中:

IMEI:862991527973596

固件名称:LUAT_IOT_SERVER_UPDATE_Luat_V0010_Air200_SSL

后台的固件名称要跟模块上报的固件名称要一致,否则无法升级。

2.4.3 生成升级包

使用Luat下载调试工具生成升级包,使用教程参见生成升级包

2.5 配置固件升级项(云平台)

使用账号登陆https://iot.openluat.com,进入设备所属的项目,点击左边的固件升级->升级配置,如下图所示

yun18

在升级配置页面,点击yun19

yun20

确定保存之后,如下图所示:

yun21

此时固件升级文件已经配置好了,但是还不允许任何设备升级,接下来要配置允许升级的设备,有两种操作方式:

  1. 配置单个设备,点击上图中配置项右边的添加按钮,在弹出窗口输入允许升级的设备IMEI,如下图所示。

注:IMEI由模块包装获取,或由trace中获取。

yun22

添加后,点击配置项左边的yun24,下拉列表中会显示刚才输入的IMEI,如下图所示yun21

  1. 配置所有设备,在新建配置项时,有一个“是否全项目升级”,选择是即可;或者在已有的配置项,点击右边的编辑按钮,“是否全项目升级”修改为是

2.6 终端开机,执行升级动作(以update/Luat_iot_server为例)

运行1.0.0版本软件的终端(IMEI:862991527973596)开机,抓取TRACE,就可以观察整个升级过程,在trace中搜索LUAT_IOT_SERVER_UPDATE即可,如下图所示:

yun25

升级结束后,软件会自动重启,重启后,再搜索一下LUAT_IOT_SERVER_UPDATE

yun26

版本号(main.lua中的VERSION)变成了1.0.1。这样就表示升级成功了

升级失败错误码:

3 :无效的设备。找不到设备。

17:无权限。设备会上报imei、固件名、项目key。服务器会以此查出设备、固件、项目三条记录,如果这三者不在同一个用户名下,就会认为无权限

25:无效的项目

26:无效的固件

27:已经是最新版本。通过了前面的检查,但版本号已是最新,或没打开升级开关、没指定imei等。

2.7 日志和统计功能(云平台)

yun27

点击“固件升级”下面的“升级日志”和“升级统计”自行研究

第3章基站查询经纬度功能说明

3.1 注册账号(云平台)[参考2.1章节]

3.2 创建新项目(云平台)[参考2.2章节]

3.3 获取项目的ProductKey(云平台)[参考2.3章节]

3.4 修改终端代码(以lbs_loc为例)

打开main.lua

参考注释,修改PRODUCT_KEY的值为3.3章节获取到的ProductKey

yun28

修改后,烧写lbs_loc的软件到终端中,终端开机后,每隔20秒去连接后台查询一次经纬度;每隔一次除了查询经纬度,还会查询地址信息

抓trace,在trace中搜索getgps,结果如下图所示

yun29

3.5 日志和统计功能(云平台)

yun30

点击“基站查询经纬度”下面的“查询日志”和“查询统计”自行研究

第4章云平台管理功能说明

云平台管理功能,只用于“合宙原生定位器产品”、“用户定制化产品”、“通用数据类型监控产品”

4.1 注册账号(云平台)[参考2.1章节]

4.2 创建新项目(云平台)[参考2.2章节]

4.3 获取项目的ProductKey(云平台)[参考2.3章节]

4.4 修改终端代码(以luatyun_ssl为例)

打开main.lua

参考注释,修改PRODUCT_KEY的值为4.3章节获取到的ProductKey

yun33

4.5 检查终端SN号

  1. 终端开机抓trace,在trace中搜索WISN,如下图所示.

yun34

如果查询到的SN如上图所示,为字母和数字组成的一个字符串,则SN正常,可以跳过4.5章节其余内容,直接看4.6章节。

如果查询到的SN为全0的字符串,则需要写合法的SN到终端,继续看第2步和第3步

  1. 生成合法的SN

    yun42

    点击设备列表,在列表详情页点击yun35,如下图所示,输入设备的IMEI号,如何获取设备的IMEI号,参考2.4.2章节

    yun36

    确认保存后,在设备列表详情页就出现了这个设备,如下图所示

    yun37

    点击右边的设备证书,会弹出一个窗口,显示设备证书,这个证书就是SN,在第3步中把这个证书写到设备中

  2. 写SN到设备中

    a) 有一个write_sn的demo,打开这个demo的test.lua,把第2步获取到的设备证书,赋值给newsn变量,例如我的测试设备的设备证书是QMge6eZRhJOLV6GD

    yun38

    b) 把这个demo烧写到设备中,设备开机,5秒钟后,会自动写SN,写成功,2秒钟后会重启,重启后,设备的SN号就变成新的了,整个过程抓trace,trace中搜索wisn,结果如下:

    例如我的设备的原始的SN是12345678901234567

    yun39

    5秒后写新SN:QMge6eZRhJOLV6GD

    yun40

    2秒后重启,重启后查询到的SN为:QMge6eZRhJOLV6GD,表示写入成功

    yun41

4.6 终端设备开机,接入Luat物联云后台

测试的设备IMEI为862991527973595,SN为:QMge6eZRhJOLV6GD

终端设备烧写4.4修改后的软件,开机后,抓trace,在trace中搜索connectedcb,出现下图结果就表示成功接入了Luat物联云后台

yun43

然后终端设备会每隔20秒上报一次数据,数据内容为qos1data

4.7 数据日志和设备状态查询功能

yun44

点击“云平台管理”下面的“数据日志”,可查询设备的数据上报记录,例如输入我测试设备的IMEI:862991527973595,搜索结果如下:

yun45

点击“云平台管理”下面的“设备状态”,可查询设备的重连记录,例如输入我测试设备的IMEI:862991527973595,搜索结果如下:

yun46


第5章云平台在线调试功能

5.1 注册账号

登录http://iot.openluat.com/,创建一个新项目

QQ截图20171106193050

5.2 进入在线调试

QQ截图20171106193225

QQ截图20171106193337

5.3 修改终端代码(以mqtt为例)

打开test.lua,修改如下几处: ​
1.修改服务器地址为luatyun的

--测试时请搭建自己的服务器
local PROT,ADDR,PORT = "TCP","lbsmqtt.airm2m.com",1883     --luatYun服务器地址   

2.修改登录client,username,password

mqttclient:connect("openluat",240,"luat","luat",connectedcb,connecterrcb--[[,sckerrcb]]) ----在mqtt例程中的190行 

本例所设置的clientid为openluat,username为luat,password为luat,这三个参数将会用在luatyun在线调试登录上。

3.修改发布和订阅的topic

mqttclient:subscribe({{topic="/v1/device/"..misc.getimei().."/event0",qos=0}}, subackcb, "subscribetest")   --在mqtt例程中的130行  
mqttclient:publish("/v1/device/"..misc.getimei().."/qos0topic","qos0data",0,pubqos0testsndcb,"publish0test_"..qos0cnt) --在mqtt例程中的46行

可以发现,其实就是对topic进行了一次封装,格式为/v1/device/+imei号+/topicName。

将修改好的程序烧录到终端。

5.4 登录luatyun在线调试

QQ截图20171106194555

在对应的地方填上设置的账号,然后connect,提示成功。

5.5 发布topic测试

QQ截图20171106195658

QQ截图20171106195830

QQ截图20171106195704

发布一条“luatyun”的消息,终端成功接收

5.6 订阅topic测试

QQ截图20171106200738

QQ图片20171106200723

可以看到云平台上收到终端发送的消息