本文以JT/T 808协议云网关一方认证的方式为例,介绍如何将JT/T 808协议设备接入物联网平台。
前提条件
已购买尊享型企业版实例。本示例购买华东2(上海)地域的尊享型实例。具体操作,请参见购买企业版实例。
背景信息
物联网平台的JT/T 808协议云网关功能支持通过TCP(安全性低,不推荐)和TLS两种方式接入设备。采用TLS方式接入时,支持使用服务端单向认证、设备端OCSP、设备和服务端双向安全接入等能力。本文使用一方认证的TLS(推荐)和TCP(不推荐)方式,介绍JT/T 808协议设备的接入示例。
准备工作
本文设备端开发示例使用开发环境:Ubuntu 22.04版本操作系统。
接入示例(TLS,推荐)
自定义证书
本文示例需自定义证书包含:根证书root-ca.crt
、服务端证书私钥server.key
和服务端证书server.crt
。
您可以使用OpenSSL工具生成自定义证书,制作方法,请参见生成自定义证书。
创建云网关产品
登录物联网平台控制台。
在控制台左上方,选择物联网平台所在地域。
在实例概览页面,单击目标尊享型实例。
在左侧导航栏,选择设备管理>云网关,单击添加云网关。
在对话框中配置如下参数,如下图所示,服务端证书私钥为
server.key
和服务端证书为server.crt
,然后单击确认。配置参数的详细说明,请参见创建云网关产品(JT/T 808)。
云网关创建完成后,在云网关列表,复制网关URL保存。
添加云网关设备
在左侧导航栏选择设备管理>产品,找到已创建的云网关产品,单击右侧操作列的管理设备。
在设备页面,单击批量添加。
在批量添加设备对话框,单击下载.csv模板下载表格模板。
在模板中填写Manufacturer ID、Terminal Model和Terminal ID,如下图所示,然后保存文件。
参数填写说明,请参见创建云网关设备(JT/T 808)。
回到批量添加设备对话框,单击上传文件,将填好的文件上传至物联网平台控制台,单击确认。
设备身份导入成功后,物联网平台会以上传的Manufacturer ID、Terminal Model和Terminal ID值,拼接成
${Manufacturer ID}_${Terminal Model}_${Terminal ID}
作为设备名称创建对应设备,设备列表显示已创建的设备信息。
开发设备端程序
创建设备信息后,需开发设备端程序,将设备接入物联网平台。 物联网平台提供JT/T 808协议的C语言SDK,本示例以接入设备AliyunIoT_TestModel_device1为例,使用 C SDK开发设备连接物联网平台。
下载JT/T 808协议的C语言SDK,然后解压文件出
jt808-c-sdk
。在
jt808-c-sdk/jt808_tls_demo.c
文件中,修改设备接入和认证的信息。说明jt808_tls_demo.c
程序文件用于开发TLS方式的设备接入。...... /* TODO: 替换为真实的设备信息,省份,城市,厂家,型号,终端ID、颜色、车牌号 */ static jt808_register_t info = { .province = 0x1234, .city = 0x4567, .manufacturer = "AliyunIoT", .model = "TestModel", .terminal = "device1", .colour = 1, .lisence = "浙C*****", }; /* TODO: 绑定的手机号 */ static char *moible_num = "1*********8"; /* TODO: 替换为云网关接入点域名和端口 */ static char *host = "iot-0******.igw.iothub.aliyuncs.com"; static uint16_t port = 7999; /* 接入点自定义根证书 */ const char *jt808_ca_cert = \ { \ "-----BEGIN CERTIFICATE-----\r\n" "MIIDR*************************************************ZIhvcNAQEL\r\n" "BQAwM*************************************************ANBgNVBAMM\r\n" "BklvV*************************************************MxCzAJBgNV\r\n" "BAYTA*************************************************QgQ0EwggEi\r\n" "MA0GC*************************************************S8fWxBF+lw\r\n" "8GKH7*************************************************3Xco/COMjP\r\n" "Q69QH*************************************************wuYc0WMjlS\r\n" "cNO7G*************************************************BABPEIJeLR\r\n" "c6rJ7*************************************************F8nDOm0kUd\r\n" "kvAdK*************************************************t6BEh9AgMB\r\n" "AAGjU*************************************************NVHSMEGDAW\r\n" "gBT4S*************************************************0GCSqGSIb3\r\n" "DQEBC*************************************************+I42UNjbJa\r\n" "ZP9bn*************************************************G+S/Tv6BEn\r\n" "2v1/V*************************************************zNWlwapdvp\r\n" "DRMmf*************************************************Vh/FVBa7gn\r\n" "9DWlU*************************************************AGz0HkVQq6\r\n" "Ks4UI***************************Vzd+\r\n" "-----END CERTIFICATE-----\r\n" }; ......
参数
说明
province
设备所在省域和城市,取值符合JT/T 808的2019版本协议要求。
city
manufacturer
在物联网平台添加的云网关设备的Manufacturer ID、Terminal Model和Terminal ID。
model
terminal
colour
车牌的颜色、车牌号,及设备所属用户的手机号。车牌的颜色、车牌号取值符合JT/T 808的2019版本协议要求。
lisence
moible_num
host
JT/T 808协议云网关的接入地址,即已创建云网关产品的网关URL中域名。
port
设置为自定义端口号,默认为
7999
。jt808_ca_cert
设置为根证书
root-ca.crt
的内容。登录Ubuntu操作系统,然后上传已经修改的
jt808-c-sdk
文件。在根目录
/jt808-c-sdk
下,执行make
命令,完成样例程序的编译。make clean make
生成的样例程序
jt808-tls-demo
存放在./output
目录下。运行样例程序。
./output/jt808-tls-demo
运行成功后,设备在线,上报数据,如下图所示:
返回到物联网平台控制台的对应实例下,在左侧导航栏选择设备管理 > 设备,找到目标设备,查看设备状态。设备状态显示为在线,则表示设备与物联网平台成功连接。
在左侧导航栏选择监控运维 > 日志服务,选择目标产品,查看设备到云消息。
接入示例(TCP,不推荐)
创建云网关产品和设备
创建云网关产品(JT/T 808):配置如下图所示。
云网关创建完成后,在云网关列表,复制网关URL保存。
创建云网关设备(JT/T 808):添加设备如下所示。
开发设备端程序
物联网平台提供JT/T 808协议的C语言SDK,本示例以接入设备AliyunIoT_TestModel_device1为例,使用 C SDK开发设备连接物联网平台。
下载JT/T 808协议的C语言SDK,然后解压文件出
jt808-c-sdk
。在
jt808-c-sdk/jt808_basic_demo.c
文件中,修改设备接入和认证的信息。说明jt808_basic_demo.c
程序文件用于开发TCP方式的设备接入。...... /* TODO: 替换为真实的设备信息,省份,城市,厂家,型号,终端ID、颜色、车牌号 */ static jt808_register_t info = { .province = 0x1234, .city = 0x4567, .manufacturer = "AliyunIoT", .model = "TestModel", .terminal = "device1", .colour = 1, .lisence = "浙A*****", }; /* TODO: 绑定的手机号 */ static char *moible_num = "1**********"; /* TODO: 替换为云网关接入点域名和端口 */ static char *host = "iot-0******v-0****0.igw.iothub.aliyuncs.com"; static uint16_t port = 7999; ......
登录Ubuntu操作系统,然后上传已经修改的
jt808-c-sdk
文件。在根目录
/jt808-c-sdk
下,执行make
命令,完成样例程序的编译。make clean make
生成的样例程序
jt808-basic-demo
存放在./output
目录下。运行样例程序。
./output/jt808-basic-demo
运行成功后,设备在线,上报数据,如下图所示:
您可返回到物联网平台控制台的对应实例下,查看设备状态和通信日志。