全部产品
Search
文档中心

阿里云物联网平台:JT/T 808协议云网关设备接入示例(一方认证)

更新时间:Aug 21, 2026

本文以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工具生成自定义证书,制作方法,请参见生成自定义证书

创建云网关产品

  1. 登录物联网平台控制台

  2. 在控制台左上方,选择物联网平台所在地域。

  3. 实例概览页面,单击目标尊享型实例。

  4. 在左侧导航栏,选择设备管理>云网关,单击添加云网关

  5. 在对话框中配置如下参数,服务端证书私钥server.key服务端证书server.crt,然后单击确认

    配置参数的详细说明,请参见创建云网关产品(JT/T 808)

    • 云网关名称:填写JT808接入示例TLS

    • 协议:选择JT/T 808

    • 自定义端口号:填写7999

    • 认证类型:选择一方认证

    • 传输协议:选择TLS

    • 是否开启设备X.509证书认证:选择

    • 是否开启OCSP:选择不开启

  6. 云网关创建完成后,在云网关列表,复制网关URL保存。

    网关URL格式示例为 iot-xxx.igw.iothub.aliyuncs.com,端口号为 7999

添加云网关设备

  1. 在左侧导航栏选择设备管理>产品,找到已创建的云网关产品,单击右侧操作列的管理设备

  2. 设备页面,单击批量添加

  3. 批量添加设备对话框,单击下载.csv模板下载表格模板。

    对话框中包含产品批量上传文件两个必填字段,产品需选择对应的云网关产品,批量上传文件提供上传文件按钮用于上传填写好的模板。

  4. 在模板中填写Manufacturer ID、Terminal Model和Terminal ID,如下图所示,然后保存文件。

    参数填写说明,请参见创建云网关设备(JT/T 808)

    image

  5. 回到批量添加设备对话框,单击上传文件,将填好的文件上传至物联网平台控制台,单击确认

    设备身份导入成功后,物联网平台会以上传的Manufacturer IDTerminal ModelTerminal ID值,拼接成${Manufacturer ID}_${Terminal Model}_${Terminal ID}作为设备名称创建对应设备,设备列表显示已创建的设备信息。

    此时设备列表中显示已创建的 4 台设备,设备状态均为未激活

开发设备端程序

