前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[IoT迷你赛]基于TencentOS tiny的IoT设备极速上云实践系列

[IoT迷你赛]基于TencentOS tiny的IoT设备极速上云实践系列

原创
作者头像
用户4919065
发布2019-08-26 10:58:39
2.4K1
发布2019-08-26 10:58:39
举报
文章被收录于专栏:腾讯云IoT腾讯云IoT

物联网行业已经发展到各个垂直行业真正落地和商用运营阶段,各大厂都在积极布局和拥抱合作伙伴,在云管端各个环节,建立开放平台,推出一揽子的解决方案,打造各自差异化的生态。本文基于腾讯自研的物联网操作系统TencentOS tiny以及腾讯云物联网通信平台IoT Hub进行物联网案例开发。

        本案例设计,用户可以通过微信小程序与IoT设备进行简单交互,分三部分组成,包括用户应用,云平台,IoT设备,其架构图如下:

          下面就分别展开描述这三个部分的开发过程。

IoT设备

           IoT设备可以简单理解为一种既有联网能力的嵌入式设备,本次案例就是基于TEG云架构平台部系统研发中心自研的物联网操作系统TencentOS tiny和配套的自研开发板,TencentOS tiny提供可靠的OS内核功能,丰富的物联网应用组件以及轻量的SDK,方便开发者迅速开发,简单几步便可轻松让IoT设备上云。

           一张图描述TencentOS tiny的架构:

           TencentOS tiny开发板实物图 :

            开发板功能丰富,基本满足物联网各个应用场景的demo,本次使用的硬件模块,简单框图:

          光照传感器和温湿度传感器都是通过模拟信号转换成数字信号,MCU通过I2C通信协议读取传感器数据。显示屏可以显示可视化数据,也是通过I2C协议来控制,螺旋桨电机和LED灯则通过普通GPIO来控制,TencentOS tiny已经针对硬件操作封装HAL硬件抽象层,开发者不用过多了解具体的硬件原理和驱动层协议,便可以轻松无感知的操作硬件。

          IoT设备的联网能力主要是靠WIFI模组来实现,模组内部已经封装好了协议栈,MCU通过AT命令,就可以与云端服务器进行连接,本次是基于MQTT协议与云端对接,所以使用WIFI模组与云端服务器建立TCP链接。TencentOS tiny提供了可靠的AT框架和网络连接模块,兼容了市面上常用的模组,用户只要适配好以下几个函数功能,则设备就有了联网能力。

            简单介绍了OS和硬件,以下就是设备上云的流程。

            TencentOS tiny提供了丰富的组件,用户开发的时候,只需修改少量代码就可以实现数据上云服务。本案例的数据通信协议使用MQTT,payload采用JSON数据格式。

数据上行:

数据下行:

            TencentOS tiny提供COAP,MQTT等主流的IoT协议框架,提供统一的极简风格的API操作,有效提高开发者的效率。

MQTT连接代码:

MQTT主题订阅代码:

MQTT数据发布代码:

   MQTT数据接收代码:

    本次案例目的只是demo演示作用,因此基于TencentOS tiny的软件简单流程如下:

 启动代码:

主线任务代码:

   传感器任务代码:

由于云平台IoT Hub的MQTT连接需要鉴权,因此,编译工程之前,需要根据IoT Hub平台侧的鉴权信息配置MQTT连接参数,平台侧也提供了Python源码,方便生成该信息。开发者只要修改以下和云平台相关的信息,就可以与云端服务器建立MQTT连接,实现数据的上云服务。

云平台配置

       腾讯云物联网通信IoT Hub平台提供了方便的配置,很快建立好云端的产品属性,主要步骤是建立产品,添加设备,配置规则引擎,通过云平台的产品ID,设备名,设备密钥生成MQTT连接的鉴权参数。规则引擎配置MQTT的payload内容转发到第三方服务器。以便于与用户应用对接。规则引擎还提供SQL语言进行数据筛查,方便用户选择定制的信息。

       (1)登录腾讯云物联网通信平台,创建新产品

       确认之后,得到产品ID:

​                          

      (2)在该产品下,创建新设备:

​                          

        确定添加之后,得到设备密钥,用于接入鉴权:

         (3)新建规则引擎,使MQTT的payload内容转发到用户应用的http server。首先,使用SQL语言筛选信息,本次配置转发所有信息,最后添加行为,填写转发到第三方服务器的URL:

            简单3步就可以配置好云平台,数据上云之后,可以通过平台的云日志功能查看数据。       

用户应用

            腾讯云物联网平台提供了在线API 3.0 Explorer工具,能显著降低使用云 API 的难度,帮助用户高效构建物联网应用,且自动生成Java, Python, PHP, GO等多种主流的服务端SDK代码,可以直接使用生成的代码用于服务端开发。

​​

                                     API 3.0 Explorer代码生成

          通过API 3.0 Explorer生成的SDK代码,实现了设备的控制和查询,结合规则引擎配置的转发功能,已经完成了设备的上下行通信的核心功能。

         在此基础上,结合开发板提供的温湿度传感器,光照传感器,LED灯,电机等功能组件,开发了一个小型的物联网应用,基于websocket服务与触手可及的微信小程序对接 ,实现和设备的交互,主要包括设备监控,可以实时显示传感器数据或者告警信号,操作界面可以对设备进行远程控制。开发的小程序界面:

写在最后

     以上只是简单的演示TencentOS tiny和腾讯云物联网平台的使用以及和第三方应用服务器的对接。如果真正要到垂直行业去落地执行,需要结合具体需求进行优化和迭代。比如,物联网数据的安全性以及实际运营的OTA升级需求,目前demo走的是非加密通道,实际应用场景,可以结合TencentOS tiny提供的安全组件和云端进行加密安全传输,使用TencentOS tiny提供的OTA组件,通过云端操作,可以大批量给设备进行软件版本升级迭代。TencentOS tiny提供可靠和便捷的基础服务,开发者只要关心业务逻辑,极大提高了产品开发效率,大大缩短了用户产品的上市周期。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IoT设备
  • 云平台配置
  • 用户应用
  • 写在最后
相关产品与服务
物联网通信
腾讯云物联网通信(Internet of Things Hub, IoT Hub)旨在提供一个安全、稳定、高效的连接平台,帮助开发者低成本、快速地实现“设备-设备”、“设备-用户应用”、“设备-云服务”之间可靠、高并发的数据通信。物联网通信平台不仅可以实现设备之间的互动、设备的数据上报和配置下发,还可以基于规则引擎和腾讯云产品打通,方便快捷地实现海量设备数据的存储、计算以及智能分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档