今年3月中,由腾讯TencentOS团队联合恩智浦半导体、安谋科技(Arm China)发起的线上开发者活动——TencentOS Tiny AIoT 应用创新大赛,评选出了优胜获奖者,本文介绍其中一个获奖作品。
有关本次活动的相关消息,请见:
《i.MX RT1062助力TencentOS Tiny AIoT应用创新大赛》
《2021 TencentOS Tiny AIoT应用创新大赛开启报名!》
一、背景介绍传统的公司会议室预约管理系统存在诸多问题,如:
部分人员不预定即使用,系统形同虚设。
提前结束会议后,很难准确释放会议室资源,造成浪费。
会议存在超时后,未及时预约或被抢先预约,被后来人打扰,浪费双方时间。
随性预定,实则未使用,实际使用率低。
管理人员难以管理,大量耗费人力管理成本。
难以统计真实使用情况,无法为管理提供有效数据。
诸如会议室等隐私场所,不能通过单纯的安装监控进行管理,实际管理中却又想得知是否有人在使用。为解决此类问题,会议室使用小助手横空出世。
二、项目介绍
本设备既可以单独使用,借助腾讯云平台也可以对接其他会议室管理系统使用,具有以下亮点:
支持人体检测,判断范围内有无人员活动
本地运行模型,图像用完即销毁,且无法导出,不存在隐私泄露问题
识别数据上传腾讯云,可接入第三方设备使用
支持腾讯连连小程序查看会议室使用情况与配置设备
支持定时唤醒识别(可配置开关,间隔时间)
支持声音触发识别(可配置开关,声音采样时间)
支持外接两个传感器或控制器使用(独立配置,支持设置触发与开关模式)
低功耗设计,电池供电(受限于板卡设计暂不支持)
支持屏幕显示图像与识别情况(调试使用,实际部署没有屏幕)
三、整体框图
四、硬件部分4.1 硬件框图
4.2 硬件组件
4.2.1 TencentOS Tiny AIoT开发套件
核心板采用的i.MX RT1062处理器属于i.MX RT系列MCU,是由恩智浦推出的跨界处理器,跨界是指该系列MCU的定位既非传统的微控制器、也非传统的微处理器,i.MX RT系列MCU则综合了两者的优势,既具备高频率(最高主频600M)、高处理性能,也具备中断响应迅速、实时性高的特点。
1M RAM 16M SDRAM 64MB qspi flash 128MB spi flash。
板载PCIE接口,可扩展4G类物联网模组。
板载物联网俱乐部WAN Interface接口,可支持NB-IoT、WiFi、4G cat1、LoRa等模组。
板载物联网俱乐部E53 Interface接口,可扩展全系E53传感器。
板载标准24P DVP摄像头接口,可支持最高500万像素摄像头。
板载RGB显示接口,可转换HDMI输出。
预留SD卡、用户按键、SPI Flash。
4.2.2 OV5640
4.2.3 LCD屏幕
4.2.4 ESP8266模组
4.2.5 外部传感器
(以上器件介绍部分省略,有兴趣的读者可查看原文)
五、软件部分5.1 代码逻辑框图
5.2 代码组件
5.2.1 TencentOS tiny物联网操作系统
TencentOS tiny是腾讯面向物联网领域开发的实时操作系统,现已捐赠给开放原子开源基金会进行孵化,具有低功耗,低资源占用,模块化,安全可靠等特点,可有效提升物联网终端产品开发效率。TencentOS tiny 提供精简的 RTOS 内核,内核组件可裁剪可配置,可快速移植到多种主流 MCU (如NXP Arm Cortex-M 全系列)及模组芯片上。而且,基于RTOS内核提供了丰富的物联网组件,内部集成主流物联网协议栈(如 CoAP/MQTT/TLS/DTLS/LoRaWAN/NB-IoT 等),可助力物联网终端设备及业务快速接入腾讯云物联网平台。
资源占用极少
TencentOS Tiny 内核具有超低资源占用的特点,RAM 0.8KB,ROM 1.8KB;在类似烟感和红外等实际场景下,TencentOS tiny 的资源占用仅为:RAM 2.69KB、ROM 12.38KB。
高效功耗管理框架
完整包含 MCU 和外围设备功耗管理,用户可以根据业务场景选择可参考的低功耗方案,有效降低设备耗电,延长设备寿命。
自动移植工具
TencentOS tiny 提供多种编译器快速移植指南和移植工具,可实现向新硬件开发板的一键移植,省时省力,有效提升开发效率。
最后一屏调试工具
TencentOS tiny 可以自动获取故障现场信息,并保持在端侧存储设备中,触发重启后会自动上传故障信息,可有效解决远程物联网设备故障信息获取难题,提升故障分析解决效率。
安全分级方案
TencentOS tiny 提供了多个等级的 IoT 安全方案。您可以根据业务场景和成本要求选择合适的安全解决方案,方便客户在安全需求和成本控制之间进行有效平衡。
5.2.2 TensorFlow Lite for Microcontrollers
TensorFlow Lite for Microcontrollers 是 TensorFlow Lite 的一个实验性移植版本,它适用于微控制器和其他一些仅有数千字节内存的设备。
适用于微控制器的 TensorFlow Lite 专门用于在微控制器和其他只有几千字节内存的设备上运行机器学习模型。核心运行时可以放入 Arm Cortex M3 上 16 KB 的存储空间中,并且可以运行许多基本模型。它不需要操作系统支持、任何标准 C/C++ 库或动态内存分配。
它可以直接在“裸机”上运行,不需要操作系统支持、任何标准 C/C++ 库和动态内存分配。核心运行时(core runtime)在 Cortex M3 上运行时仅需 16KB,加上足以用来运行语音关键字检测模型的操作,也只需 22KB 的空间。
功能和组件
C++ API,其运行时(runtime)在 Cortex M3 上仅需 16KB
使用标准的 TensorFlow Lite FlatBuffer 架构(schema)
为 Arduino、Keil 和 Mbed 等较为流行的嵌入式开发平台预生成的项目文件
针对多个嵌入式平台优化
演示口语热词检测的示例代码
5.2.3 其他组件
MQTT、cJSON由TencentOS提供,用于MQTT通信实现,JSON数据打包解包。
5.3 任务代码实现
5.3.1 主函数
初始化外设
初始化任务
启动TencentOS
5.3.2 默认任务
获取两个外接传感器电平状态
根据当前配置选项以及数据状态确定是否触发人体识别
休眠(当前暂未实现)
5.3.3 识别任务
进行摄像头图像采集
运行人体识别模型
将识别完成信号传递给mqtt数据上传任务
显示摄像头图像,与人体识别情况,调试用
5.3.4 mqtt数据上传任务
与esp8266模块进行AT通信,进行wifi连接
登录mqtt服务器,并订阅mqtt发布
根据识别任务的信号发布会议室状态消息到腾讯云
5.3.5 mqtt数据接受任务
接受并解析下行的MQTT数据
有效解析结果配置到设备设置
5.3.6 声音采集任务
进行声音的采集
确定当前外部声音状态,并将完成信号传递给默认任务
(以上小节的代码部分省略,有兴趣的读者可查看原文)
六、服务器部分6.1 云端
云端采用腾讯云IoT explorer平台,设备通过esp8266模块连接wifi入网。
6.2 客户端
客户端腾讯连连微信小程序,开发使用了标准面板,可以说超级超级简单了,而且效果还不错。
七、后记在开发中感觉TencentOS tiny特点,就是简单,无论是API的设计,还是部署的复杂度上都大大降低,源码的可读性也比较高,配套资料也很齐全,新手也能快速凭借文档入门。
腾讯云IoT explorer平台可以说是做到一站式开发,让我这个没有接触过云的新手也能快速上手,而且效果还不错,进阶开发也提供了相对应的接口,挺好的,之后的量产阶段并没有体验,不过看起来也是十分完善。
这个项目定位就是接入现有的会议室系统,让整个系统能够更好的形成闭环,因此在界面设计的时候就比较草率,不过好像也能考虑单独使用啊。
本来也想对手上的项目进一步优化,但是无奈年后实在没时间,只能暂时到此了,后期自行设计板卡时,会增加电子开关关断外部外设,追加蓝牙通信方式,增加深度休眠功能,充分发挥MCU低功耗特点,让设备也能部署于供电不方便的地方。
原文标题:AIoT应用创新大赛获奖作品精选:基于TencentOS Tiny 的会议室使用小助手
文章出处:【微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
审核编辑:汤梓红
-
mcu
+关注
关注
146文章
16984浏览量
350268 -
恩智浦半导体
+关注
关注
0文章
79浏览量
18453 -
TencentOS
+关注
关注
0文章
8浏览量
7312
原文标题:AIoT应用创新大赛获奖作品精选:基于TencentOS Tiny 的会议室使用小助手
文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论