创建设备信息后,需开发设备端程序,将设备接入物联网平台。 物联网平台提供JT/T 808协议的C语言SDK,本示例以接入设备AliyunIoT_TestModel_device1为例,使用 C SDK开发设备连接物联网平台。

  1. 下载JT/T 808协议的C语言SDK,然后解压文件出jt808-c-sdk

  2. 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的内容。

  3. 登录Ubuntu操作系统,然后上传已经修改的jt808-c-sdk文件。

    jt808-c-sdk 项目的目录结构如下。

    jt808-c-sdk
    ├── core
    ├── demos
    ├── external
    ├── jt808
    ├── output
    ├── portfiles
    ├── LICENSE
    └── Makefile
  4. 在根目录/jt808-c-sdk下,执行make命令,完成样例程序的编译。

    make clean
    make

    生成的样例程序jt808-tls-demo存放在./output目录下。

  5. 运行样例程序。

    ./output/jt808-tls-demo

    运行成功后,设备在线,上报数据。

    运行成功后,终端输出日志示例如下。其中关键节点为:首次 TLS 连接建立、JT808 注册成功(获取 token)、第二次 TLS 连接建立、JT808 认证成功,以及后续心跳响应。

    establish tcp connection with server(host='iot-xxx, xxx igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=5
    local port: 52448
    [1678871231.212][LK-1000] establish mbedtls connection with server(host='iot-xxx xxx igw.iothub.aliyuncs.com', port=[7999])
    [1678871231.641][LK-1000] success to establish mbedtls connection, (cost 39791 bytes in total, max used 42651 bytes)
    
    [LK-1100] < 7E xxx                          78 |  xxx               x
    [LK-1100] < 00 xxx                          56 |  xxx               V
    [LK-1100] < 30 xxx                          52 |  xxx               R
    [LK-1100] < 70 xxx                          41 |  xxx               A
    [LK-1100] < 31 xxx                          51 |  xxx               Q
    [LK-1100] < 31 xxx                          4E |  xxx               N
    [LK-1100] < 6A xxx                             | jMzY=.~
    
    [1678871231.687][LK-0000] aiot_jt808_register success
  6. 返回到物联网平台控制台的对应实例下,在左侧导航栏选择设备管理 > 设备,找到目标设备,查看设备状态。设备状态显示为在线,则表示设备与物联网平台成功连接。

  7. 在左侧导航栏选择监控运维 > 日志服务,选择目标产品,查看设备到云消息

    云端运行日志页签下,筛选 DeviceName 为 AliyunIoT_TestModel_device1,可看到多条业务类型为设备到云消息的日志记录,状态码均为200,表示消息成功发布至 Topic $JT808/AliyunIoT/TestModel/device1/up(QoS=0)。

接入示例(TCP,不推荐)

创建云网关产品和设备

  1. 创建云网关产品(JT/T 808):在添加云网关对话框中配置参数,单击确认

    • 云网关名称:输入JT808接入示例

    • 协议:选择JT/T 808

    • 自定义端口号:输入7999

    • 认证类型:选择一方认证

    • 传输协议:选择TCP

  2. 云网关创建完成后,在云网关列表,复制网关URL保存。

    网关URL格式示例为 iot-xxx.igw.iothub.aliyuncs.com,端口号为 7999

  3. 创建云网关设备(JT/T 808):添加设备如下所示。

    image

开发设备端程序

物联网平台提供JT/T 808协议的C语言SDK,本示例以接入设备AliyunIoT_TestModel_device1为例,使用 C SDK开发设备连接物联网平台。

  1. 下载JT/T 808协议的C语言SDK,然后解压文件出jt808-c-sdk

  2. 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;
    ......
  3. 登录Ubuntu操作系统,然后上传已经修改的jt808-c-sdk文件。

  4. 在根目录/jt808-c-sdk下,执行make命令,完成样例程序的编译。

    make clean
    make

    生成的样例程序jt808-basic-demo存放在./output目录下。

  5. 运行样例程序。

    ./output/jt808-basic-demo

    运行成功后,设备在线,上报数据。

    root@xxx cZ:/opt/jt808-c-sdk# ./output/jt808-basic-demo
    establish tcp connection with server(host='iot-xxx.igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=3
    local port: 51018
    
    [LK-1100] < 7xxx                    '8 | ~.            /x
    [LK-1100] < 0 xxx                   '8 | ..            ix
    [LK-1100] < 4xxx                    '6 | Kl            >F
    [LK-1100] < 7xxx                    \A | p)xxx         :J
    [LK-1100] < 6 xxx                   '6 | lNxxx         >F
    [LK-1100] < 6 xxx                   '9 | izxxx         NY
    [LK-1100] < 3                          | 0YTU=#~
    
    [1678694981.477][LK-0000] aiot_jt808_register success, token:dGFxxx
    auth_key: dGlxxx                                          TU=
    [1678694981.477][LK-1000] adapter_network_deinit
    establish tcp connection with server(host='iot-0xxx70.igw.iothub.aliyuncs.com', port=[7999])
    success to establish tcp, fd=3
    local port: 51024
    
    [LK-1100] < 7xxx                           xxx
    [LK-1100] < 0xxx                           xxx
    
    [1678694981.622][LK-0000] aiot_jt808_auth success
    
    [LK-1100] < 7lxxx                          xxx
    [LK-1100] < 0xxx                           xxx
    
    [COMMON_ACK], xxx
    
    [LK-1100] < 7lxxx                          xxx
    [LK-1100] < 0xxx                           xxx
    
    [COMMON_ACK], xxx

    您可返回到物联网平台控制台的对应实例下,查看设备状态和通信日志。