0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

腾讯云SDK如何使用,如何连接腾讯物联网开发平台。

jf_94171069 来源:jf_94171069 作者:jf_94171069 2024-09-25 14:34 次阅读

一 概述

SDK

C SDK 采用模块化设计,分离核心协议服务与硬件抽象层,并提供灵活的配置选项和多种编译方式,适用于不同设备的开发平台和使用环境。

具备网络通讯能力并使用 Linux/Windows 操作系统的设备

对于具备网络通讯能力并使用标准 Linux/Windows 系统的设备。例如 PC/服务器/网关设备,及较高级的嵌入式设备,例如树莓派等,可直接在该设备上编译运行 SDK。

对于需要交叉编译的嵌入式 Linux 设备,如果开发环境的 toolchain 具备 glibc 或类似的库,可以提供包括 socket 通讯,select 同步 IO,动态内存分配,获取时间/休眠/随机数/打印函数,以及临界数据保护。如 Mutex 机制(仅在需要多线程时)等系统调用,则只需进行简单适配(例如,在 CMakeLists.txt 或 make.settings 里修改交叉编译器的设定)即可编译运行 SDK。

具备网络通讯能力并采用 RTOS 系统的设备

对于具备网络通讯能力并采用 RTOS 的物联网设备,C SDK 需要针对不同的 RTOS 做移植适配工作,目前 C SDK 已经适配了包括 FreeRTOS/RT-Thread/TencentOS tiny 等多个面向物联网的 RTOS 平台。

在 RTOS 设备移植 SDK 时,如果平台提供了类似 newlib 的 C 运行库和类似 lwIP 的嵌入式 TCP/IP 协议栈,则移植适配工作也可轻松完成。

SDK 目录结构简介

目录结构及顶层文件简介如下:

td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt;font-style:normal;font-weight:normal;vertical-align:middle;word-break:normal;word-wrap:normal;}

名称 说明
CMakeLists.txt cmake 编译描述文件。
CMakeSettings.json visual studio下的 cmake 配置文件。
cmake_build.sh Linux 下使用 cmake 的编译脚本。
make.settings Linux 下使用 Makefile 直接编译的配置文件。
Makefile Linux 下使用 Makefile 直接编译。
device_info.json 设备信息文件,当 DEBUG_DEV_INFO_USED=OFF 时,将从该文件解析出设备信息。
docs 文档目录,SDK 在不同平台下使用说明文档。
external_libs 第三方软件包组件,例如 mbedtls。
samples 应用示例。
include 提供给用户使用的外部头文件。
platform 平台相关的源码文件,目前提供了针对不同 OS(Linux/Windows/FreeRTOS/nonOS),TLS(mbedtls)以及 AT 模组下的实现。
sdk_src SDK 核心通信协议及服务代码。
tools SDK 配套的编译及代码生成脚本工具。

二 腾讯云物联网开发平台

1 注册账号

打开腾讯云物联网开发平台官网:https://cloud.tencent.com/

点击右上角的注册,注册一个账号。注册完毕后,登录。

或者直接用微信扫描二维码,登录。

登录后点击控制台。

wKgaombzrsSADSqpAAdrMDbdtvk701.jpg

2 创建产品

1 搜索物联网开发平台

wKgaombzrsWAe5tfAAJFjeHIqg4969.jpg

2 点击公共平台

wKgZombzrseAU9NCAARRs2ESNpM197.jpg

2 点击产品开发,新建产品

wKgaombzrsiAcGJEAAGTEnPY4Hk578.jpg

3 按照自己的需求配置

wKgaombzrsmAYbazAAGsNz1MG5I313.jpg

4 创建好后如下

wKgZombzrsqAdmreAAGpQKH3e4c855.jpg

5 参考腾讯云开发物模型(物模型需要和设备里的上报参数对应,否则报错)

https://cloud.tencent.com/document/product/1081

标准功能可以在交互开发,面板配置中选择不显示。

wKgaombzrsyAIRw3AAC77phMl2Q208.jpg

6 按照需求配置

wKgZombzrs2ANvODAAHPR7GaKUo578.jpg

7 新建一台设备

wKgaombzrs6AboImAAFOwyzR048762.jpg

