跳转至

启英泰伦-离线+海信IOT方案介绍

1. 方案介绍

1.1 功能概述

​ 启英泰伦为离线+IOT方案专业定制的CI2305芯片,集成了离线ASR+WIFI+蓝牙BLE功能,用户可以利用该芯片快速开发离线+IOT方案;结合离线语音识别快,高识别率的优点,配合云端和手机APP(小程序)在线控制功能,给用户带来全新的端云融合的产品体验。 方案SDK使用启英泰伦发布的 ci230x_audio_iot_sdk_release 和 ci230x_wifi_combo_sdk_release,下面将基于CI2305芯片+海信IOT云来介绍IOT方案。

1.2 方案框图

图 1-1

1.3 方案特点

离线+IOT方案有如下功能和特性

  • 具备本地识别和本地控制功能,当本地识别指令后可控制外设,播报语音,指令上传等。
  • 具备云端远程控制功能,云端下发指令可对设备远程控制,远程查询设备状态,在线对设备进行OTA。
  • 设备支持蓝牙BLE配网和AP配网。

2. IOT方案快速开发

2.1 SDK框架图说明

图 2-1

2.2 云端接入流程

图 2-2

2.3 启用海信IOT

编译配置:开启海信IOT云使能 :project\ci230x-wifi-sdk-combo\CMakeLists.txt

set(CIAS_IOT_CLOUD_HUAWEI           0)     #华为云使能
set(CIAS_IOT_CLOUD_HISENSE_ENABLE   1)     #海信IOT使能
set(CIAS_IOT_CLOUD_XIAOMI_ENABLE    0)     #小米云使能
set(CIAS_IOT_CLOUD_CI_ENABLE        0)     #启英云使能
set(CIAS_IOT_TENCENT_ENABLE         0)     #腾讯IOT云使能
set(CIAS_IOT_TVS_ENABLE             0)     #腾讯TVS使能
set(CIAS_IOT_TUYA_ENABLE            0)     #涂鸦云使能
set(CIAS_IOT_CLOUD_ALI_ENABLE       0)     #阿里云使能

2.4 调用海信的入口函数

project\ci230x-wifi-sdk-combo\app\usr_hisense\usr_app.c

void creat_usr_app_task(void)
{
    ...
    #if CIAS_IOT_CLOUD_HISENSE_ENABLE
        ci_hisense_main();
    #endif
}

2.5 修改鉴权文件

project\ci230x-wifi-sdk-combo\app\cias_aiot_wifi\cias_cloud\cloud_iot_hisense\hisense_main_task.h

#define   WIFIID                    "86100c00900500100000004080cbbc6eb568"
#define   HISENSE_MD5_KEY            "6ecefdcd7aac8d64"
#define   HISENSE_AP_KEY             "HisenseOverSeasIOTSetUpProtocal;"

对应的三元组信息请联系我司fae获取,每个产品的wifiid,与MD5 key值不能相同。

3 主要功能API说明

3.1 md5加密

/** hisense_md5_encrypt 海信MD5计算 
 * 入口参数:*h_encrypt,原始数据地址
 * 入口参数:*h_hisense_md5,秘钥接收地址
 * 返回值 void
*/
void hisense_md5_encrypt(unsigned char *h_encrypt,char* h_hisense_md5)

3.2 base64 加密

/** other_base64_encode 海信base64 加密
 * 入口参数:in 待加密数据地址
 * 入口参数:in_len 加密数据
 * 入口参数:out  加密后数据地址
 * 返回值: erro 0,success 加密后的数据长度
*/
static int other_base64_encode(const uint8_t *in, uint16_t in_len, char *out)

3.3 base64 解密

/** other_base64_decode 海信base64 解密
 * 入口参数:*in 待解密数据地址
 * 入口参数:*out 解密数据地址
 * 入口参数:*out_len 解密数据长度
 * 返回值:err -1,success 0
*/
static int other_base64_decode(const char *in, uint8_t *out, uint16_t *out_len)

3.4 aes 加密

/**hisense_aes_encrypt 海信aes加密
 * 入口参数:aes_src 待加密数据
 * 入口参数:aes_key 秘钥
 * 入口参数:aes_dst 加密后数据
 * 返回值:err NULL,success 加密后的数据首地址
*/
void* hisense_aes_encrypt(int8_t* aes_src,int8_t* aes_key,int8_t* aes_dst)

3.5 aes解密

/**hisense_aes_decrypt 海信aes解密
 * 入口参数:hisense_src 待解密数据
 * 入口参数:hisense_key 秘钥
 * 入口参数:hisense_dst 解密后数据
 * 返回值:err NULL,success 解密后的数据首地址
*/
void* hisense_aes_decrypt(uint8_t *hisense_src,uint8_t *hisense_key,uint8_t *hisense_dst)

3.6 海信数据接收任务

/**hisense_cloud_recv 海信云数据接收
 * 入口参数:hisense_cloud_fd 连接套接字
 * 返回值: 无
*/
static void hisense_cloud_recv(int32_t hisense_cloud_fd)

4. 海信IOT demo使用