全部產品
Search
文件中心

IoT Platform:JT/T 808協議雲網關裝置接入樣本(一方認證)

更新時間:Jun 30, 2024

本文以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)

    image

  6. 雲網關建立完成後,在雲網關列表,複製網關URL儲存。

    image

添加雲網關裝置

  1. 在左側導覽列選擇裝置管理>產品,找到已建立的雲網關產品,單擊右側操作列的管理裝置

  2. 裝置頁面,單擊大量新增

  3. 大量新增裝置對話方塊,單擊下載.csv模板下載表格模板。

    image

  4. 在模板中填寫Manufacturer ID、Terminal Model和Terminal ID,如下圖所示,然後儲存檔案。

    參數填寫說明,請參見建立雲網關裝置(JT/T 808)

    image

  5. 回到大量新增裝置對話方塊,單擊上傳檔案,將填好的檔案上傳至物聯網平台控制台,單擊確認

    image

    裝置身份匯入成功後,物聯網平台會以上傳的Manufacturer IDTerminal ModelTerminal ID值,拼接成${Manufacturer ID}_${Terminal Model}_${Terminal ID}作為裝置名稱建立對應裝置,裝置列表顯示已建立的裝置資訊。

    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_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檔案。

    image

  4. 在根目錄/jt808-c-sdk下,執行make命令,完成範例程式的編譯。

    make clean
    make

    產生的範例程式jt808-tls-demo存放在./output目錄下。

  5. 運行範例程式。

    ./output/jt808-tls-demo

    運行成功後,裝置線上,上報資料,如下圖所示:

    image

  6. 返回到物聯網平台控制台的對應執行個體下,在左側導覽列選擇裝置管理 > 裝置,找到目標裝置,查看裝置狀態。裝置狀態顯示為線上,則表示裝置與物聯網平台成功串連。

    image

  7. 在左側導覽列選擇監控營運 > Log Service,選擇目標產品,查看裝置到雲訊息

    image

接入樣本(TCP,不推薦)

建立雲網關產品和裝置

  1. 建立雲網關產品(JT/T 808):配置如下圖所示。

    image

  2. 雲網關建立完成後,在雲網關列表,複製網關URL儲存。

    image

  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

    運行成功後,裝置線上,上報資料,如下圖所示:

    image

    您可返回到物聯網平台控制台的對應執行個體下,查看裝置狀態和通訊日誌。