前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[IoT迷你赛]基于TencentOS tiny的SmartLight小工具

[IoT迷你赛]基于TencentOS tiny的SmartLight小工具

原创
作者头像
梦to鑫
修改2019-08-29 09:19:17
1.7K0
修改2019-08-29 09:19:17
举报
文章被收录于专栏:腾讯云IoT腾讯云IoT

总述

本项目基于TencentOS tiny(腾讯物联网操作系统)构建了一款智能灯小工具产品。整个产品架构上分为硬件底层、云平台层和小程序终端层,利用官方的Demo框架可迅速打通三层的基本通信逻辑,再对相应接口的调用及方法改写便可创作出自己需要的产品项目来,这也是本项目的构建思路,下面开始详细介绍。

项目创新点

该项目主要运用于家庭里老人、小孩的便捷智能服务上,也可运用于阅览室等公共场所的智慧照明管理上,传统的灯光控制在便捷性和环保节能方面都有可改善地方,而该小工具可助力生活中的智慧环保与节能,其定位为一款智能小工具产品,一是发挥产品核心的TencentOS tiny低功耗,低资源占用的“小”优势再就是主要展现载体为小程序,其用完即走、“小”而强大的优势显而易见,这两方面共同支撑这款小工具的小而智能、易用等特征。同时搭载TencentOS tiny的小程序工具产品市面上目前是还没有的,相信未来是趋势。

开发环境:

MDK5(Keil5)、串口调试工具(sscom)、微信开发者工具

一、硬件底层

在硬件底层方面,由腾讯云物联网团队联合南京厚德物联网公司联合定制开发的TencentOS tiny开发板,其主要由

5大部分构成:1、传感器扩展槽(本项目运用的E53_SC1),2、MKU(STM32L431RCT6),3、锂电池(3.7V、600mAh),4、OLED屏,5、wifi 扩展板 ESP8266。此外这套开发套包中还包括必备的STlink 下载器和串口电源线。

TencentOS tiny开发板
TencentOS tiny开发板

其最小系统电路图如下:

依托开发板,LED灯传感器扩展板接入系统需要知道对应的引脚接口并进行调用,这点我觉得是实现开关灯等控制的核心之处,我是如何操作的和踩过哪些“坑”呢,进入正题吧:

1、首先配置好环境,包括MDK的安装,相应Pack的安装,这里注意的是如果网速稳定比较好,那可以选择在mdk里面下载Pack或者导入,否则建议(仅个人意见)直接安装好MDK后再回到文件夹直接点击运行安装pack。开发主要环境安装好后,再把相应开发板的烧录驱动ST-Link驱动、CH340串口驱动安装好就可正式开始开发了。

个人感觉外面直接安装pack便捷迅速
个人感觉外面直接安装pack便捷迅速

2、导入最小工程文件进行基础内核实验,一般都是进行HelloWorld这类的,新建或者导入工程文件后,如果初次开发需要进行MDK里面仿真和烧写的环境配置。(这里需要注意和容易忽略的是MDK的激活,否则烧录有问题)

HelloWorld基础内核实验先跑通
HelloWorld基础内核实验先跑通

同时串口调试助手上可看结果
同时串口调试助手上可看结果

3、LED灯传感器扩展板的引脚接口和数据采集

找到灯传感器扩展板的引脚为7,对应到GPIO2口,然后再进一步看MCU上GPIO2对应的引脚为PB9,这样就通过对此引脚接口进行编写调用,相应拉高和拉低来达到高低电平效果以控制LED灯传感器的开和关:

1、E53_SC1接口图
1、E53_SC1接口图
2、接上图1对应引脚为GPIO2
2、接上图1对应引脚为GPIO2
3、接上图2对应引脚PB9为需要操作引脚
3、接上图2对应引脚PB9为需要操作引脚

二、云平台层

云平台层是依托于腾讯物联网开发平台(IoT Explorer),在其上面进行产品创建和部署的。因为该开发平台和TencentOS tiny都是刚发布的,因此第一次使用都需要申请。整个接入开发云平台流程为:开发平台申请——>新建项目——>新建产品——>新建设备——>编写工程文件——>配置平台对接参数——>连接开发板(含传感器)烧录运行——>开发平台查看与调试(联动开发板)。

开发平台申请
开发平台申请

