0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于OpenHarmony的阿里云IoT服务实现

福州市凌睿智捷电子有限公司 2022-06-18 10:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、MQTT协议简介

MQTT(消息队列遥测传输)是一个基于客户端-服务器的消息发布/订阅传输协议,是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。MQTT工作在TCP/IP协议栈上,是为硬件性能低下的远程设备以及网络状况不理想的情况下而设计的发布/订阅型消息协议。由于MQTT协议的轻量、简便、开放的特点使它适用范围非常广泛。在很多情况下,包括受限的环境中使用,广泛应用于物联网IoT)。MQTT协议在卫星链路通信传感器、医疗设备、智能家居、及一些小型化设备中已广泛使用。

阿里云为国内主流的云平台,提供免费试用的物联网平台,本文使用小凌派RK2206开发板实现基于OpenHarmony的阿里云IoT服务。小凌派RK2206开发板采用瑞芯微高性能、高性价比的RK2206芯片。RK2206芯片是一款低功耗、高集成的MCU无线局域网处理器,它可以应用于不同的应用领域,如物联网、可穿戴设备、家庭自动化、云连接等。小凌派RK2206开发板内置WIFI模块,外部接口丰富,使用一个小凌派RK2206开发板就能够轻松实现MQTT物联网多种应用。

二、硬件电路设计

如图1所示,为小凌派RK2206开发板支持的外部接口,本文使用小凌派RK2206开发板内置的WIFI和MQTT服务器通信。

6fc48a3c-ee69-11ec-a2f4-dac502259ad0.png

图1 小凌派RK2206开发板

三、软件设计

主程序设计

在iot_aliyun_example函数中,通过LOS_TaskCreate函数创建iot_aliyun_thread线程,并设置线程优先级、线程堆栈大小等参数。

void iot_aliyun_example(){ unsigned int ret = LOS_OK; unsigned int thread_id1; unsigned int thread_id2; TSK_INIT_PARAM_S task1 = {0}; TSK_INIT_PARAM_S task2 = {0};

ret = LOS_QueueCreate("queue", MSG_QUEUE_LENGTH, &m_msg_queue, 0, BUFFER_LEN); if (ret != LOS_OK) { printf("Falied to create Message Queue ret:0x%x\n", ret); return; }

task1.pfnTaskEntry = (TSK_ENTRY_FUNC)iot_aliyun_thread; task1.uwStackSize = 10240; task1.pcName = "iot_aliyun_thread"; task1.usTaskPrio = 24; ret = LOS_TaskCreate(&thread_id1, &task1); if (ret != LOS_OK) { printf("Falied to create iot_aliyun_thread ret:0x%x\n", ret); return; }}

阿里云服务程序设计

iot_aliyun_thread函数中,开发板先连接WIFI,通过WIFI和阿里云IoT平台通信;WIFI连接成功后,初始化网络,初始化MQTT客户端;初始化完成后,成功连接阿里云IoT平台。

int iot_aliyun_thread(){ aliyun_msg_t *app_msg = NULL; unsigned int addr; int ret;

/*WIFI连接*/ SetWifiModeOn();

device_info_init(CLIENT_ID, USERNAME, PASSWORD); ret = oc_mqtt_init(); if (ret != LOS_OK) { printf("oc_mqtt_init fail ret:%d\n", ret); }

while (1) { LOS_Msleep(100); }}

四、编译测试

登录阿里云

设备连接阿里云前,需要做一些准备工作;登录阿里云IoT平台,在平台注册个人用户账号,并且需要实名认证后才可以正常使用。如图2所示,为阿里云IoT平台地址:https://free.aliyun.com/product/iotfreetrail。

6fe0cda0-ee69-11ec-a2f4-dac502259ad0.png

图2 阿里云IoT平台地址

开通物联网服务

在阿里云IoT平台注册个人用户账号并进行登录,登录后需要开通物联网平台服务,点击立即开通,如图3所示。

6fed276c-ee69-11ec-a2f4-dac502259ad0.png

图3 开通物联网平台

点击立即开通,在确认页面,点击右下角的立即开通,如图4所示。

70012492-ee69-11ec-a2f4-dac502259ad0.png

图4 立即开通

点击立即开通,提示开通成功,如图5所示。

70080cbc-ee69-11ec-a2f4-dac502259ad0.png

图5 开通成功提示

点击进入管理控制台,管理控制台如图6所示。

700f5f8a-ee69-11ec-a2f4-dac502259ad0.png

