远程AIoT教育科研平台LinkLab

简介: 当前,物联网应用开发过程普遍存在缺少硬件上手难、技术繁杂开发难、场景复杂部署难等痛点。本文介绍远程AIoT教育科研平台LinkLab,初步探讨物联网开发、教学和实训等方面的集成解决方案。平台由阿里巴巴-浙江大学前沿技术联合研究中心(AZFT)和杭州开物教育科技有限公司联合研发。

远程AIoT教育科研平台LinkLab

当前,物联网应用开发过程普遍存在缺少硬件上手难、技术繁杂开发难、场景复杂部署难等痛点。本文介绍远程AIoT教育科研平台LinkLab,初步探讨物联网开发、教学和实训等方面的集成解决方案。平台由阿里巴巴-浙江大学前沿技术联合研究中心(AZFT)和杭州开物教育科技有限公司联合研发。

1. LinkLab简介

传统的物联网程序开发需要用户自己选购开发板、传感器等硬件设备并完成设备组装,还要进行驱动程序以及一些链接库的源代码编写,给用户带来麻烦的同时也提高了物联网开发的门槛。那么,能不能让用户在自己家里,只用打开浏览器即可进行物联网远程实验呢?为了解决这些问题,我们开发了LinkLab远程物联网实验系统。那么,LinkLab的优势有哪些?可以主要归纳为三点:

  1. 远程开发。用户无需采购和组装物联网设备,登录平台就可以直接编写自己的代码。平台后台部署了大量物联网设备供用户远程使用。
  2. 快速开发。系统支持包括AliOS Things在内的多个物联网操作系统,这些系统提供了丰富的系统调用和驱动支持。用户可以将注意力集中于应用逻辑上,加快了开发速度。
  3. 在线教学。LinkLab系统提供了丰富的在线教学功能。学员可以在系统上学习物联网相关课程、观看教学视频以及锻炼物联网编程能力。

LinkLab是一个提供线上课程学习、视频播放、实验题做题、场景编程和考试认证的物联网实验平台,包括远程设备和相应的系统软件。其中系统软件部分一共包含以下几个模块:判题系统,负责对用户做题的输出进行判断;设备中心,负责设备管理和烧写;在线编译器,负责用户代码的编译;WebIDE负责代码编辑工作。用户可以用于学习AIoT知识,锻炼编程能力,并且可以根据自己的想法自由进行实验。
AliOS-Things可以结合阿里云物联网平台使用。阿里云物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。
本文接下来使用ESP32开发板,使用AliOS-Things的mqtt相关接口,实现数据上云的全链路实验。我们使用WebIDE和阿里云互联网平台完成实验,共分为四步:

  1. 在阿里云物联网平台创建物模型;
  2. 在代码编辑器中编写AliOS-Things应用代码;
  3. 连接远程设备;
  4. 提交代码并等待系统判题结果。

下面通过一个简单的传感数据上云的例子介绍如何使用LinkLab。

2. WebIDE的使用

  1. 登陆LinkLab平台后,在主页可以看到实验列表。
    1.png
  2. 选择实验并点击对应的“开启”按钮,进入WebIDE界面。
  3. 点击左上角的实验名称按钮,打开题目描述信息和代码编辑器。下面对WebIDE页面布局做简单介绍:
  • 红色框内为实验题列表(以“串口打印”实验为例)。
  • 黄色框内为当前实验题题目描述信息。
  • 蓝色框内为实验操作(包括“连接”、“提交”,其中“连接”按钮用来连接远程物联网设备,“提交”按钮用于当代码编写完成时提交运行)。
  • 绿色框内是代码编辑器。
  • 灰色框内是Shell,负责显示系统日志和用户程序输出信息(用户输出为绿色)。
    2.png

接下来在绿色的代码编辑器使用AliOS Things,编写C代码,实现简单的数据读取和上传至物联网平台功能。

3. 阿里云物联网平台配置

在编写代码之前,需要先在阿里云物联网平台中创建产品与设备,并定义产品的物模型,具体可参考阿里云的文档:创建产品与设备,为产品定义物模型。

  1. 创建产品。新建设备模型,名称任意,分类为“自定义品类”,联网方式为“WiFi”,数据格式为“ICA 标准数据格式(Alink JSON)”。
  2. 在所创建产品的“功能定义”中为设备模型添加“自定义功能”。我们新增四个属性,分别是“温度(CurrentTemperature)”、“湿度(CurrentHumidity)”、“光照度(mlux)”和“判题密钥(key)”。
  3. 新增测试设备。设备三元组信息位于设备详情中,可以直接复制。
    4.png

4. 代码编写

接下来在WebIDE中编写代码。先填写PRODUCT_KEY,PRODUCT_SECRET,DEVICE_NAME与DEVICE_SECRET,这些信息可以在阿里云控制台中找到。程序的大体框架已经给出,只需要填写循环内部的逻辑。
首先要根据题目的要求,确定循环的次数与每一次循环后的等待时间。然后,按照阿里云文档中关于Alink协议上报设备属性的说明,准备好上报设备属性CurrentTemperature和CurrentHumidity的MQTT消息,存入变量msg_pub中(可以考虑使用sprintf)。然后在循环中,使用IOT_MQTT_Publish方法,将消息发送到阿里云物联网平台。AliOS MQTT的相关函数可参考AliOS源代码中对应函数的注释的说明。

