首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【IoT迷你赛】手把手系列-基于TOS & IoT Explorer的物联网智能闹钟实践

【IoT迷你赛】手把手系列-基于TOS & IoT Explorer的物联网智能闹钟实践

原创
作者头像
肠粉和包子
修改于 2019-08-29 03:21:56
修改于 2019-08-29 03:21:56
4.3K1
举报
文章被收录于专栏:腾讯云IoT腾讯云IoT

本文适用于和我一样初识物联网业务开发与开发平台的读者朋友,让我们以我做的智能闹钟为例,一起来学习下基于腾讯的TencentOS tiny和IoT Explorer开发物联网小案例的步骤吧。

背景

我在7.27日参加了腾讯云IoT在滨海大厦举办的“物联网技术与应用”技术沙龙,这次沙龙针对腾讯云IoT全栈产品进行了介绍,包括物联网开发平台(IoT Explorer)、物联网操作系统(TencentOS tiny),恰逢这两个产品都在内测中,我就报名了本次“IoT迷你赛”内测活动,有幸成为TencentOS tiny 和 IoT Explorer的第一批体验用户,还领取了一套操作系统的定制开发板EVB_MX,可以拿来实践自己的物联网idea啦~

设计方案

物联网背后的意义是产品服务化,赋能传统产品去提供更多互联网和物联网新性能。比如一款物联网跑鞋,可以为消费者提供跑步数据分析的新服务,制造业厂商也可以了解产品使用情况,还可以同保险、医疗等行业协同带来更多商业价值。

而产品服务化就需要真正站在客户立场上思考,回顾自己这些年学生时代艰难的起床生涯,我决定为和我一样的睡不醒星人想想办法,结合物联网来扩展普通闹钟的功能和服务。值得一提的是,18年9月的时候小米在其新品发布会结束之际公布了一款小爱智能闹钟,它最大的亮点就是集成了小爱同学,但语音互动、娱乐广播等功能似乎偏离了闹钟叫醒的本质定位。

小爱闹钟外形 (左),小爱闹钟功能梳理 (右)
小爱闹钟外形 (左),小爱闹钟功能梳理 (右)

于是乎我想通过本次内测机会,实现一款能够深化叫醒功能的物联网智能闹钟,譬如通过灯光辅助叫醒、结合应用端(小程序)分析起床数据规律作息、通过打卡好友督促与商城奖励的方式激励用户养成早起习惯。我给这款闹钟命名为LightUp Recorder,让用户早起更轻松,让闹钟不再单单是一个工具型产品。实现方案框架与Demo功能分别如下:(功能详细描述见文末演示视频

案例框架
案例框架
智能闹钟Demo功能(详细描述见文末演示视频)
智能闹钟Demo功能(详细描述见文末演示视频)

腾讯云IoT产品介绍

  • TencentOS Tiny

腾讯面向物联网领域开发的实时操作系统,小体积,低功耗,IoT组件丰富,移植性好,调试便捷。由轻量级 RTOS 内核与多个物联网组件构成。详细操作系统架构介绍

腾讯云物联网操作系统内测源码目录
腾讯云物联网操作系统内测源码目录
  • IoT Explorer

腾讯云物联网开发平台,提供便捷的开发工具与服务,助力更高效的完成设备接入,并提供应用开发及场景服务能力,帮助高效、低成本构建物联网应用。详细产品介绍

腾讯云IoT全栈产品矩阵(图源:腾讯云IoT微信公众号)
腾讯云IoT全栈产品矩阵(图源:腾讯云IoT微信公众号)
腾讯云物联网开发平台产品架构
腾讯云物联网开发平台产品架构
  • 定制开发板

EVB_MX 是腾讯物联网团队联合南京厚德物联网有限公司设计的一款物联网评估板, 用于 TencentOS tiny 基础内核和 IoT 组件功能体验和评估。

准备工作

1、购买硬件模块

  • 音频模块 JQ-8400FL
  • 时钟模块 DS1302
  • 温湿度传感器 DHT11
  • 陀螺仪 MPU6050
  • Wi-Fi模块 ESP8266 (开发板配套提供)
  • 智慧路灯模块 E53_SC1(包含光敏传感器) (于腾讯云物联网合作伙伴南京厚德物联网购买)

2、申请产品内测权限

申请腾讯云物联网开发平台内测:腾讯云官网-产品-企业应用-物联网开发平台-立即申请。

开发实践

一、验证软硬件

1、编译操作系统代码

拿到操作系统源码和开发板后,将串口驱动,st-link驱动安装好之后,打开工程开始编译。

先找到工程文件:在board文件夹里选择开发硬件TencentOS_tiny_EVB_MX开发板,再选择文件夹KEIL,这里为了方便我选择了里面提供的建立好了数据模板的工程tencent_cloud_sdk_data_template,打开下图的keil工程,并编译这个模板工程。

编译结果出现了很多错误,提示文件找不到,查看头文件路径,发现头文件路径都添加了,发现是文件路径中出现了中文,关闭工程将文件路径中的中文改成英文,编译通过。

2、烧录:通过stlink下载程序到开发板

测试操作系统能否进行简单的任务创建,任务调度,栈空间分配等基本的RTOS操作。通过串口的简单打印就可以判断,新建测试线程如下图:

测试线程打印信息如下:

任务交替地运行,时间与设计的运行时间基本符合,这一步验证结束。

二、终端与物联网开发平台的互通性

(一)验证wifi模块

1、创建热点,在代码中修改wifi名称、密码。

2、通过串口助手测试wifi,串口提示wifi connected说明连接成功。

(二)终端代码适配

1、在物联网开发平台新建项目、产品和设备,创建与模板工程中对应的数据模板。

2、在终端代码中修改产品数据:产品ID、设备名称、设备密钥。

3、烧录调试终端代码,验证连通终端与物联网开发平台。

三、拓展数据模板

根据开发需求进行数据模板的增删工作。

1、增删平台设备的数据模板

2、增删终端设备的数据模板

修改的文件不变,初始化数据结构体。

修改数据接收处理,通过key标识来区分。

四、模块嵌入式开发

1、添加模块驱动文件将之前的模块的.c和.h文件添加到到Hardware文件夹下,加入工程,部分平台已经编写,自己添加的模块需要自己来适配。

2、本地模块的交互逻辑处理

创建每个模块的运行任务,处理本地的业务逻辑,给数据上报和下发任务提供程序接口。

示例:闹钟报时任务

备注:音频模块开发中语音合成部分使用腾讯云的语音合成TTS实现。

五、数据映射

这里开始实现数据的上报和下发逻辑,在平台数据发生改变时,下发的数据逻辑触发对应的开。同样是light_data_template_sample.c文件。

以数据下行为例,触发下行接口会更新数据模板结构体,通过判断结构体中的数据来实现下行用户数据逻辑。

上行逻辑类似 ,部分数据上报:

六、应用端开发

1、基于微信开发者工具的云平台进行开发。建立小程序功能页面如下:

2、建立云环境,在云环境中建表分别存储用户设置的闹钟和打卡时间。

3、熟悉物联网开发平台设备管理相关接口、数据查询相关接口。

4、小程序通过云函数与物联网开发平台连接。

(1)在小程序中设置API所需的四个参数:产品ID、设备名称、访问秘钥

(2)建立云函数query、control。query用于设备数据查询,control用于设备属性控制。

(3)通过终端npm局部安装Tencent Cloud SDK 3.0 for NodeJS;

(4)将云函数及其相关依赖上传并部署到云环境中。

(5)使用云函数获取设备数据。

(6)使用云函数控制设备属性。

在这里出现了错误,使用小程序云函数控制设备属性之后,物联网平台就无法获取设备影子,接收设备上传的数据了,具体原因未明。

debug过程:

  • 在开发平台重建设备。设备与平台的连接没有问题,上下行运行正常。
  • 通过平台提供的在线API,测试请求是否有误(如下图所示,设置闹钟时间及铃声,在线请求后,平台的数据改变,说明请求代码无误。)

在线API使用方法:

首先将SecretId、SecretKey、Region、ProductId、DeviceName以及Data填完整,Data的格式是对象。其次选择node.js,自动生成代码。最后点击在线调用的发送请求,得到相应结果。

5、通过以上查找错误的过程,将错误击中在云函数中,初步怀疑是云环境对请求API造成一些影响。于是不采用云函数,使用操作系统中与智能灯配套的微信小程序demo中的sdk。该sdk是根据官方的node.js的sdk进行修改做出的适配小程序的接口。

(1)获取设备属性:

(2)控制设备属性:

问题得到解决,用户可以通过小程序获取设备信息以及控制设备属性。

6、界面优化以及代码优化。

效果演示

视频时长5min

写在最后

作为物联网行业的初学者,通过对这款智能闹钟的设计与开发,我对基于物联网开发平台的开发流程,操作系统的任务调度都有了清晰的认识。虽然这是我第一次接触并使用物联网操作系统和物联网开发平台,但比赛周期中我在这两个环节花费的时间占比并没有很多,更多的时间是在实现业务逻辑,可见产品的易用性以及对开发效率的提升。TencentOS tiny的说明文档丰富清晰,给了我很大的帮助。而通过IoT Explorer可以快速接入设备,定义数据模板快速实现产品功能。另外比赛提供的开发板也很精美,又可以愉快地发朋友圈了。

很感谢能够参与到比赛中,虽然demo的功能并没有完美,但从硬件终端到应用端,第一次完整设计出自己的小产品还是非常有成就感,挑战很多收获也很多。过程中也会“煎熬”,比如WiFi不稳定设备有时会掉线需要重启,另外在使用小程序云函数控制设备属性之后,平台就无法获取设备影子,当时那几天我深深被串口输出一连串R然后报错的恐惧支配着,欢迎有知晓原因的大佬帮忙指点。

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

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

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

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

评论
登录后参与评论
1 条评论
热度
最新
有一些问题 方便问您么
有一些问题 方便问您么
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
【IoT迷你赛】陪小孩入睡的智能灯
初衷打算要做一个智能课桌,由于时间和资源以及能力不足的原因,就先做智能课桌上的灯。期望这个灯能陪小孩入睡(小孩睡觉要开着灯),等小孩入睡了再自动关闭。总之需求如下:
用户5568864
2019/08/27
8180
【IoT迷你赛】物联网与小程序的邂逅
伴随着数字化经济大潮的推进,物联网行业近些年发展非常迅猛,呈现出百花齐放的姿态,是产业互联网的排头兵。小米以产品矩阵的方式介入物联网,华为以芯片入局、芯云结合打造全链条的物联网,腾讯云则以云平台为中心,构建开放的物联网开发平台。本文以TencentOS物联网Iot迷你赛的机会,以开发者的视角深入探讨腾讯云物联网开发模式。
WX-有雨
2019/08/21
2.2K0
【IoT迷你赛】物联网与小程序的邂逅
【IoT迷你赛】我的“路虎”终于上云了
非常荣幸能有机会参加TencentOS Tiny内测,不得不说这次内测体验真的不错,源码、教程、学习资料一应俱全,内测群中的氛围也是非常棒,看了大家的提交的作品不禁感慨腾讯真是大佬云集,也是非常难得的一次经历。下面分享一个利用IoT开发版让“路虎”成功上云的案例。
用户3028655
2019/08/28
9970
腾讯云物联网开发平台 IoT Explorer 全面指引
腾讯云 IoT Explorer 是腾讯云主推的一站式物联网开发平台,所谓一站式,就是包含了设备侧到应用侧安卓iOS app,甚至小程序的全链条开发支持。
twowinter
2020/04/17
6.3K0
【IOT迷你赛】智慧照明
很荣幸参加这次的TencentTiny内测,切身体会了IOT的魅力认识到其市场价值,在月初收到腾讯工作人员寄来的开发板感觉特别的荣幸--能与腾讯近距离沟通学习 ,通过这次的切身摸索自认为算是对嵌入式开发入了门对C语言复习了一番(大学时学过毕业几乎没用起)更是对硬件有了新的认识和理解;
格创苗兴航
2019/08/28
8410
【IoT迷你赛】硬件小白跳坑记
先上一张官方的系统架构图,TencentOS tiny的架构可以适用于分层架构和组件化架构。从底部到顶部,TencentOS tiny包括:
小强--前端开发
2019/08/28
9490
【IoT迷你赛】硬件小白跳坑记
【IoT迷你赛】LoRaWAN设备上云初探
随着物联网技术的快速普及,越来越多终端设备将接入到云端。LoRa/LoRaWAN作为一种新兴的物联网通信技术,逐步进入大众的视野里。相比于Zigbee,蓝牙以及常用的无线射频技术,其传输距离更远,且协议也包含了无线电以及以太网等组网方案,比较适合智慧城市等场景的建设。
用户2511058
2020/04/17
1.2K0
【IoT迷你赛】基于TencentOS tiny&IoT Explorer的智能灯
该作品方案针对智慧城市-公共事业-路灯照明场景,基于TencentOS tiny&IoT Explorer进行设计,可实现城市路灯智能化监控、数据自动采集、多端控制与智能调光。以下是场景应用展示:
用户1691356
2019/08/22
1.7K3
【LoRa社区网关点亮活动】基于腾讯云IoT Explorer搭建开放的LoRaWAN网络
IoT Explorer是腾讯云打造的一站式物联网开发平台,腾讯云IoT Explorer从设备接入上提供多种完善的通信对接模式,本文内容主要涉及到IoT Explorer中的物联网操作系统TencentOS tiny与基于LoRa通信的LoRa社区网络(LoRaWAN)。
forest-rain
2020/10/18
3.9K1
【LoRa社区网关点亮活动】基于腾讯云IoT Explorer搭建开放的LoRaWAN网络
手搓一个分布式大气监测系统(二)架构介绍及案例解析
为了跟踪小区级的微环境质量,腾讯内部发起了一个实验性项目:细粒度的分布式大气监测。
twowinter
2020/05/12
3.2K0
手搓一个分布式大气监测系统(二)架构介绍及案例解析
腾讯物联网操作系统正式开源,最小体积仅1.8 KB
9月18日,腾讯宣布将开源自主研发的轻量级物联网实时操作系统TencentOS tiny。相比市场上其它系统,腾讯TencentOS tiny在资源占用、设备成本、功耗管理以及安全稳定等层面极具竞争力。该系统的开源可大幅降低物联网应用开发成本,提升开发效率,同时支持一键上云,对接云端海量资源。 近年来,腾讯在开源上的步伐不断加快,截至9月,腾讯自主开源项目已达84个,Star数超过24万。在物联网领域,腾讯不仅通过开源和开放持续构建良性的物联网生态体系,在产品易用性和开发效率上,腾讯物联网团队也都做了
腾讯技术工程官方号
2019/09/20
2.8K0
腾讯物联网操作系统正式开源,最小体积仅1.8 KB
【IoT迷你赛】设备联动小应用
在腾讯云 IoT Explorer 和 TencentOS tiny 开放公测之后。腾讯云IoT产品矩阵再次集成了新的能力 – LoRa(名字来自于 Long Range ,远距离无线电),这是目前物联网领域内最炙手可热的无线技术。它最大特点就是在同样的功耗条件下比其他无线方式传播的距离更远,实现了低功耗和远距离的统一。
用户4699511
2020/04/13
3.5K2
【IoT迷你赛】设备联动小应用
2020 Techo Park 物联网动手实验室
链接:https://share.weiyun.com/O9pp9Esj 密码:qq6dns
fancyxu
2020/12/24
7710
【IoT迷你赛】LoRa开发套件 温度监测 预警
由意法半导体设计的 LoRaWAN 开发套件,包含 LoRa 节点和网关,其中 LoRa 节点可运行 TencentOS Tiny。
用户1649206
2020/01/29
9620
【IoT迷你赛】LoRa开发套件  温度监测 预警
【IoT迷你赛】从一场王者荣耀比赛诞生出的物联网浇花神器
7月25日晚,TEG王者荣耀大赛正式开打,首局比赛,“深圳湾一号业主”爆冷摧残了“祖国的花朵”。
two2winter
2019/08/28
9790
【IoT迷你赛】从一场王者荣耀比赛诞生出的物联网浇花神器
[IoT迷你赛]基于TencentOS tiny的SmartLight小工具
本项目基于TencentOS tiny(腾讯物联网操作系统)构建了一款智能灯小工具产品。整个产品架构上分为硬件底层、云平台层和小程序终端层,利用官方的Demo框架可迅速打通三层的基本通信逻辑,再对相应接口的调用及方法改写便可创作出自己需要的产品项目来,这也是本项目的构建思路,下面开始详细介绍。
梦to鑫
2019/08/28
1.7K0
[IoT迷你赛]基于TencentOS tiny的SmartLight小工具
腾讯云物联网TOS_EVB_G0开发板配网引导
为了解决部分终端设备配网不便的问题,腾讯云物联网平台推出了腾讯连连给终端设备配网的功能。当前市场上较为主流的配网方式均已支持,例如Soft AP,Smart Config,AirKiss,Ble辅助配网等。
es
2020/12/17
1.7K0
腾讯云物联网TOS_EVB_G0开发板配网引导
开发板免费领!腾讯云IoT应用创新大赛正式启动!
腾讯云IoT应用创新大赛是腾讯云面向物联网领域举办的大型竞赛,通过腾讯云IoT全链路产品能力,开放平台和服务,与广大开发者共同创新,孵化优秀的IoT产品和解决方案,共同构建IoT应用生态。
腾讯云物联网团队
2019/12/31
6.1K0
开发板免费领!腾讯云IoT应用创新大赛正式启动!
腾讯物联网操作系统正式开源,最小体积仅1.8 KB
9月18日,腾讯宣布将开源自主研发的轻量级物联网实时操作系统TencentOS tiny。相比市场上其它系统,腾讯TencentOS tiny在资源占用、设备成本、功耗管理以及安全稳定等层面极具竞争力。该系统的开源可大幅降低物联网应用开发成本,提升开发效率,同时支持一键上云,对接云端海量资源。
用户1532637
2019/09/18
1.7K0
腾讯物联网操作系统正式开源,最小体积仅1.8 KB
ST Nucleo LoRa Sensor 开发板接入腾讯云物联网开发平台
我的朋友松B曾经说过,土豆很好吃,牛肉很好吃,土豆炒牛肉随便怎么炒都难吃不到哪里去。 Nucleo 好玩,LoRa 好玩,那么 Nucleo + LoRa 也一定不会让人失望。
twowinter
2020/04/17
2.6K0
推荐阅读
相关推荐
【IoT迷你赛】陪小孩入睡的智能灯
更多 >
LV.0
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档