开发平台申请之后就跟着指引一步步创建项目、产品、设备即可,这几步都没坑(注意新建产品时通信方式选其它

随后和平台对应修改工程文件里产品名称、设备名称、设备密钥为自己创建的产品数据,当前电脑连接的WIFI账号密码(保持电脑、WIFI模块在同一网域内以通信)这几项数据:

三项修改为自己产品的
三项修改为自己产品的
WIFI账号密码修改
WIFI账号密码修改

这些做完后就算打通底层与云平台的通信了:

连接平台成功
连接平台成功

并且可通过平台直观的进行在线调试、下发指令等操作,通信日志也方便易读,这点上交互觉得做得还是比较好的:

平台直观观测和控制
平台直观观测和控制

再就是进行关键的平台操作LED灯传感器了,这点上说难也有难度(对我这种小白来说),说简单也比较简单。

像对我来说首先想到的是在工程文件里单独编写个控制逻辑的程序,再调用定义相关参数、功能的头文件,但后面发现很多参数和变量很不好找定义的位置,经过几天查看源码和查阅通过GPIO控制小灯传感器的一些资料都未成功,最终是无意看工程文件时发现light_data_template_sample.c有相关,包括显示控制灯颜色和亮度等的函数:

显示控制灯颜色和亮度的函数
显示控制灯颜色和亮度的函数

果然在这里面写开关灯控制函数,位置是正确的,也不用加太多东西就可实现功能了:

控制开关灯程序
控制开关灯程序

开发平台控制点亮LED灯效果
开发平台控制点亮LED灯效果

三、小程序终端层

小程序是本项目的展现终端,也是作为小工具产品定位的直接交互端,借助腾讯云的iotexplorer_mp_demo框架,和前面云平台层一样的思路,首先跑通基本通信逻辑,这里通过在app,js文件里修改自己的产品ID、设备名称、腾讯云secretId和secretKey即可跑通,实现和平台层一样的对开发板上OLED屏显示颜色、亮度的控制:

修改四项数据为自己的
修改四项数据为自己的

之后我想了想,决定在页面上也考虑重新布局和优化下,按照用户的使用习惯和控制逻辑来说,开关灯操作这是最高优先级,我得把“开关”设在醒目位置,随后开灯之后可以进行颜色和亮度更改,或选择在小程序端获取平台的数据,也即“查询”功能,最后一级为“发送”功能,向开发板上OLED屏及LED发送灯开关、屏亮(亮就显示灯颜色和亮度)、屏灭的控制指令。

小程序工作逻辑流程图
小程序工作逻辑流程图

先把开关解决,在index.wxml中写button:

加了个开关灯开关
加了个开关灯开关

再在index.js中把方法写上:

开灯控制图标关联
开灯控制图标关联

参照Demo中的两个框架,进行调用传参和写方法:

控制开发板的方法框架1
控制开发板的方法框架1
控制开发板操作框架2
控制开发板操作框架2

再就可以写核心的控制功能了:

控制灯开关程序
控制灯开关程序

四、最终效果演示

开灯
开灯
关灯
关灯

演示视频:

基于TencentOS tiny的SmartLight小工具

五、感受与鸣谢

从TencentOS tiny的开发板、软件开发方面来说,给的入门指南和软件工程包算非常详细了,只是有的细微地方会有省略,需要具备最基本的开发常识应该没什么问题,如果再在个别细致点上细致下,对小白用户的用户体验就完美了。再到IoTExplorer平台的操作和体验来说,交互和控制做得还是很方便、直观和易用的,只是有点小建议希望在通信、调试那栏各项的显示完整性上再优化下,和设备同时接入等偶尔存在掉线情况做下优化就更好了。

本次项目是借TencentOS tiny内测和IoTExplorer平台发布之际的机会所作,首先感谢相关团队大佬提供的内测开发板套件及内测软件包,更主要是整个迷你赛项目周期内,大佬们的耐心和专业指点迷津,包括TencentOS tiny开发团队的汪大、Arthur哥、硕哥、Royye哥,坚哥、张sir,参与本次内测&迷你赛的杰杰等大佬,我这块学过相关但搁置两三年了基本从零开始,整个过程下来有时间对我来说还是紧张,没做出最理想效果Demo,有事情堆积一起的排期考验,和自己开发这边硬件层面目前不是很给力等“煎熬”的地方,但更多的是挑战和收获,真的验证了进一寸有一寸的欢喜,这大概也是开发者的乐趣之一吧。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档