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

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

3天内不再提示

用小凌派RK2206开发板实现基于OpenHarmony阿里云IoT服务的教程

海阔天空的专栏 来源: 凌智电子 作者: 凌智电子 2022-06-17 17:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、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服务器通信。

pYYBAGKsSC6AA9gnAAJvCuJkf-8519.png

图1 小凌派RK2206开发板

三、软件设计

主程序设计

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

pYYBAGKsSFmAZJs6AACyo-qhmQU151.png


阿里云服务程序设计

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

poYBAGKsSGuAcpCNAABpJdXU8JM459.png

四、编译测试

登录阿里云

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

pYYBAGKsSISAfP_XAAEKhv6gBdA626.png

图2 阿里云IoT平台地址

开通物联网服务

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

poYBAGKsSJKAI-EJAABdH0O9M9U004.png

图3 开通物联网平台

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

poYBAGKsSK6AV9vnAABQ6FMjRT4425.png

图4 立即开通

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

pYYBAGKsSLSAGqJTAACLx2jiW2c150.png

图5 开通成功提示

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

图片

图6 管理控制台

创建产品

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

pYYBAGKsSP6AO1lNAACukRqafww964.png

图7 创建产品

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

poYBAGKsSQSAYfhXAAChOGQC6XQ614.png

图8 创建产品详情

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

pYYBAGKsSQeAHki6AACtnLUgRog057.png

图9 产品详情

添加设备

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

poYBAGKsSQuAAdvaAACUj0XY2cY398.png

图10 添加设备

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

poYBAGKsSQ-AK019AACaOaizWGg023.png

图11 添加设备详情页

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

poYBAGKsSRKARFu0AACVAg_LF-0763.png

图12 设备页面

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

pYYBAGKsSRWAQ4VYAAC2TGgKrRA839.png

图13 设备详情

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

poYBAGKsSRmAH2L6AADDSxSBN5M335.png

图14 MQTT连接参数

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

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

poYBAGKsSTOAG4qUAAFbwu18LB0467.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平台,点击进入设备详情页面,可以看到设备的当前状态为在线。如图所示。

pYYBAGKsSZCAam7JAAC9KkRiyUA714.png

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

来源:凌智电子



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

    关注

    189

    文章

    4369

    浏览量

    206651
  • OpenHarmony
    +关注

    关注

    31

    文章

    3926

    浏览量

    20725
  • RK2206
    +关注

    关注

    0

    文章

    38

    浏览量

    2482
  • 小凌派
    +关注

    关注

    0

    文章

    28

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于OpenHarmony+小RK2206开发板制作的简易示波器

    基于OpenHarmony + 小RK2206开发板制作的简易示波器,实时采集波形,实时计算并实时显示对应的波形。
    的头像 发表于 05-10 09:02 5591次阅读

    基于小RK2206开发板OpenHarmony如何使用IoT接口控制PWM外设

    1、案例简介本案例是在小-RK2206开发板上使用IoT库PWM接口,进行PWM编程开发。例
    的头像 发表于 04-09 08:59 2073次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:<b class='flag-5'>OpenHarmony</b>如何使用<b class='flag-5'>IoT</b>接口控制PWM外设

    轻量系统开发套件介绍:睿智捷 | 小-RK2206 开发板套件

    睿智捷 | 小-RK2206 开发板套件是由福州市睿智捷电子有限公司出品,主控器为瑞芯微
    发表于 04-21 13:39

    【小RK2206开发板试用体验】连上华为体验人体感应

    、Password),还有如果看不懂就去B站认真的学习这个课程:d4_OpenHarmony 华为IoT应用开发-人体感应_哔哩哔哩_bilibili。(注意:在B站所有的例程都有对
    发表于 05-03 08:34

    【小RK2206开发板试用体验】OpenHarmony华为IoT应用开发-智慧井盖

    本帖最后由 周安平 于 2022-6-4 10:07 编辑 【小RK2206开发板试用体验】OpenHarmony华为
    发表于 06-03 20:48

    基于OpenHarmony阿里IoT服务实现

    用,广泛应用于物联网(IoT)。MQTT协议在卫星链路通信传感器、医疗设备、智能家居、及一些小型化设备中已广泛使用。阿里为国内主流的平台,提供免费试用的物联网平台,本文使用小
    发表于 06-17 09:36

    基于OpenHarmony阿里IoT服务实现(2)

    RK2206开发板实现基于OpenHarmony阿里IoT
    发表于 07-18 11:09

    RK2206开发板搭载OpenHarmony操作系统简介

    1、小-RK2206开发板简介小-RK2206
    发表于 07-28 17:28

    基于OpenHarmony系统和小RK2206开发板的避障小车

    这是一款基于OpenHarmony系统和小-RK2206开发板的避障小车。同时,小车上搭载了超声波测距模块、舵机模块、红外寻迹模块、直流
    的头像 发表于 04-21 07:58 6534次阅读

    基于小RK2206开发板所制作的简易示波器

    基于OpenHarmony + 小RK2206开发板制作的简易示波器,实时采集波形,实时计算并实时显示对应的波形。
    的头像 发表于 05-06 17:09 2577次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>所制作的简易示波器

    基于小RK2206开发板OpenHarmony如何使用IoT接口控制ADC外设

    1、案例简介本案例主要讲解如何在小-RK2206开发板上使用IoT库的ADC接口,进行ADC编程开发
    的头像 发表于 04-10 16:00 713次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:<b class='flag-5'>OpenHarmony</b>如何使用<b class='flag-5'>IoT</b>接口控制ADC外设

    基于小RK2206开发板OpenHarmony如何使用IoT接口控制GPIO外设

    1、案例简介本案例主要是如何在小-RK2206开发板上使用IOT库的GPIO接口,进行GPIO编程
    的头像 发表于 04-11 15:36 1623次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:<b class='flag-5'>OpenHarmony</b>如何使用<b class='flag-5'>IoT</b>接口控制GPIO外设

    基于小RK2206开发板OpenHarmony如何使用IoT接口控制GPIO中断

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的GPIO中断模式,进行GPIO编程
    的头像 发表于 04-21 10:39 895次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:<b class='flag-5'>OpenHarmony</b>如何使用<b class='flag-5'>IoT</b>接口控制GPIO中断

    基于小RK2206开发板OpenHarmony如何使用IoT接口控制UART外设

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的UART接口,进行UART编程
    的头像 发表于 04-22 14:22 803次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:<b class='flag-5'>OpenHarmony</b>如何使用<b class='flag-5'>IoT</b>接口控制UART外设

    基于小RK2206开发板OpenHarmony如何使用IoT接口控制FLASH外设

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的FLASH接口,进行FLASH编程
    的头像 发表于 04-22 14:49 694次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:<b class='flag-5'>OpenHarmony</b>如何使用<b class='flag-5'>IoT</b>接口控制FLASH外设