wKgZombzrtCABb4eAAFRdQnBvuQ307.jpg

wKgaombzrtGAJq56AAFMp34cG40192.jpg

9 如果需要动态注册,需要打开开关(如果使用iot-explorer SDK,代码里需要定义动态注册宏)

wKgZombzrtOAdflWAAGjU9eanTg908.jpg

3 二维码

微信打开腾讯连连小程序,扫描二维码

wKgaombzrtSACTbzAAFvnDbQjSo675.jpg

wKgZombzrtaAQGJOAAnRppSMGlc332.jpg

三 腾讯云组件的使用

1 Gitee链接地址

组件位于amaziot_bloom_os_sdkplatformstencentqcloud_iot_c_sdk

Gitee源码地址:https://gitee.com/ning./hongdou

Github源码地址:https://github.com/ayumid/hongdou

当前组件使用腾讯物联网平台提供的qcloud-iot-explorer-sdk实现。

2 服务层组件功能介绍

提供腾讯云物联网开发平台连接实例,设备实现通过app简易控制等。

该组件为平台组件,可以单独运行,不依赖于其它组件。

3 代码讲解

1 wait_network_ready

等待模组驻网成功,驻网超时后,会软复位模组。

static void wait_network_ready(void) { int count = 0; int ready = 0; while (!ready) { if (getCeregReady(isMasterSim0() ? IND_REQ_HANDLE : IND_REQ_HANDLE_1)) { ready = 1; } sample_mqtt_tls_tuya_catstudio_printf("wait_network_ready: %d s", count++); if (count > 300) PM812_SW_RESET(); OSATaskSleep(200); } }

2 tuya_connectkit_task

调用tuya-connect-kit SDK中的demo,这里可以替换为其它demo。

