当前位置:网站首页>阿里云开发板HaaS510连接物联网平台--HaaS征文
阿里云开发板HaaS510连接物联网平台--HaaS征文
2022-06-12 13:45:00 【TMS320VC5257H】
摘要:HaaS510开发板的好处是使用移动网络通信,不用像HaaS100一样配网,因此可以用在缺乏wifi网络支持的场合,例如野外。HaaS510还有一个巨大的优势,就是可以使用JavaScript或者Python进行编程,使我们可以极少的代码实现连接物联网平台的操作。本文就与大家共同学习一下。

硬件:haas510 (2.0版本),USB串口
软件:win7 x64,vscode
目录
1.在阿里云物联网平台注册产品和设备
注册产品和设备是为了做本文介绍的实验,获取一个云平台的虚拟的设备的“三元组”数据。
如果您已经有了注册好的设备,可以直接用自己的设备来实验,从而跳过这一步。
按照下图所示,新增一个产品。联网方式选择蜂窝。不过根据实验,即使选择wifi,对操作也没有影响。

创建成功后,这个“智能灯”还不具有任何属性,比如它连个开关也没有,更别说是色彩了。

可以编辑草稿,添加想要的功能。

添加一个自定义的开关

为了做其他实验,我们新增一个备注属性

接下来发布上线,上线之后就可以添加很多具备这两个属性的设备了。一个产品是一类设备的统称。

新增一个设备light001,那么这个设备就自动具有主灯开关和备注2个属性。

点击进入设备详情页,然后查看三元组数据

三元组数据是三个字符串,长度不同。可以一键复制,将这三个字符串记下来。

复制后的数据是json格式的,可以用在很多地方。

2.编写设备上云源代码
haas系列硬件离开alios things物联网操作系统的支持,就与普通的物联网模块毫无差别。
比如510开发板,采用的是移远的EC600S模组。基于这种模组的各种类型的开发板或者模块五花八门。开发模式也多种多样,假如模组内置的是移远官方固件的话,可以支持AT指令开发。例如要想连接阿里云物联网平台,您就需要使用一个MCU通过UART发送若干个UART指令来告诉这个模组连接物联网平台。

我们注意到,EC600S模组本身就具有MCU功能,那么何苦再加一个MCU发送指令来实现联网的功能呢?能不能用它本身实现联网和具体功能的实现?
阿里云haas已经为我们准备好了。
例如haas510,我们可以将它看做是一块内置了JavaScript引擎,还内置了阿里云物联网操作系统的具备二次开发功能的开发板。
通过vscode即可非常方便地对它进行编程。
假如我们想用510连接阿里云,仅仅需要20余行代码(这中间还保留着必要的注释)就可以实现。
上云的过程是阿里云的固件自动适配的,无须像AT指令那样,还要关注每一步是否应答了成功的指令。
代码如下
var iot = require('iot');
var network = require('network');
var net = network.openNetWorkClient();
/* 设备三元组信息获取请参考common目录下的iot组件说明 */
var productKey = 'gc4XXXXXnjX';
var deviceName = 'light001';
var deviceSecret = 'b25XXXXXXXXXXXXXXXXXXXXXXXXXXXXe6db';
// 构建物联网连接实例
var device;
net.on('connect', function () {
device = iot.device({
productKey: productKey,
deviceName: deviceName,
deviceSecret: deviceSecret,
region: 'cn-shanghai',
success: function () {
console.log('iot: [success] connect');
},
fail: function () {
console.log('iot: [failed] connect');
}
});
})3.烧录程序到开发板
连接硬件。使用2个USB串口的目的是一个烧录,一个观察调试信息。

详细的过程可以参考文章,烧录的操作是通过vscode实现的。
阿里云开发板vscode开发环境搭建https://blog.csdn.net/youngwah292/article/details/120356887?spm=1001.2014.3001.5501
https://blog.csdn.net/youngwah292/article/details/120356887?spm=1001.2014.3001.5501
出现下图的界面就烧录成功了

4.运行效果
经过前面的步骤,一个极简代码上云的物联网设备就做好了。
烧录(或者叫做推送)之后,我们登录阿里云物联网平台,就可以看到设备成功在线。
怎么样简单吧?!!