while (cnt < 5) {
    cnt++;
    int ts = time(0);
    msg_len = snprintf(msg_pub, sizeof(msg_pub), "{"
                            "\"id\": \"123\","
                            "\"version\": \"1.0\","
                            "\"params\": {"
                            "\"CurrentTemperature\": {"
                            "\"value\": 20.0,"
                            "\"time\": %d"
                            "},"
                            "\"CurrentHumidity\": {"
                            "\"value\": 25.0,"
                            "\"time\": %d"
                            "}"
                            "},"
                            "\"method\": \"thing.event.property.post\""
                            "}", ts, ts);

    topic_msg.payload = (void *)msg_pub;
    topic_msg.payload_len = msg_len;


    rc = IOT_MQTT_Publish(pclient, TOPIC_PROPERTY_POST, &topic_msg);
    
    EXAMPLE_TRACE("packet-id=%lu, publish topic msg=%s", (uint32_t)rc, msg_pub);
    IOT_MQTT_Yield(pclient, 200);

    aos_msleep(1000);
}

保存以上代码。然后点击“连接”按钮,连接远程设备,如果连接成功会在 Shell出现以下提示,可以进行下一步的操作。
5.png
如果在Shell出现连接失败的提示,需要继续等待,直至连接成功。连接设备成功后,可以点击“提交”按钮提交代码,系统将自动完成代码的在线编译和远程烧写等工作,程序的执行结果将显示在Shell中。如果编译出错的话,Shell将给出相应的提示:
6.png
判题系统会根据用户程序输出的数据的正确性、输出的次数和时间间隔设定若干得分点,用户可以在最后面看到通过的得分点和具体的得分。
7.png

以下是该实验可能部分错误类型列表。

错误 原因
次数错误 打印次数与要求不匹配
时间间隔错误 打印时间间隔与要求不匹配
消息内容错误 打印内容错误

5. 实验结果

程序显示在Shell中的执行结果,如果程序的输出和期望输出一致,系统会提示“ACCEPT”,否则提示为“WRONG ANSWER”,具体参考以上截图。

程序运行成功后,我们可以登录到阿里云物联网平台,在设备运行状态下查看上传的设备数据。
9.png

6. 总结和展望

本文介绍了如何使用LinkLab物联网实验平台和AliOS Things将传感器数据上传到阿里云物联网平台。由于篇幅有限,LinkLab的更多教育教学功能没能得到充分的展现,未来免费版本、英文版本、考试认证、批量组织实验和自主节点选择等功能将陆续上线,敬请期待!

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
Unix 异构计算 Windows
带你读《基于CUDA的GPU并行程序开发指南》之一:CPU并行编程概述
本书旨在帮助读者了解与基于CUDA的并行编程技术有关的基本概念,并掌握实用c语言进行GPU高性能编程的相关技巧。本书第一部分通过CPU多线程编程解释了并行计算,使得没有太多并行计算基础的读者也能毫无阻碍地进入CUDA天地;第二部分重点介绍了基于CUDA的GPU大规模并行程序的开发与实现,并通过大量的性能分析帮助读者理解如何开发一个好的GPU并行程序以及GPU架构对程序性能的影响;本书的第三部分介绍了一些常用的CUDA库。
|
5月前
|
监控 安全 测试技术
深度集成无影云桌面API实现默认截屏权限的动态防御体系
本文揭示截屏成数据泄密“暗门”,剖析其隐蔽性强、取证难、成本低三大特征,指出传统DLP忽视屏幕出口的短板。基于阿里云无影云桌面API,提出“动态截屏防御”方案:依据文档加密状态实时启停防截屏、叠加明/盲水印、录屏审计,实现安全与效率平衡,践行零信任“数据在哪,防护就在哪”理念。(239字)
|
人工智能
决赛入围通知丨挑战杯“揭榜挂帅”擂台赛阿里云专项赛决赛入围公告
决赛入围通知丨挑战杯“揭榜挂帅”擂台赛阿里云专项赛决赛入围公告
|
11月前
|
SQL 人工智能 自然语言处理
让AI真正懂数据:猫超Matra项目中的AI知识库建设之路
本文介绍猫超基于大模型的AI数据助手Matra实践,构建面向Data Agent的知识库体系,通过知识图谱与ReAct框架实现智能取数,提升数据研发效率与业务分析能力。
1187 27
让AI真正懂数据:猫超Matra项目中的AI知识库建设之路
|
机器学习/深度学习 安全 前端开发
阿里云服务器2核4G、4核8G、8核16G配置解析:实例规格、价格及选择参考
2核4G、8核16G、4核8G配置的云服务器处理器与内存比为1:2,这种配比的云服务器一般适用于中小型网站、企业网站应用、批量计算、Web前端服务器、机器学习推理等场景,因此,多为个人和普通企业级用户比较喜欢购买这种配置。本文将详细解析这三种阿里云服务器配置的实例规格、收费标准、活动价格及选购策略,以供参考。
|
存储 运维 BI
万字长文带你深入广告场景Paimon+Flink全链路探索与实践
本文将结合实时、离线数据研发痛点和当下Paimon的特性,以实例呈现低门槛、低成本、分钟级延迟的流批一体化方案,点击文章阅读详细内容~
|
NoSQL 安全 Java
Redis从入门到精通之Lua 脚本
Lua 是一种轻量级的脚本语言,被广泛应用于游戏开发、嵌入式系统、Web 开发、科学计算等领域。Redis 内置了 Lua 解释器,使得用户可以通过编写 Lua 脚本来扩展 Redis 的功能。在 Redis 中,可以使用 EVAL 和 EVALSHA 命令执行 Lua 脚本。
1455 122
Redis从入门到精通之Lua 脚本
|
存储 SQL JSON
离线数仓(五)【数据仓库建模】(2)
离线数仓(五)【数据仓库建模】

热门文章

最新文章