图6 管理控制台

创建产品

点击进入公共实例,点击侧边栏的产品页面,点击创建产品,如图7所示。

702ebe2a-ee69-11ec-a2f4-dac502259ad0.png

图7 创建产品

输入产品名称,选择自定义品类-直连设备,点击确定创建产品,如图8所示。

70496446-ee69-11ec-a2f4-dac502259ad0.png

图8 创建产品详情

成功创建产品后,侧边栏点击产品,可以查看到创建的产品信息,如图9所示。

70571a64-ee69-11ec-a2f4-dac502259ad0.png

图9 产品详情

添加设备

点击侧边栏设备页面,点击添加设备,如图10所示。

7072adf6-ee69-11ec-a2f4-dac502259ad0.png

图10 添加设备

按照要求填入产品名称和DeviceName,点击确认,如图11所示。

70909b86-ee69-11ec-a2f4-dac502259ad0.png

图11 添加设备详情页

成功创建设备后,侧边栏点击设备,可以查看到创建的设备信息,如图12所示。

70af58d2-ee69-11ec-a2f4-dac502259ad0.png

图12 设备页面

点击进入刚添加的设备,可以查看到设备的详细信息,如图13所示。

70b92c54-ee69-11ec-a2f4-dac502259ad0.png

图13 设备详情

点击查看MQTT连接参数,查看MQTT连接所需的参数,如图14所示。

70d354c6-ee69-11ec-a2f4-dac502259ad0.png

图14 MQTT连接参数

在PC上使用WIN + R键打开命令行CMD,执行如下命令获取接入域名的IP地址。如图15所示,通过ping命令可以查询到MQTT域名的IP地址为47.102.164.191。

ping iot-06z00d4dxawzdv7.mqtt.iothub.aliyuncs.com

70f996e0-ee69-11ec-a2f4-dac502259ad0.png

图15 查询MQTT域名IP地址

对应修改代码中的MQTT_SERVER_IP为查询到PC端IP地址47.102.164.191,MQTT_SERVER_PORT修改为MQTT服务器端口号1883。代码如下所示:


#define MQTT_SERVER_IP "47.102.164.191"

#define MQTT_SERVER_PORT 1883


根据MQTT连接参数依次修改代码中的CLIENT_ID、USERNAME和PASSWORD,代码如下所示:

#define PRODUCT_KEY "hdm1KctTIxC"

#define DEVICE_NAME "aliyun"

#define CLIENT_ID "hdm1KctTIxC.aliyun|securemode=2,signmethod=hmacsha256,timestamp=1655280007303|"

#define USERNAME "aliyun&hdm1KctTIxC"

#define PASSWORD "d41441cfae339f4a09ac2bc600b736db80d3d6694f1d58efc16eb8e812d4d295"


WIFI连接

修改代码中的SSID和PASSWORD为使用WIFI的SSID和密匙,用于连接网络,设备通过WIFI访问阿里云IoT平台。代码如下所示:


#define SSID "lzdz"

#define PASSWORD "12345678"


运行结果

例程代码编译烧写到开发板后,按下开发板的RESET按键,通过串口软件查看日志,串口打印MQTT初始化、连接等日志。


NetworkConnect...

MQTTClientInit...

MQTTConnect...

MQTTSubscribe...

此时登录阿里云IoT平台,点击进入设备详情页面,可以看到设备的当前状态为在线。如图所示。

711b2760-ee69-11ec-a2f4-dac502259ad0.png