static void tuya_connectkit_task(void *ptr) { int ret = 0; wait_network_ready(); sample_mqtt_tls_tuya_catstudio_printf("nnnSuccess in the net 2nnn"); // cellular_demo(); switch_demo_non_qrcode(); }

3 tuya_get_csq

获取当前设备的csq值,用于上报信息中的参数。

int tuya_get_csq(void) { char atresbuf[16] = {0}; int err = 0; char *p = NULL; int csqValue = 99; memset(atresbuf, 0, sizeof(atresbuf)); err = SendATCMDWaitResp(TEL_AT_CMD_ATP_10, "AT+CSQrn", 2, "+CSQ", 1, NULL, atresbuf, sizeof(atresbuf)); if(strlen(atresbuf) >= 10 ) { p = strchr(atresbuf,':'); csqValue = atoi(p + 1); } return csqValue; }

4 tuya_get_imei

获取当前设备的imei值,用于上报信息中的参数。

void tuya_get_imei(char *buffer) { char imei[24] = {0}; int err = 0; char *p = NULL; int errorCnt = 0;// wait_reg: memset(imei, 0, sizeof(imei)); err = SendATCMDWaitResp(TEL_AT_CMD_ATP_10, "AT+CGSNrn", 2, NULL, 1, NULL, imei, sizeof(imei)); if(strlen(imei) >= 15 ) { snprintf(buffer, 16, imei); return; } }

5 tuya_get_imei

获取当前设备的iccid值,用于上报信息中的参数。

void tuya_get_iccid(char *buffer) { char iccid[36] = {0}; int err = 0; char *p = NULL; int errorCnt = 0;// wait_reg: memset(iccid, 0, sizeof(iccid)); err = SendATCMDWaitResp(TEL_AT_CMD_ATP_10, "AT+ICCIDrn", 2, "+ICCID", 1, NULL, iccid, sizeof(iccid)); if(strstr(iccid, "+ICCID") != NULL ) { p = strchr(iccid,':'); snprintf(buffer, 21, p + 2); return; } }

6 tuya_send_task

主任务,上电后,代码会一直在while中循环上报csq,用户可以根据自己的业务来修改代码,实现自己的业务逻辑

static void tuya_send_task(void *ptr) { int csq = 0; char imei[16] = {0}; char iccid[21] = {0}; char dp_muti_buf[128] = {0}; char dp_buf[16] = {0}; //"{"103":"866663060145165","104":"898604A41921C0467222"}" tuya_get_imei(imei); tuya_get_iccid(iccid); snprintf(dp_muti_buf, 128, "{"103":"%s","104":"%s"}", imei, iccid); tuya_send_multiple_value_data(dp_muti_buf); while(1) { csq = tuya_get_csq(); snprintf(dp_buf, 16, "{"102":%d}", csq); tuya_send_csq_data(dp_buf); printf("send csq:%d", csq); tuya_sleep(3); } }

4 Demo实战

4.1 创建一个Demo

复制20.4_trans_xtu示例工程,到同一个文件夹下,修改文件名为5.8.4-mqtt_tencent-iot-explorer,如图:

wKgaombzrteAOLgmAACY7iTEdqU347.jpg

4.2 修改makefile

增加mbedTLS,这里不适用tuya-connect-kit中的mbedTLS,使用sdk本身的版本,增加tuya-connect-kit头文件和源文件路径,如图:

wKgZombzrtiASoHsAAASpCqBlxQ260.jpg

wKgaombzrtmAGyMSAAAS8mChnBA403.jpg

wKgZombzrtqAB-FFAAAfHnQYvGc444.jpg

wKgaombzrtyAXdAaAAIDgtlCLOA592.jpg

wKgZombzrt2AVjU8AABLSlqPkco574.jpg

4.3 增加头文件

使用代码编辑器,将新建的工程文件加入代码编辑器中,打开main.c,修改main.c,加入am.h等头文件,如图:

main.c

wKgaombzrt6AIkZHAAAtk8VK1b8269.jpg

4.4 修改代码

本例对mqtt_sample进行了适当的修改,具体查看代码。

4.5 编译

在SDK根目录打开命令行,输入命令.build.bat -l .amaziot_bloom_os_sdksamplelibraries5.8.4-mqtt_tencent-iot-explorer

PS F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF λ .build.bat -l .amaziot_bloom_os_sdksamplelibraries5.8.4-mqtt_tencent-iot-explorer 子目录或文件 outbin 已经存在。 子目录或文件 buildmbedTLS 已经存在。 处理: buildmbedTLS 时出错。 子目录或文件 buildcJSON 已经存在。 处理: buildcJSON 时出错。 子目录或文件 buildobj 已经存在。 gnumake: Entering directory `F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/5.8.4-mqtt_tencent-iot-explorer' armcc.exe -c --cpu Cortex-R4 --no_unaligned_access -g -O2 --apcs /inter --diag_suppress 2084,1,2,177,188,223,550,1296,2795,6319,9931,9933 --diag_error=warning --gnu --thumb --loose_implicit_cast -DDATA_COLLECTOR_IMPL -DISPT_OVER_SSP -DDIAG_SSP_DOUBLE_BUFFER_USE_DYNAMIC_ALLOCATION -DENV_XSCALE -DL1_DCXO_ENABLED -DLTE_HIGH_MOBILITY_OPTIMIZATION -DRUN_XIP_MODE -DCRANE_Z2 -DCA_LONG_IPC_MSG -DNEZHA3 -DNEZHA3_1826 -DUPGRADE_PLMS -DUPGRADE_PLMS_SR -DLTE_GSMMULTIBCCH -DGPLC_LTE_RSSI_SCAN -DL1V_NEW_RSSI -DUPGRADE_PLMS_3G -DUPGRADE_PLMS_L1 -DUPGRADE_FG_PLMS -DFG_PLMS_URR -DUPGRADE_L1A_FG_PLMS -DUPGRADE_PLMS_STAGE_2 -DUPGRADE_MBCCH -DMULTI_BCCH_READY_IND -DURR_MRAT_ICS_SEARCH -DUPGRADE_ICS -DMRAT_NAS -DUPGRADE_PLMS_SEARCH_API -DICS_MBCCH -DICS_MBCCH_2G_RSSI -DDIAG_NEWPP -DPHS_SW_DEMO -DPHS_SW_DEMO_TTC -DPHS_SW_DEMO_TTC_PM -DFULL_SYSTEM -D_DDR_INIT_ -D_TAVOR_HARBELL_ -DUPGRADE_ARBEL_PLATFORM -D_TAVOR_B0_SILICON_ -DTDL1C_SPY_ENABLE -DDLM_TAVOR -DTAVOR -DFLAVOR_DUALCORE -DDEBUG_D2_MOR_REG_RESEREVED_ENABLE -D_DIAG_USE_COMMSTACK_ -D_TAVOR_DIAG_ -DPM_DEBUG_MODE_ENABLED -DPM_D2FULL_MODE -DPM_EXT_DBG_INT_ARR -DFEATURE_WB_AMR_PS -DMACRO_FOR_LWG -DHL_LWG -DOPTIMIZE_FOR_2G_BCCH -DPLAT_TEST -D_FDI_USE_OSA_ -DPLAT_USE_THREADX -DLWIP_IPNETBUF_SUPPORT -DCRANE_MCU_DONGLE -DAT_OVER_UART -DPHS_SW_DEMO_TTC_PM -DUPGRADE_LTE_ONLY -DEXT_AT_MODEM_SUPPORT -DLTEONLY_THIN_SINGLE_SIM -DLFS_FILE_SYS -DLFS_FILE_SYS_V2 -DPSM_ENABLE -DNO_PAHO_MQTT -DNO_XML -DNO_LWM2M -DREMOVE_MBEDTLS -DNO_AT_NET -DCRANE_SD_NOT_SUPPORT -DNTP -DYMODEM_EEH_DUMP -DENABLE_DM_LTEONLY -DLTEONLY_THIN -DNO_EXTEND_MY_Q_AT -DNOT_SUPPORT_HTTPS -DNOT_SUPPORT_PM813 -DCRANEL_4MRAM -DREMOVE_PB -DUART_NEW_VERSION -DREMOVE_MEP -DREMOVE_SMS -DREMOVE_ENVSIM -DAPN_INCODE -DLTEONLY_THIN_SINGLE_SIM_2MFLASH -DASR160X_OPENCPU_FEATURE -DENABLE_UART3_FEATRUE -DENABLE_UART4_FEATRUE -DYUGE_MBEDTLS_3_2_1 -DENABLE_MAC_TX_DATA_LOGGING -DDISABLE_NVRAM_ACCESS -DINTEL_UPGRADE_EE_HANDLER_SUPPORT -DLTE_W_PS -DL1_DUAL_MODE -DUPGRADE_HERMON_DUAL -DINTEL_UPGRADE_DUAL_RAT -DINTEL_UPGRADE_GPRS_CIPHER_FLUSH -DUPGRADE_ENHANCED_QUAD_BAND -DINTEL_2CHIP_PLAT -DI_2CHIP_PLAT -DUPGRDE_TAVOR_COMMUNICATION -DRUN_WIRELESS_MODEM -DFLAVOR_DDR12MB_GB1MB5 -DFEATURE_SHMEM -DACIPC_ENABLE_NEW_CALLBACK_MECHANISM -DRELIABLE_DATA -DMAP_NSS -DTV_FNAME=""SW_PLATFORM=PMD2NONE PHS_SW_DEMO PHS_SW_DEMO_PM SRCNUCLEUS FULL_SYSTEM NOACRTC PDFLT PLAT_TEST PV2 DIAGOSHMEM NVM WITHL1V"" -DTV_FDESC=""SW_DESCRIPTION="" -DENABLE_ACIPC -D_DATAOMSL_ENABLED_ -DUSB_CABLE_DETECTION_VIA_PMIC -DMIPS_TEST -DMIPS_TEST_RAM -DFLAVOR_DIET_RAM -DNVM_INCLUDE -DMSL_INCLUDE -DMSL_POOL_MEM -DNO_AUDIO -DOSA_QUEUE_NAMES -D_DIAG_DISABLE_USB_ -DOSA_NUCLEUS -DOSA_USED -DPM_D2NONE_MODE -DCRANE_SOC_TEMPERATURE_SENSOR -DL1_SW_UPDATE_FOR_DIGRF -DPHS_L1_SW_UPDATE_R7 -DUPGRADE_LTE -DFRBD_CALIB_NVM -DFRBD_AGC_CALIB -DFRBD_FDT_CALIB -DHSPA_MPR -DCAPT_PARAMS_OPTIMIZE -DL1_WB_R99_ONLY -DL1V_WB_R99_ONLY -DINTERGRATED_RF_SUPPORT -DL1_RX_DIV_SUPPORT -DENABLE_OOS_HANDLING -DTAVOR_D2_WB_L1_SUPPORT -DL1_DDR_HIGH_FREQ -DUPGRADE_DIGRF3G_SUPPORT -DW_PS_PLUS_G_PAGING -D"NO_APLP=0" -DINTEL_UPGRADE_UNIFIED_VOICE_TASK -DINTEL_UPGRADE_R99 -DAPLP_SPY_ENABLE -D__TARGET_FEATURE_DOUBLEWORD -DWHOLE_UMTS_STACK -DUSE_TTPCOM_CSR_BLUETOOTH_AUDIO_GAIN_CONTROL -DL1_UPGRADE_R5 -DUPGRADE_EDGE -DUPGRADE_R4_FS1 -DINTEL_UPGRADE_GSM_CRL_IF -DUPGRADE_EGPRS_M -DINTEL_UPGRADE_EGPRS_M -DINTEL_UPGRADE_RF_PARAMS_IN_CF_TDS -DINTEL_UPGRADE_2SAMPLES_PER_SYMBOL -D"GPRS_MULTISLOT_CLASS=12" -D"EGPRS_MULTISLOT_CLASS=12" -DMARVELL_UPGRADE_BSIC_REDESIGN -DMSL_INCLUDE -DINTEL_HERMON_SAC -DCRANE_CUST_BUILD -DL1_SW_UPDATE_FOR_DIGRF -DFLAVOR_COM -DSILICON_PV2 -DSILICON_SEAGULL -DSILICON_TTC_CORE_SEAGULL -DPCAC_INCLUDE -Otime -DBUILD_DATE=""04 22 2024"" -DBUILD_TIME=""10:09:04"" -Iatcmdsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyyugeinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalcoreinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalPMUinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalGPIOinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosposixinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswSysCfginc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatforminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xenvwin32inc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswBSPinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatformdev_platbuild -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xososainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosthreadxinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosnu_xscaleinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacpsminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptimerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopintcinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswPMinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoppminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilTickManagerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopBSPinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyatcmdsrvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyatparserinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonysdkinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacciinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcinclude -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludearch -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv4 -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv6 -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludelwip -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludenetif -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmmi_matinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xtavorArbelinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xtavorenvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonymodeminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdusterinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacfotainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalI2Cinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalACIPCinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysflash -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcINCLUDE -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalMMUinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFDI_ADD -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFM_INC -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysfshdr -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutillittlefsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacttsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdialinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilcsw_memoryinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoputilitiesinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopcommpminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilnvminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlersrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopRTCinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyci_clientinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalBT_deviceinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmrdinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopdmainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilsoftutilinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalSPIinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacwebsocketinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacatnet_srvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfotacomminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swACM_COMMinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swaudio_stubsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopaaminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioHALinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhaldbgshellinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacopencpuinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdkutils -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1asros -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1 -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1inc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1include -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1includembedtls -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1incmbedtls -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEmbedTLSmbedTLS_3_2_1testsincludetest -DSDK_ENABLE_MBEDTLS -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFCSDK_CODEcJSONinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tencent/qcloud_iot_c_sdkincludeexports -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tencent/qcloud_iot_c_sdkinclude -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tencent/qcloud_iot_c_sdksdk_srcinternal_inc -o buildobj/ext_at_cmds.o F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/5.8.4-mqtt_tencent-iot-explorer/atcmds/src/ext_at_cmds.c armlink.exe buildobj/data_template_action.o buildobj/data_template_client.o buildobj/data_template_client_common.o buildobj/data_template_client_json.o buildobj/data_template_client_manager.o buildobj/data_template_event.o buildobj/device_bind.o buildobj/dynreg.o buildobj/gateway_api.o buildobj/gateway_common.o buildobj/json_parser.o buildobj/json_token.o buildobj/kgmusic_client.o buildobj/mqtt_client.o buildobj/mqtt_client_common.o buildobj/mqtt_client_connect.o buildobj/mqtt_client_net.o buildobj/mqtt_client_publish.o buildobj/mqtt_client_subscribe.o buildobj/mqtt_client_unsubscribe.o buildobj/mqtt_client_yield.o buildobj/network_interface.o buildobj/network_socket.o buildobj/ota_client.o buildobj/ota_fetch.o buildobj/ota_lib.o buildobj/ota_mqtt.o buildobj/qcloud_iot_ca.o buildobj/qcloud_iot_device.o buildobj/qcloud_iot_log.o buildobj/resource_client.o buildobj/resource_lib.o buildobj/resource_mqtt.o buildobj/resource_upload.o buildobj/service_mqtt.o buildobj/string_utils.o buildobj/utils_aes.o buildobj/utils_base64.o buildobj/utils_getopt.o buildobj/utils_hmac.o buildobj/utils_httpc.o buildobj/utils_list.o buildobj/utils_md5.o buildobj/utils_ringbuff.o buildobj/utils_sha1.o buildobj/utils_timer.o buildobj/utils_url_download.o buildobj/utils_url_upload.o buildobj/HAL_Device_freertos.o buildobj/HAL_OS_freertos.o buildobj/HAL_TCP_lwip.o buildobj/HAL_Timer_freertos.o buildobj/HAL_UDP_lwip.o buildobj/mqtt_sample.o buildobj/main.o buildobj/ext_at_cmds.o buildobj/ext_at_controller.o buildCSDK_CODE.lib -o F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutbinArbel_PMD2NONE_40M.axf --via F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lArbel_PMD2NONE_targ_objliblist.txt --elf --scatter F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lCrane_DS_4M_Ram_2M_Flash_XIP_CIPSRAM_Common_SingleSIM.sct --predefine="-DLTEONLY_THIN_SINGLE_SIM" --predefine="-DASR160X_OPENCPU_FEATURE" --map --symbols --info sizes,totals --list F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutbinArbel_PMD2NONE_40M.map --keep init.o(Header) --keep init.o(Vectors) --diag_suppress 6312,6314,6319,6329 --feedback F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutfeedbackLinkOptLteonlyThin_SingleSim_NoSMS.txt F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFtoolsbuildimage_1606l.bat SDK_PROD_TYPE : [DM] SDK_CUST_SKU : [THIN_SINGLE_SIM_NO_SMS] SDK_PS_MODE : [LTEONLY] SDK_CHIP_VER : [Z2A0] SDK_OS_TYPE : [TX] Platform Convertion Tools v4.01 with PS option extension Convertion done! |INPUT |outbincp_1606L.bin |MARK |NAME |EXEADDR .LOADADDR.LENGTH .CPZLADDR|COMPRESS STASTIC | |--------|--------|--------.--------.--------.--------|------------------------------| |This Is LteOnly 4M| |RW_CPZ_1|DDR_RW_ |7e119000.800704f0.0000d6c8.80071000|0000d6c8->00003000 |This Is LteOnly 4M| |RW_CPZ_2|PS_NCAH |7e388000.8007dbb8.00001300.80074000|00001300->00001000 |This Is LteOnly 4M| |RW_CPZ_3|ITCM |7e3dac00.8007eeb8.0000f51c.80075000|0000f51c->0000a000 |This Is LteOnly 4M| |RW_CPZ_4|CODE_PS |7e1aa000.8008e3d4.0002fe3c.8007f000|0002fe3c->0001e000 |This Is LteOnly 4M| |RW_CPZ_5|CODEPSB |7e1dc000.800be210.000339bc.8009d000|000339bc->0001b000 |This Is LteOnly 4M| |RW_CPZ_6|CODEPSC |7e213000.800f1bcc.000323ec.800b8000|000323ec->0001b000 |This Is LteOnly 4M| |RW_CPZ_7|CODEPSD |7e249000.80123fb8.00028d88.800d3000|00028d88->0001a000 |This Is LteOnly 4M| |RW_CPZ_8|CODEPSE |7e277000.8014cd40.0002e310.800ed000|0002e310->0001a000 |This Is LteOnly 4M| |RW_CPZ_9|CODEPSF |7e2a9000.8017b050.0001c948.80107000|0001c948->00011000 |This Is LteOnly 4M| |RW_CPZ_A|CODE_PL |7e2ca000.80197998.0002fbb4.80118000|0002fbb4->0001e000 |This Is LteOnly 4M| |RW_CPZ_B|CODEPLB |7e2fa000.801c754c.0003905c.80136000|0003905c->00021000 |This Is LteOnly 4M| |RW_CPZ_C|CODEPLC |7e337000.802005a8.000268d4.80157000|000268d4->00011000 |--------|--------|--------.--------.--------.--------|------------------------------| | | 0x0020fe7c -> 0x00151000| | | 2.062(MB) -> 1.316(MB)| |------------------------------------------------------------------------------------| cp_1606L.axf cp_1606L.bin cp_1606L.map gnumake: Leaving directory `F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/5.8.4-mqtt_tencent-iot-explorer' "copy NEZHAC_CP_CNR_MIFI_TX.bin to ./ " 已复制 1 个文件。

4.6 生成固件

参考入门中开发工具,生成工具。

4.7 扫描二维码,添加设备

小程序添加设备后,设备上电,demo运行后,会上报信息,同时可以使用小程序下发修改数据。

wKgZombzrt-AS9M0AAXQJhZ93c8182.jpg

5 总结

根据实验现象,按照本文所述流程,可以实现红豆平台连接腾讯云物联网开发平台。

本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)

欢迎同学们走进AmazIOT知识库的世界!

这里是为物联网人构建的技术应用百科,以便帮助你更快更简单的开发物联网产品。

Cellular IoT Wiki初心:

在我们长期投身于蜂窝物联网 ODM/OEM 解决方案的实践过程中,一直被物联网技术碎片化与产业资源碎片化的问题所困扰。从产品定义、芯片选型,到软硬件研发和测试,物联网技术的碎片化以及产业资源的碎片化,始终对团队的产品开发交付质量和效率形成制约。为了减少因物联网碎片化而带来的重复开发工作,我们着手对物联网开发中高频应用的技术知识进行沉淀管理,并基于 Bloom OS 搭建了不同平台的 RTOS 应用生态。后来我们发现,很多物联网产品开发团队都面临着相似的困扰,于是,我们决定向全体物联网行业开发者开放奇迹物联内部沉淀的应用技术知识库 Wiki,期望能为更多物联网产品开发者减轻一些重复造轮子的负担。

Cellular IoT Wiki沉淀的技术内容方向如下:

wKgaombqoM2AYL2RAAQrZ8e-uz8392.jpg

奇迹物联的业务服务范围:基于自研的NB-IoT、Cat1、Cat4等物联网模组,为客户物联网ODM/OEM解决方案服务。我们的研发技术中心在石家庄,PCBA生产基地分布在深圳、石家庄、北京三个工厂,满足不同区域&不同量产规模&不同产品开发阶段的生产制造任务。跟传统PCBA工厂最大的区别是我们只服务物联网行业客户。

连接我们,和10000+物联网开发者一起降低技术和成本门槛

让蜂窝物联网应用更简单~~

哈哈你终于滑到最重要的模块了,

千万不!要!划!走!忍住冲动!~

欢迎加入飞书“开源技术交流群”,随时找到我们哦~

点击链接如何加入奇迹物联技术话题群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以获取加入技术话题群攻略

Hey 物联网从业者,

你是否有了解过奇迹物联的官方公众号“eSIM物联工场”呢?

这里是奇迹物联的物联网应用技术开源wiki主阵地,欢迎关注公众号,不迷路~

及时获得最新物联网应用技术沉淀发布

注:本文部分内容来源于网络,如有侵权,请及时联系我们。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2903

    文章

    44240

    浏览量

    371002
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1025

    浏览量

    45762
  • 腾讯云
    +关注

    关注

    0

    文章

    208

    浏览量

    16760
收藏 人收藏

    评论

    相关推荐

    GoTo集团携手腾讯、阿里强化印尼数字基建

    近日,印尼领先的数字科技公司GoTo集团近日宣布与腾讯、阿里正式签署了合作协议。此次合作旨在通过GoTo的数字平台,共同提升印尼的基础
    的头像 发表于 11-13 11:13 229次阅读

    GoTo携手腾讯、阿里推动印尼基建与人才培养

    该国的基础设施、资源建设以及新投资项目的开展。不仅如此,腾讯还计划在印尼建立其第三座互联网数据中心,以进一步提升印尼地区的计算能力和服
    的头像 发表于 11-12 10:45 161次阅读

    印尼GOTO、腾讯与阿里签署合作协议

    近日,印尼知名科技公司GOTO与中国的腾讯、阿里正式签署了合作协议。此次携手合作,旨在共同推动印尼数字经济的发展,为当地企业提供更加全面、高效的数字化解决方案。
    的头像 发表于 11-11 14:32 185次阅读

    腾讯混元Large模型及TI平台全新上线

    近日,腾讯混元团队最新推出的MoE模型“混元Large”已正式开源上线。这一里程碑式的进展标志着腾讯在大模型技术领域取得了新的突破。 与此同时,腾讯TI
    的头像 发表于 11-08 11:03 361次阅读

    低代码联网平台是什么?有什么功能?

    平台应运而生,为开发者提供了一种简便、高效的方式来构建物联网解决方案。   什么是低代码联网
    的头像 发表于 10-16 13:59 162次阅读

    一库打通所有平台!合宙IoT_CLOUD之【腾讯

    ​ 众所周知,市面上有很多云平台,阿里腾讯、中移OneNET、华为、百度、TLink
    的头像 发表于 10-15 16:08 269次阅读

    干货分享:Air780E怎么连接华为

    ​众所周知,市面上有很多云平台,阿里腾讯、中移OneNET、华为、百度、涂鸦
    的头像 发表于 10-15 07:30 241次阅读
    干货分享:Air780E怎么<b class='flag-5'>连接</b>华为<b class='flag-5'>云</b>?

    MQTT调试助手中文版(联网开发必备)

    MQTT调试助手中文版(联网开发必备)。 支持模拟设备链接各种MQTT服务器、  阿里腾讯
    发表于 10-12 14:23 4次下载

    MQTT联网平台有什么功能

    关键作用。MQTT联网平台基于MQTT协议,为联网设备提供
    的头像 发表于 10-09 14:15 187次阅读

    工业联网(IOT)平台是什么

    随着信息技术的飞速发展,工业互联网(IoT)平台已成为推动制造业数字化转型的重要力量。这一平台基于计算、
    的头像 发表于 09-19 14:16 337次阅读

    优易通无线DTU腾讯通信实例

    优易通无线DTU腾讯通信实例(基于MQTT)优——产品优,服务优,价格优易——安装易,使用易,维护易通——通讯技术专家,精于通讯,万互通一、例程环境1.操作系统Windows10,64位操作系统
    的头像 发表于 08-30 11:45 283次阅读
    优易通无线DTU<b class='flag-5'>腾讯</b><b class='flag-5'>云</b>通信实例

    获50家芯片企业合作!加码芯片赛道,腾讯靠什么?

    “目前,腾讯正在从传统互联网向产业互联网转变,我们在To B的场景里面做了不少的投入。无论是芯片的设计、芯片的制造,还是芯片的封测,我们都希望通过腾讯
    的头像 发表于 08-26 18:20 5548次阅读
    获50家芯片企业合作!加码芯片赛道,<b class='flag-5'>腾讯</b><b class='flag-5'>云</b>靠什么?

    联网平台是什么

    随着信息技术的迅猛发展,联网(IoT)已经成为推动社会进步和产业升级的重要力量。联网平台
    的头像 发表于 07-25 16:51 637次阅读

    ZWS平台应用(2)-设备基于SDK接入

    联网开发过程中遇到的棘手问题是:如何让设备连接?设备接入主要是开发者要实现设备与
    的头像 发表于 03-05 08:24 393次阅读
    ZWS<b class='flag-5'>云</b><b class='flag-5'>平台</b>应用(2)-设备基于<b class='flag-5'>SDK</b>接入

    【ELF 1开发板试用】+ 8.2 MQTT开发——连接腾讯【原创】

    MQTT开发——连接腾讯 前文我们基于文档中提供的项目教程,复现ELF 1连接阿里
    发表于 12-15 23:10