物联网中想控制设备,上传传感器数据,不可避免地需要协议,
目前物联网中有很多种协议,比如MQTT,CoAP,TCP,蓝牙BLE等等。
但是本文想讲的并非这部分协议,而是如何在物联网设备和服务器之间自定义协议,来传输你的数据或者状态等。

目录

  • 举例
  • 1.字符型协议
  • 2.json型协议
  • 3.HJ212协议
  • 总结


举例

以MQTT为例,你有一个温度传感器,想将温度数据上传到服务器。
可以分为以下几类

1.字符型协议

直接通过MQTT协议传输字符,如“23.5”,然后服务器开发人员和嵌入式开发人员沟通,表明这是一个温度的数值。
但是这种是最简单的方法,只适合你作为一个初学者、爱好者使用。

2.json型协议

json格式是一个键值对,你可以使用cjson来将你的数据转化为json格式,然后通过MQTT发送,关于cjson的使用,可以查看我的另一篇博客stm32实现json格式传输。

{
  "temp": 23.5
}

如果你有多个数值,使用json也是更方便的传递方法,因为json格式便于拓展。

{
  "temp": 23.5,
  "status": "good"
}

3.HJ212协议

问题在于,第一种字符型太简陋,第二种json格式便于拓展,但是没有对数据完整性的校验,
因此这里出现了第三种方式,
HJ 212-2017,国家环保行业制定的数据传输标准协议
早期有一个HJ 212-2005,最新的为HJ 212-2017
从业务的角度来说,这是最重要的一种方式,因为采用这种协议方式,你可以快速对接一些环保的监管平台,从而有利于项目开发。
官网搜索HJ 212即可搜到HJ 212标准的文件

协议的结构如下图所示。

物联网数据存入HBase 物联网数据传输方案_json


通信包的构成

物联网数据存入HBase 物联网数据传输方案_json_02

数据段的构成

物联网数据存入HBase 物联网数据传输方案_物联网_03


更详细的流程可以查看官网。

这个协议包含CRC校验,因此更完善,但是相对来说实现更难,更复杂。