图16 设备上线阿里云IoT平台


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IOT
    IOT
    +关注

    关注

    190

    文章

    4422

    浏览量

    209619
  • OpenHarmony
    +关注

    关注

    33

    文章

    3974

    浏览量

    21357
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【iotauth 】 IOT 鉴权库的技术实践

    实现可信连接。   一、概述   在物联网(IoT)设备接入平台时,设备身份认证是安全通信的第一步。主流物联网平台(如阿里
    的头像 发表于 02-25 17:13 223次阅读
    【iotauth 】 <b class='flag-5'>IOT</b> 鉴权库的技术实践

    深化阿里生态合作 优化治理能力再获权威认可

    前言2026年2月5日,阿里上海大区合作伙伴年度颁奖仪式圆满举办,科技凭借在优化治理领域的深厚技术积淀、丰富的行业落地成果与卓越的
    的头像 发表于 02-09 17:29 1170次阅读
    深化<b class='flag-5'>阿里</b><b class='flag-5'>云</b>生态合作 <b class='flag-5'>云</b>优化治理能力再获权威认可

    阿里SLB负载均衡配置指南

    当业务流量超过单台服务器的承载能力,或者需要实现服务的高可用时,负载均衡成为必不可少的基础设施。阿里SLB(Server Load Bal
    的头像 发表于 01-30 17:47 1746次阅读

    声智科技亮相2026阿里通义智能硬件展

    1月8日至11日,备受瞩目的阿里通义智能硬件展在深圳火热开启。作为专注声学AI的全球创新企业,声智科技(SoundAI)与阿里通义大模型完成了深度战略碰撞,并发表主题演讲 。
    的头像 发表于 01-19 16:06 717次阅读

    双百!100%中国车企全球业务接入阿里

    摘要:AI和汽车行业正在加速融合,未来阿里全栈AI将支撑全球车企建立领先的技术架构与智能体验。 近日,在2026年新加坡国际车展上,阿里云表示已在汽车行业实现“双百”突破:中国车企不
    的头像 发表于 01-13 10:25 321次阅读
    双百!100%中国车企全球业务接入<b class='flag-5'>阿里</b><b class='flag-5'>云</b>

    Node-RED+Modbus_slave:JSON数据采集与阿里服务器上传

    1.引言 1.1文档说明 本文档介绍的是使用node-red将modbus_slave模拟的485数据进行JSON数据封装后,上传到阿里ECS私人搭建的服务器,数据通过服务器出处理后
    的头像 发表于 01-05 17:37 929次阅读
    Node-RED+Modbus_slave:JSON数据采集与<b class='flag-5'>阿里</b><b class='flag-5'>云</b><b class='flag-5'>服务</b>器上传

    什么是企业服务器-计算

    企业服务器是指为企业提供的基于计算技术的服务器解决方案。华纳是一家计算
    的头像 发表于 12-29 17:57 1068次阅读

    英特尔助力阿里推出多款实例和存储方案

    实例解决方案。 u2i实例作为普惠算力的理想入门之选,其出色的成本效益,让中小企业客户得以用更低的投入,充分激发业务增长潜力。相较阿里上一代通用算力型实例U1,u2i
    的头像 发表于 10-16 10:22 751次阅读

    小鹏汽车与阿里签署后量子安全技术合作协议

    9月24日,小鹏汽车与阿里在云栖大会正式签署后量子安全技术合作协议。小鹏汽车高级总监林蓬蓬、阿里数据安全产品线总监杨永代表双方签约。根据协议,
    的头像 发表于 09-30 14:09 971次阅读

    赛思PTP时间同步服务器推荐 赛思×阿里 |30ns精度编织全球算力无界网

    赛思全球分布式数据中心PTP解决方案,助力阿里加速构建“全球计算一张网”。01阿里,全球
    的头像 发表于 08-15 17:59 2685次阅读
    赛思PTP时间同步<b class='flag-5'>服务</b>器推荐 赛思×<b class='flag-5'>阿里</b><b class='flag-5'>云</b> |30ns精度编织全球算力无界网

    阿里设备的物模型数据里面始终没有值是哪里的问题?

    如上图,不知道讲清楚没有。 IG502自定义TOPIC 上发到阿里没问题。采用阿里物模型的格式来上发就不行。请大佬指教!
    发表于 08-05 06:43

    高德与阿里一起,开启智慧出行新范式

    作为阿里AI生态伙伴计划-"繁花计划"首批标杆伙伴,高德开放平台携手阿里,面向企业开发者推出地图服务产品MCP Server ,通过技术
    的头像 发表于 07-18 10:29 668次阅读

    四维图新与阿里达成战略合作

    Infra、智能座舱等领域的核心能力,以及阿里计算、人工智能及全球化服务的技术优势,共同推动汽车行业智能化转型升级,开启合作新篇章。
    的头像 发表于 06-05 17:53 1281次阅读

    HarmonyOS5服务技术分享--ArkTS调用函数

    contentType参数指定文件类型 使用分块传输优化大文件下载 结合存储服务实现文件持久化 完整的文件获取模板: async function fetchCloudFile(fileId: string
    发表于 05-22 18:22

    HarmonyOS5服务技术分享--ArkTS开发Node环境

    气的方式探索这个功能,结尾还有实用总结和鼓励彩蛋哦~✨ ? 一、HarmonyOS函数开发:核心能力与价值 HarmonyOS的函数(Serverless)为开发者提供了​​无服务器架构​​的便捷
    发表于 05-22 17:21