HaaS600物联网开发板学习笔记(三)---使用amp工具远程更新js代码

摘要:在前面的文章中,我们学会了用amp工具推送js代码到HaaS600开发板上,本篇文章讲如何通过amp工具远程推送到设备中。实现这个功能后,如果设备的功能有更新,就不用到现场进行维护了。

实验目的:通过amp命令行工具,远程更新(OTA)代码到HaaS600开发板上

实验硬件:HaaS600开发板

实验软件:win7 x64、amp-win、vscode、串口助理。

目录

1.将物联网卡与设备绑定

如何在阿里云购买物联网卡并激活

2.将物联网卡与设备绑定

3.为自己的设备开通OTA功能

4.为自己的设备设置token

5.使用amp工具远程更新js源代码


1.将物联网卡与设备绑定

HaaS600开发板需要插入gprs网络,我们可以选择手机卡或者物联网卡,这两种卡的共同点是外观相同,不同点是物联网卡资费很便宜,而且只提供联网功能(也有的叠加短信功能)。

物联网卡也需要实名制,还需要与设备绑定才能实现远程更新。

具体操作请参考文章:

如何在阿里云购买物联网卡并激活

2.将物联网卡与设备绑定

物联网卡有一个唯一的标识码(ICCID),设备也有一个唯一的标识码(IMEI)。

ICCID的全称是Integrate circuit card identity (集成电路卡识别码),也就是SIM卡卡号(不是手机号),相当于手机号码的身份证。 ICCID为IC卡的唯一识别号码,共有20位数字组成,其编码格式为:XXXXXX 0MFSS YYGXX XXXX。 前六位运营商代码:中国移动的为:898600;898602 ,中国联通的为:898601、898609,中国电信898603,898606。

我买的物联网卡的ICCID如下图所示

IMEI全称是International Mobile Equipment Identity(国际移动设备识别码)。俗称“手机串号”、“手机串码”、“手机序列号”,用于在GSM移动网络中识别每一部独立的手机,相当于手机(不是手机卡)的身份证号码。IMEI码适用于GSM和WCDMA制式的移动电话和铱星卫星电话,而CDMA手机采用MEID码,与IMEI码有所区别。全球每部通过正规渠道销售的GSM手机均有唯一的IMEI码。IMEI码由GSMA协会统一规划,并授权各地区组织进行分配,在中国由工业和信息化部电信终端测试技术协会(TAF)负责国内手机的入网认证,其他分配机构包括英国BABT、美国CTIA等。

我购买的HaaS600开发板的IMEI在开发板的核心模组EC100Y上,是激光打上去的。

绑定操作通过手机淘宝完成,有实名认证的步骤。完成绑定的手机界面如下图所示。绑定后,这个物联网设备就可以正常工作了。

3.为自己的设备开通OTA功能

OTA(Over-the-Air Technology)字面理解就是“空中下载”技术。是通过移动通信(GSM或CDMA)的空中接口对SIM卡数据及应用进行远程管理的技术。空中接口可以采用WAP、GPRS、CDMA1X及短消息技术。OTA技术的应用,使得移动通信不仅可以提供语音和数据服务,而且还能提供新业务下载。

要想实现OTA功能,需要阿里开通这个权限。

根据阿里官方帮助文档,可以通过邮件申请。

https://help.aliyun.com/document_detail/184019.html?spm=a2c4g.11186623.6.657.680d21ffWDxRVl

发送邮件的时候,有固定的格式,关键是设备的唯一标识,也就是IMEI码。阿里云用邮件反馈token。

4.为自己的设备设置token

token是什么?

字面意思是令牌,可以理解为暗号。我理解的token是一种不用发送到后台,在本地就能验证的暗号。

计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般作为邀请、登录系统使用。

Definition of token. (Entry 1 of 2) 1a : a piece resembling a coin issued for use (as for fare on a busby a particular group on specified termsb : a piece resembling a coin issued as money by some person or body other than a de jure governmentc : a unit of a cryptocurrency Bitcoin tokens.

有了官方授权的token,我们就可以远程访问了,可是在远程访问之前,需要先将这个暗号设置到HaaS600设备内部。

具体操作如下:

连接HaaS600开发板与计算机。

打开串口助理(自行选择,好多种助理都可以),设置波特率为115200.

首先获取当前的token,输入下面的指令串,注意发送带有“新行”

var kv = require('kv');

可以获取当前的token

然后用另一个指令来设置token。设置完成后,这个token就固话在HaaS600内部了。也就是说,它有了自己与阿里云物联网平台通话的“暗号”。

kv.setStorageSync('_amp_device_token', '9da64dd7e367ab8ec5e0c026xxxxxxxx');

5.使用amp工具远程更新js源代码

假设现在HaaS600开发板内部运行的程序是让USER LED1秒钟闪烁一次。我们新的源代码要让LED延长至2秒钟闪烁一次。

理论上来说,此时就不用串口线了,连接串口线到笔记本并不是为了将代码通过数据线传输到设备,而是通过数据线观察HaaS600的信息。

首先用vscode修改源代码,

定时1000毫秒修改为2000毫秒

然后在vscode打开新终端,cd进入amp 命令行工具文件夹amp-win,然后显示联网设备。发现需要登录。

然后使用命令amp login XXXXXX登录,注意XXXXXXX是一串字符串,就是发送邮件进行公测申请反馈的token,也就是“暗号”。

相当于你跟阿里云说“喂喂喂,天王盖地虎”,对方回答“宝塔镇河妖”,自己人,success!

amp login 374bb6d4ef1f*******************

登录成功后,就可以通过命令amp device list显示在线的设备了。注意,HaaS600设备应该一直是上电状态的。提示信息中,设备编号其实就是HaaS600模块上的IMEI串号。

接下来,使用amp工具远程更新js源代码。注意下面的语句,是amp put ,而不是amp serialput app。

而且,远程更新的时候,不用将HaaS600开发板的模式按钮拨动到DL状态。

amp put app 866327**********

此时的串口信息反馈如下图所示:当提示“push app package SUCCESS”后,HaaS600设备自动复位,等待约3秒钟后,新的程序运行起来,搞定。

结论:HaaS600这款开发板采用gprs联网方式,如果用在没有wifi 信号覆盖的场合是非常合适的。它提供的amp命令行方式远程更新也非常方便,可以做项目开发原型机使用。产品定型后,直接购买定制好的EC100Y模块,焊接到自己设计的底板即可,以后也不用考虑程序烧录的问题了。

猜你喜欢

转载自blog.csdn.net/youngwah292/article/details/112426986