下面对比一下EC600S使用AT指令使设备在线的复杂步骤。可以看到每一步都需要观察模块是否返回来正确的信息,例如是否返回了“OK”。假如我们每发送一个AT指令都采用“延时”再发送下一条指令的形式来使设备在线,那么后果将是不稳定和不可控。我亲自做了实验,有的时候(例如网络信号弱),真的有这种尽管发送AT指令正确,但是不能成功与云平台连接的情况发生。这样对比,就能看出来haas的过人之处了。因为它对阿里云无线网平台是“自适应”的。

我们还可以通过调试串口可以观察一下调试信息。
当然这只是辅助措施,当设备成功在线后,看不看调试信息都行。
如果后续开发其他功能时,借助调试串口可以弥补JavaScript不能单步调试的不足,使我们可以迅速定位故障,使用haas快速实现产品原型,抢占先机。

5.关于HaaS
在物联网方案多样化与场景碎片化等大背景下,基于阿里云物联网数亿设备落地经验,阿里云物联网团队推出了HaaS这个加速AIoT中小开发者的创新平台。HaaS(Hardware as a service)硬件即服务。通过向用户提供物联网场景中的的标准硬件以及嵌入到硬件中的软件驱动及功能模块,为用户提供物联网设备高效开发服务。旨在帮助AIoT中小开发者聚焦业务,能做到低门槛快速组装软硬件积木,实现设备安全上云,加速AIoT创新迭代。
HaaS设备端搭载阿里IoT团队全面开源的物联网操作系统AliOS Things。AliOS Things 是面向AIoT 领域的、高可伸缩的物联网统一操作系统。致力于搭建云端一体化 IoT 基础设备。具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云IoT平台,可广泛应用在智能家居、智慧城市、工业、新出行等领域。

边栏推荐
- Computational hierarchy -- the problem of large numbers multiplying decimals
- Relevant knowledge points of cocoapods
- Install RPM package offline using yum
- Behind the unsealing of Shanghai, this group of developers "cloud gathering" built an AI anti epidemic robot
- 【mysql进阶】查询优化原理与方案(六)
- 2062: [example 1.3] movie tickets
- Encryptor and client authenticate with each other
- Codeforces 1638 D. Big Brush —— BFS
- RK3399平台开发系列讲解(内核调试篇)2.50、systrace的使用
- Getting started with NVIDIA Jetson nano Developer Kit
猜你喜欢

Go language functions as parameters of functions

There was an error installing mysql. Follow the link below to CMD
![[WUSTCTF2020]颜值成绩查询-1](/img/90/e4c2882357e0a1c6a80f778887e3f5.png)
[WUSTCTF2020]颜值成绩查询-1

Cocoapods的相关知识点

Encryptor and client authenticate with each other

Implementing tensorflow deep learning framework similarflow with numpy

【mysql进阶】mysql索引数据结构的演变(四)

Formal analysis of Woo Lam protocol with scyther tool

编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的LAMP架构

Pytorch to onnx, onnxruntime reasoning in mmclas
随机推荐
import torch_ Data view of geometric
将字符串转为16进制字符串并显示出来
Codeforces 1638 D. Big Brush —— BFS
Formal analysis of Woo Lam protocol with scyther tool
Application of binary search -- finding the square root sqrt of a number
Cocoapods的相关知识点
基于华为云鲲鹏弹性云服务器ECS部署openGauss数据库【这次高斯不是数学家】
C language structure
Codeforces 1637 E. best pair - Thinking
MySQL 查询 limit 1000,10 和 limit 10 速度一样快吗? 深度分页如何破解
【mysql进阶】索引分类及索引优化方案(五)
简历 NFT 平台 TrustRecruit 加入章鱼网络成为候选应用链
安装MySQL时出错,照着下面这个链接,做到cmd就不行了
开发中使用的语言技巧
Record some settings for visual studio 2019
VGA display color bar and picture (FPGA)
Does jupyternotebook have a Chinese character database. Can you recognize handwritten Chinese in deep learning
上海解封背后,这群开发者“云聚会”造了个AI抗疫机器人
一种快速创建测试窗口的方法
[WUSTCTF2020]颜值成绩查询-1
https://blog.csdn.net/youngwah292/article/details/120356887?spm=1001.2014.3001.5501