06 | 物模型:如何定义智能电灯?
- 深入了解
- 翻译
- 解释
- 总结
物模型是数字化描述物理实体的模型,用于数字世界的数字模型。它通过属性、事件和动作来定义智能设备的特征和功能。物模型的定义采用JSON格式,包括布尔型、整数型、字符串型、浮点型、枚举型和时间型等数据类型。物模型的使用可以让应用程序不再针对单个产品设备,而是对同一类设备采用相同的处理逻辑,实现了应用开发的基础。物模型的规范化设计也方便了设备的功能定义和实现场景联动。在创建模型时,可以采用拷贝和继承两种模式,简化了模型的定义过程。此外,物模型的拓展应用包括设备影子和数字孪生的概念,以及它们在物联网和工业物联网领域的应用。设备影子用于缓存设备状态,实现应用程序和设备的解耦,解决了设备网络稳定性和多次请求的问题。数字孪生则是物理实体的数字化模型,集成了物理实体的各类数据,促进物理实体的优化,已在工业物联网领域得到广泛应用。物模型在物联网系统开发中发挥着重要作用,为应用开发提供了统一的数据模板,方便了场景联动的实现,同时为平台上实现设备影子提供了基础。类似地,数字孪生也是建立在物理实体的数字模型之上的重要技术方向。文章还提出了一个思考题,要求读者定义一个环境温湿度传感器的物模型,以加强学习效果。
《物联网开发实战》,新⼈⾸单¥59
全部留言(26)
- 最新
- 精选
- Nior结合厂商实际文档加深理解: 华为IoT物模型文档:https://support.huaweicloud.com/usermanual-iothub/iot_01_0017.html 小米IoT物模型文档:https://iot.mi.com/new/doc/standard/miot-spec/spec
作者回复: ������
2020-11-25522 - doulefi123物模型给我启发太大了,因为我是半路出家,现在我们的设备用mqtt订阅了多条消息(开、关等各种动作),如果改成物模型,订阅一条消息就可以了,相对经济些。再加上场景控制联动,能实现自由形式的功能。
作者回复: 谢谢你的留言,多交流!
2020-11-2012 - Socrakit//环境温湿度传感器 { "version": "1.0", "properties": [ { "id": "temperature", "name": "温度", "desc": "环境温度", "mode": "rw", "define": { "type": "float", "unit": "℃", "step": "0.5", "min": "-40.0", "max": "120.0", "start": "0" } }, { "id": "humidity", "name": "湿度", "desc": "环境湿度", "mode": "rw", "define": { "type": "float", "unit": "%", "step": "1", "min": "0", "max": "100", "start": "0" } }, { "id": "temperature_limit", "name": "温度上下限", "desc": "温度上下限", "mode": "rw", "define": { "type": "float", "max": "80", "min": "-10" } , { "id": "humidity_limit", "name": "湿度上下限", "desc": "湿度上下限", "mode": "rw", "define": { "type": "float", "max": "60", "min": "20" } } ], "events": [ ...... { "id": "low_humidity", "name": "LowHumidity", "desc": "Alert for humidity is low", "type": "alert", "required": false, "params": [ { "id": "humidity", "name": "Humidity", "desc": "Current Humidity", "define": { ..... } } ] }, { "id": "excess_temperature", "name": "ExcessTemperature", "desc": "Alert for excess temperature", "type": "alert", "required": false, "params": [ { "id": "temperature", "name": "Temperature", "desc": "Current temperature", "define": { ..... } } ] }, ...... ], ...... }
作者回复: ������赞 温度、湿度的mode可以改为只读r
2020-11-225 - 胡黎红tsl是标准么?
作者回复: 还没有统一的标准,各家平台都有自己的定义。
2020-11-234 - marquis// 温湿度传感器的物模型设计 { "version": "1.0", //模型版本 "properties": [ //属性列表 { "id": "temp", //检测环境温度的属性 "name": "温度检测", "desc": "检测设备周围环境的温度", "required": true, "mode": "rw", //write是为了厂测模式进行校准。正常使用下不允许w,只能r "define": { "type": "float", "unit": "℃"||"℉", "step": "1", "min": "0.0", //根据产品实际测试能力修改 "max": "80.0", //根据产品实际测试能力修改 "start": "1" } }, { "id": "humidity", //检测环境相对湿度的属性 …… }, { "id": "Hightemp_threshold", //高温阈值 "name": "高温阈值", "desc": "高温报警阈值", "required": false, "mode": "rw", "define": { "type": "float", "unit": "℃"||"℉", "step": "1", "min": "-10.0", "max": "80.0", "start": "1" } }, { "id": "Lowtemp_threshold", //低温阈值 …… }, { "id": "HowHumidity_threshold",//高湿阈值 …… }, { "id": "LowHumidity_threshold",//低湿阈值 …… }, ], "events": [ //事件列表 { "id": "high_temp", //高温告警 "name": "Hightemp", "desc": "Alert for temp is high than threshold", "type": "alert", "required": false, "params": [ { "id": "temp", "name": "Hightemp", "desc": "Current temp", "define": { "type": "float", "unit": "V", "step": "1", "min": "0.0", "max": "24.0", "start": "1" } } ] }, { "id": "low_temp", //低温告警 …… }, { "id": "high_humidity", //高湿告警 …… }, "id": "low_humidity", //低湿告警 …… }, { "id": "low_voltage", //供电电压不足告警 …… }, ], "actions": [], //动作列表 …… }
作者回复: ������大赞
2020-11-273 - marquis谢谢郭老师。在TSL物模型中,我主要学习到三个关键参数“属性,事件和动作”之间的关系。 用自己的话总结:属性,是产品能到达的某种状态。而有了属性,使用者才能通过应用去控制产品到达某种属性状态,这就是动作。事件就是产品在遇到主动完成属性切换或者被动检测到属性变换事件,上报给应用的信息。
作者回复: ������
2020-11-262 - 贤伟Lwm2m 协议中把物理实体都看作资源(resource),可以使用 XML 格式定义资源集合(标准和扩展的 )。使用路径Object/ObjectInstance/Resource/ResourceInstance 来操作资源(读、写、执行、订阅)。我理解和文中的属性相似,只是已经集成进了协议里,作为M2M沟通的通用语言。
作者回复: ������ 是的,LwM2M是基于IPSO定义的这些,相比来说,它要比MQTT和CoAP这些应用层更进一步。
2020-11-2032 - lgtao郭老师能否讲讲物模型在实际物联平台开发过程中具体怎么落地实现?有什么最佳实践案例?
作者回复: 可以借鉴腾讯、阿里等平台的功能实现,在这个过程中结合自己的需求做调整。
2021-01-231 - FreeMason工业物联网(本人互联网,因知识局限性,可能有误差) 动作(服务)这块好实现吗?感觉工业级对低延时、稳定要求应该很高。进行动作操作时,感觉像是请示-响应模式,如何知道设备接收指令成功并且正常执行了(类似Qos),但对于工业级出现较高延时与异常(执行未成功)或指令重复应该是比较严重的事情,延时可以使用 5G 来解决,但在可靠性稳定性与指令重复上现有可靠的方案吗?
作者回复: 👍思考很深入 要看场景,比如自动驾驶,也对实时要求很高。所以需要边缘计算。 我们在这里讨论物联网,但是一些场景还是需要一体的系统,加上实时操作系统,并不一定所有数据要联网处理
2020-12-0821 - 钦开老师,您觉得边缘计算和物联网是一种什么关系呢?
作者回复: 这个在网关那节我会讲到。简单说物联网需要边缘计算。
2020-11-2021