本人有幸参加了TencentOS内测活动,感受到了物联网操作系统方便,因为它提供了丰富的连接云平台的模板,只需要进行二次开发,就可以很快设计出自己的使用案例。对于TencentOS的各个功能的使用都有详细的测试代码,这对只会写任务而对操作系统却只是一知半解的我很有帮助。让我可以深入理解了操作系统的运行机制,知道如何让多个任务和谐共处,而不至于跑着跑着就死机了。
一、操作系统介绍
那么接下来我简单摘抄和截图官方提供的资料,为想学习它的爱好者提供些帮助。任何新东西都要好的资料才能吸引学习者的兴趣,来看看官网都提供了以下基础资料:
这里只透露TencentOS tiny产品简介,学习者想看其他资料的内容,等正式发布后你们就可以看到了,相信你们会爱不释手的。
1、TencentOS tiny是腾讯面向物联网领域开发的实时终端操作系统,具有低功耗,低资源占用,模块化,可裁剪等特性。
2、TencentOS tiny提供最精简的RTOS内核,内核组件可裁剪可配置,可灵活移植到多种终端MCU上。而且,基于RTOS内核,提供了COAP/MQTT/TLS/DTLS等常用物联网协议栈及组件,方便用户快速接入腾讯云IoT Hub。
3、TencentOS tiny为物联网终端厂家提供一站式软件解决方案,方便各种物联网设备快速接入腾讯云,可支撑智慧城市、智能水表、智能家居、智能穿戴、车联网等多种行业应用。
优势:
1.小体积:最小内核:RAM 0.6KB,ROM 1.8KB
典型LoraWAN及传感器应用:RAM 3.3KB,ROM 12KB
2.低功耗:休眠最低功耗低至2 uA
支持外设功耗管理框架,方便开发人员降低设备功耗,延长设备寿命。
3.丰富的IoT组件
集成主流IoT协议栈(MQTT、CoAP、LoRaWAN、NB-IoT等),多种通信模组SAL层适配框架,降低网络硬件适配时间成本。
支持OTA升级
提供简单易用端云API,加速用户业务接入腾讯云。
4.可靠的安全框架
多样化的安全分级方案,均衡安全需求和成本控制。
5.良好的可移植性
内核及IoT组件高度解耦,提供标准适配层,提供自动化移植工具,提升开发效率。
6.便捷的调试手段:
提供云化的最后一屏调试功能,故障现场信息自动上传云平台,方便开发人员调试分析。TencentOS tiny可以有效减少开发人员在任务管理、硬件支持、网络协议支持、安全方案以及文件系统、 KV 存储、在线升级等常用功能组件相关的开发中所需要的时间和工作量,并且能够快速高效的实现设备的低功耗运行,同时提供强大的开发调试功能, 减少开发测试人力成本,能够让客户的产品实现快速开发和快速上线交付。同时,极低的资源占用可有效降低客户产品对硬件规格的需求,可有效降低设备成本。
二、硬件介绍
可以说TencentOS tiny是比较人性化的,较少了开发者的工作量。我的智慧生活案例也是很快搭建起来的。我们来看看所用的物联网开发板:
开发板功能特性
CPU: STM32L431RCT6, 80MHz 显示屏: OLED,128*32 分辨率
存储: 256K Flash,64KB SRAM LED 灯 上电指示 LED,红色;
充电指示 LED,红色;
一个用户定义 LED,蓝色
系统: TencentOS tiny
主板供电: 通过 USB 5V 供电或者外
部 5V 供电
按键: 一个复位按键,四个功能按键
传感器 支持 E53 传感器案例扩
展板
通信 WIFI、LoRaWAN、NB-IoT、2G 等
n 电源特性
➢ Micro USB 接口,5V 供电
➢ 内部有 5V 转 3.3V 的 DCDC➢ MCU 供电电压为 3.3V,系统 IO 电压也为 3.3V
n 调试接口
➢ SWD 外接 ST-Link
➢ UART2 串口连接 PC
n XTAL
➢ 8MHz
➢ 32.768KHz
n 预留通用接口
➢ WAN interface(UART&SPI&GPIO)
➢ E53 Interface(UART、SPI、IIC、GPIO、ADC、DAC
三、方案结构图
四、在腾讯云平台新建项目
网址:https://cloud.tencent.com/
可以用微信号或QQ登录:
选择“物联网开发平台”,首次使用需要申请的,审核通过才能使用该功能:
新建项目:智慧生活
新建产品:智慧生活,产品类型为智慧生活,选择需要的功能和使用的传感器,这里也可以自定义,选用WIFI 模块,如果有数据模板,会自动调用已经有的数据模板。
新建自定义功能,在这里添加数据模板,尽可能把描述详细:
在设备调试界面新建设备,自定义设备名称,该名称在工程代码会使用到:
在工程的tos_hal_os.c中将上图红框的信息填入一下数组中即可
/* 产品名称, 与云端同步设备状态时需要 */
static char sg_product_id[MAX_SIZE_OF_PRODUCT_ID + 1] =" 填写产品ID";
/* 产品密钥, 与云端同步设备状态时需要 */
static char sg_product_secret[MAX_SIZE_OF_PRODUCT_KEY + 1] = "产品密钥 ";
/* 设备名称, 与云端同步设备状态时需要 */
static char sg_device_name[MAX_SIZE_OF_DEVICE_NAME + 1]="设备名称";
修改属性数量,和自定义数据变量:
添加上报云端的属性模板,小框内的“power_switch”须和云平台定义的数据一致。
我把采集的数据放在这个位置了,这样比较直观。
可以通过以下页面对开发板进行读写数据,只要开发板有数据上传,那么该页面就会自动更新上报的数据,还可以通过下发指令控制开发板,读取和控制的信息都会在右边的黑色框内显示。
完成效果:
可以看到设备已经在线,还读取到开发板发来的数据。
五、微信小程序开发
通过微信小程序可以采集开发板发来的数据,也可以通过发送控制指令来控制开发板上的灯和风扇,红外检测是用于检测是否有人靠近开发板。
如图所示,只需要修改产品ID和设备名称以及密钥ID和密钥就可以实现微信控制开发板了。没有微信开发经验的爱好者,可以先在官网的微信小程序网址注册并获得一个APPID,有了它才能正常在“微信开发者工具”软件里开发小程序,才能正常导入小程序模板。设计好之后如果要上线,或者通过真手机来打开小程序并实现控制,就还需要在小程序网址的开发栏中添加服务器地址。
在以下页面可以修改小程序界面和需要采集和控制的变量,这里数据变量必须对应云平台的数据,如果平台未定义,而只有小程序和开发板定义,那么小程序是无法读取该数据变量的值的。只有三方都定义了才能正常通讯。
通过小程序开发软件界面就可以采集数据和发送数据,下图就是小程序采集的数据和串口打印的数据,读取的数据都是正确的,从而实现远程控制。
小程序说明:亮度,温度 ,湿度,数据量,灯和风扇的状态都可以通过采集按钮来获取,由于目前还无法显示设备是否在线,所以通过数据量是否有递增来判断设备是否在线。
六、总结
通过此次【IOT迷你赛】TencentOS tiny内测活动,让我对物联网操作系统有更深的了解,改变了我以往的使用操作系统的使用习惯。能够依据提供的模板快速开始自己的demo,还是挺激动的。提供的开发板也是很给力的,可以对电池充电,可以随意更换无线模块和功能模块,实现不同应用场景下使用同一开发板,再也不会因为换传感器而要换板子了。
最满意的地方是提供了许多系统基础应用的案例,例如信号量,任务的挂起,运行,销毁等,这些对初学者很有帮助,如何使用物联网操作系统和深入理解一些操作系统的专业名词概念。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。