远程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
目录
相关文章
|
存储 边缘计算 人工智能
边缘计算(Link IoT Edge)介绍|学习笔记
快速学习边缘计算(Link IoT Edge)介绍
1146 0
边缘计算(Link IoT Edge)介绍|学习笔记
|
算法 前端开发
钉钉文档协同编辑背后的核心技术原理
有人说,互联网给人类社会带来最深层次的变革是改变了人与人协作的方式,将信息传播的成本大幅降低。身在互联网行业之中,研究信息传播的方式方法,是我们的日常功课。
钉钉文档协同编辑背后的核心技术原理
|
4月前
|
人工智能 API 开发者
狂揽7.5k星!这款开源API网关彻底解放开发者:一键聚合GPT-4、Suno、Midjourney,还能在线充值!
New API 是一款基于 One API 二次开发的 AI 模型接口管理与分发系统,支持多种大模型(如 GPT-4、Suno、Midjourney 等)统一封装为 OpenAI 格式接口调用。其核心功能包括多模型统一网关、企业级权限管控、“推理力度”分级、无魔法访问全球 AI 服务、灵活计费体系及开发者友好设计。技术架构采用 Golang + Gin 框架,支持高并发低延迟,适用于企业内部 AI 中台、多模型 SaaS 平台、学术研究协作及个人开发者工具等场景。项目开源地址:https://github.com/kingbug/new-api。
1167 6
|
6月前
|
人工智能 算法 开发者
AI前行需创新驱动,也要伦理护航:探索生成式人工智能的未来之路
随着科技发展,生成式人工智能(Generative AI)成为推动社会进步的重要力量。本文探讨其创新驱动与伦理护航的重要性,介绍GAI认证如何提升个人和企业在AI时代的竞争力。GAI认证不仅涵盖技术技能,还强调伦理、法律和社会影响,确保AI的健康发展。通过GAI认证,学员能掌握生成式AI的核心应用,具备负责任使用这些工具的能力,在职场中更具竞争力。
|
11月前
|
监控 并行计算 数据处理
构建高效Python应用:并发与异步编程的实战秘籍,IO与CPU密集型任务一网打尽!
在Python编程的征途中,面对日益增长的性能需求,如何构建高效的应用成为了每位开发者必须面对的课题。并发与异步编程作为提升程序性能的两大法宝,在处理IO密集型与CPU密集型任务时展现出了巨大的潜力。今天,我们将深入探讨这些技术的最佳实践,助你打造高效Python应用。
170 0
|
11月前
|
机器学习/深度学习 Python
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
神经网络剪枝是一种通过移除不重要的权重来减小模型大小并提高效率的技术,同时尽量保持模型性能。
436 0
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
|
测试技术 开发者 Python
FastAPI的神奇之处:如何用Python引领Web开发的新浪潮,让你的项目一鸣惊人?
【8月更文挑战第31天】在现代软件开发中,Web应用至关重要,而FastAPI作为高性能Python Web框架,凭借简洁的语法与高效的开发体验,备受开发者青睐。本文将介绍FastAPI的基础概念、使用方法及最佳实践,涵盖路由、模板、请求对象等核心概念,并探讨其优势与社区扩展,助您高效构建Web应用。
315 1
|
11月前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
226 0
|
人工智能
就AI 基础设施的演进与挑战问题之大模型推理中显存瓶颈的问题如何解决
就AI 基础设施的演进与挑战问题之大模型推理中显存瓶颈的问题如何解决
236 0

热门文章

最新文章