前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第67篇技术报告,由毕方琦整理,题目为:
“ThingSet + Zephyr: 10分钟内无输出的设备连接”
作者简介
Martin Jäger
Martin Jäger是一名软件工程师,同时也是一名开源软件的强烈爱好者。
本文主要介绍了语义数据模型,配置项解析,ThingSet协议,数据传输和映射,ThingSet与Zephyr集成并演示了一个Demo。
嵌入式设备中的数据流
嵌入式系统收集的数据通过下面方式进行处理:
示例应用:在日落时分布拉格的恒温器
通过比较实际测量温度和目标温度来判断恒温器是否过热。
语义数据模型
模型配置
实现功能
可以从设备本身检索所有重要信息。
配置文件易于使用和人类可读(JSON文本模式)。
使用紧凑的内存占用(二进制模式下的cor和数字id)。
数据对象前缀
数据项
子集合
配置项解析
获取所有传感器值
更新目标温度
从实时度量子集中删除湿度传感器
传感器组报告
实时度量子集报告
改变目标温度
数据传输和相关映射
数据传输:面向消息、双向和可靠的通信渠道,透明地交换ThingSet消息。
ThingSet消息被转换成协议要求的本机格式。并非支持ThingSet的所有功能。
Zephyr集成
固件模块
需要使用的Zephyr组件
Demo演示
Zephyr RTOS v3.4
Nordic nRF52840 DK
Bosch BME680 Sensor
ThingSet App (Flutter)
四个模块集成为如下图所示:
在使用数据模型+ ThingSet Zephyr SDK后出现下面效果: