tag 标签: 涂鸦

相关博文
  • 热度 1
    2024-9-30 11:40
    333 次阅读|
    0 个评论
    01 概述 Link SDK 涂鸦Link SDK,即tuya-connect-kit。使用 C 语言实现,适用于开发者自主开发硬件设备逻辑业务接入涂鸦 IoT。Tuya Connect Kit 提供设备激活、DP 上下行和 OTA 等基础业务接口封装,Kit 不依赖具体设备平台及操作系统环境,也可以运行在单任务环境,仅需要支持 TCP/IP 协议栈及提供 SDK 必要的系统依赖接口即可完成接入。 该 Kit 的 C 代码文件通过以下目录结构提供: certs:设备私钥,设备证书,服务端 CA 根证书 docs:参考文档 libraries:外部依赖库,包含 MQTT client、HTTP client、mbedTLS 等 interface:平台必要移植接口,SDK 功能接口 include:SDK 有文件,包含了 SDK API src:SDK 源代码 platform:平台移植接口适配 utils:通用工具模块 examples:例程 SDK详细介绍可以参考涂鸦connect-kit官网,这里不作赘述。移植过程中对sdk进行了少量修改,可以使用文件比对工具(例如:beyond compare)比较目录中的文件夹和压缩包中的源码,查看修改了哪里。 02 涂鸦 IoT 平台 1 注册账号 打开涂鸦 IoT 平台官网:https://www.tuya.com/cn/ 点击右上角的注册,注册一个账号。注册完毕后,登录。 2 创建产品 1 点击左侧的产品 2 点击创建产品 3 当前组件使用的是 tuya-connect-kit 来连接涂鸦 IoT 平台,涂鸦会根据不同的方案产生不同的激活码,所以这里不能够使用涂鸦已经有的产品进行开发,需要选择其它。(如果希望使用涂鸦的软硬件快速开发,或者0代码开发,直接投产,可以选择下图中已经存在的产品) 4 同样选择自定义品类 5 这里选择产品开发(生态产品接入,会提供mqtt三要素,没有app使用) 6 使用自定义方案 7 完善产品信息,之后点击创建产品 8 选择自己需要的功能,可以选择已经存在的,也可以自定义 9 这里选择公共面板 10 选择Link SDK,选择硬件(这里选择这款硬件,不影响使用自己的硬件) 11 选择指南的任务 12 选择暂不测试 13 免费领取两个激活码,注意选择,授权码清单,之后下载授权码,界面意外关闭,可以按照第三张图找到,之后下载申请的激活码 3 生成二维码 1 二维码规则参考 2 在线免费生成二维码 03 涂鸦组件的使用 1 Gitee链接地址 组件位于amaziot_bloom_os_sdk\platforms\tuya\tuya-connect-kit Gitee源码地址:https://gitee.com/ning./hongdou Github源码地址:https://github.com/ayumid/hongdou 当前组件使用涂鸦提供的Link SDK中的tuya-connect-kit实现( Link SDK中还有tuya-open-sdk-for-device )。因为涂鸦平台对不同开发方式进行了识别,所以必须按照本文所描述步骤进行,否则可能无法连接涂鸦平台。 2 服务层组件功能介绍 提供涂鸦Link SDK(tuya-connect-kit)连接实例,实现设备通过app控制等。 该组件为平台组件,可以单独运行,不依赖于其它组件。 3 代码讲解 1 wait_network_ready 等待模组驻网成功,驻网超时后,会软复位模组。 C++ 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++); 300) PM812_SW_RESET(); OSATaskSleep(200); } } 2 tuya_connectkit_task 调用tuya-connect-kit SDK中的demo,这里可以替换为其它demo。 C++ static void tuya_connectkit_task(void *ptr) { int ret = 0; wait_network_ready(); sample_mqtt_tls_tuya_catstudio_printf("\n\n\nSuccess in the net 2\n\n\n"); // cellular_demo(); switch_demo_non_qrcode(); } 3 tuya_get_csq 获取当前设备的csq值,用于上报信息中的参数。 C++ int tuya_get_csq(void) { char atresbuf = {0}; int err = 0; char *p = NULL; int csqValue = 99; memset(atresbuf, 0, sizeof(atresbuf)); err = SendATCMDWaitResp(TEL_AT_CMD_ATP_10, "AT+CSQ\r\n", 2, "+CSQ", 1, NULL, atresbuf, sizeof(atresbuf)); = 10 ) { p = strchr(atresbuf,':'); csqValue = atoi(p + 1); } return csqValue; } 4 tuya_get_imei 获取当前设备的imei值,用于上报信息中的参数。 C++ void tuya_get_imei(char *buffer) { char imei = {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+CGSN\r\n", 2, NULL, 1, NULL, imei, sizeof(imei)); = 15 ) { snprintf(buffer, 16, imei); return; } } 5 tuya_get_imei 获取当前设备的iccid值,用于上报信息中的参数。 C++ void tuya_get_iccid(char *buffer) { char iccid = {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+ICCID\r\n", 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,用户可以根据自己的业务来修改代码,实现自己的业务逻辑 C++ static void tuya_send_task(void *ptr) { int csq = 0; char imei = {0}; char iccid = {0}; char dp_muti_buf = {0}; char dp_buf = {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.3-mqtt_tls_tuya_connect_kit,如图: 4.2 修改makefile 增加mbedTLS,这里不适用tuya-connect-kit中的mbedTLS,使用sdk本身的版本,增加tuya-connect-kit头文件和源文件路径,如图: 4.3 增加头文件 使用代码编辑器,将新建的工程文件加入代码编辑器中,打开main.c,修改main.c,加入am.h等头文件,如图: main.c 4.4 修改代码 本例对switch_demo_non_qrcode进行了适当的修改,具体查看代码。 4.5 编译 在SDK根目录打开命令行,输入命令.\build.bat -l .\amaziot_bloom_os_sdk\sample\libraries\5.8.3-mqtt_tls_tuya_connect_kit\ C++ PS F:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF λ .\build.bat -l .\amaziot_bloom_os_sdk\sample\libraries\5.8.3-mqtt_tls_tuya_connect_kit\ 子目录或文件 out\bin 已经存在。 子目录或文件 build\mbedTLS 已经存在。 子目录或文件 build\obj 已经存在。 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.3-mqtt_tls_tuya_connect_kit' 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="\"03 25 2024\"" -DBUILD_TIME="\"10:56:28\"" -Iatcmds\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\yuge\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\UART\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\core\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\PMU\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\GPIO\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\os\posix\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\diag\diag_logic\src -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\SysCfg\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\platform\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\env\win32\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\BSP\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\platform\dev_plat\build -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\os\osa\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\os\threadx\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\os\nu_xscale\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\psm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\httpclient\src -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\diag\diag_logic\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\timer\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\intc\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\csw\PM\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\pm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\TickManager\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\BSP\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\atcmdsrv\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\atparser\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\sdk\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\httpclient\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\ci\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\arch -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\ipv4 -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\ipv6 -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\lwip -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\lwipv4v6\src\include\netif -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\mmi_mat\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\tavor\Arbel\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\tavor\env\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\modem\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\duster\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\fota\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\I2C\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\ACIPC\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\fatsys\flash -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\FDI\src\INCLUDE -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\MMU\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\FDI\src\FDI_ADD -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\FDI\src\FM_INC -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\fatsys\fs\hdr -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\littlefs\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\tts\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\dial\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\csw_memory\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\utilities\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\commpm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\nvm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\EEhandler\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\EEhandler\src -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\RTC\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\telephony\ci_client\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\BT_device\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\UART\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\mrd\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\dma\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\softutil\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\SPI\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\websocket\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\atnet_srv\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\softutil\fotacomm\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\aud_sw\Audio\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\aud_sw\ACM_COMM\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\aud_sw\audio_stub\src -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hop\aam\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\aud_sw\AudioHAL\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\hal\dbgshell\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\include\asr160x\pcac\opencpu\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\CSDK_CODE\mbedTLS\mbedTLS_3_2_1\asros -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\CSDK_CODE\mbedTLS\mbedTLS_3_2_1 -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\CSDK_CODE\mbedTLS\mbedTLS_3_2_1\inc -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\CSDK_CODE\mbedTLS\mbedTLS_3_2_1\include -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\CSDK_CODE\mbedTLS\mbedTLS_3_2_1\include\mbedtls -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\CSDK_CODE\mbedTLS\mbedTLS_3_2_1\inc\mbedtls -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\CSDK_CODE\mbedTLS\mbedTLS_3_2_1\tests\include\test -DSDK_ENABLE_MBEDTLS -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\amaziot_bloom_os_sdk\utils -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\examples\switch_demo_non_qrcode -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\include -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\utils -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\interface -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\middleware -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\libraries\coreJSON\source\include -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\libraries\coreMQTT\source\include -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\libraries\coreHTTP\source\include -IF:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/platforms/tuya/tuya-connect-kit\libraries\coreHTTP\source\dependency\3rdparty\http_parser -o build\obj/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.3-mqtt_tls_tuya_connect_kit/atcmds/src/ext_at_cmds.c armlink.exe build\obj/core_http_client.o build\obj/http_parser.o build\obj/core_json.o build\obj/core_mqtt.o build\obj/core_mqtt_serializer.o build\obj/core_mqtt_state.o build\obj/cJSON.o build\obj/aes_inf.o build\obj/backoff_algorithm.o build\obj/crc32.o build\obj/uni_md5.o build\obj/MultiTimer.o build\obj/network_wrapper.o build\obj/storage_wrapper.o build\obj/system_wrapper.o build\obj/mqtt_client_wrapper.o build\obj/http_client_wrapper.o build\obj/atop_base.o build\obj/atop_service.o build\obj/file_download.o build\obj/iotdns.o build\obj/matop_service.o build\obj/mqtt_bind.o build\obj/mqtt_service.o build\obj/tuya_endpoint.o build\obj/tuya_iot.o build\obj/tuya_ota.o build\obj/switch_demo_non_qrcode.o build\obj/main.o build\obj/ext_at_cmds.o build\obj/ext_at_controller.o build\CSDK_CODE.lib \ -o F:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\out\bin\Arbel_PMD2NONE_40M.axf \ --via F:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\prebuilt_1606l\Arbel_PMD2NONE_targ_objliblist.txt \ --elf \ --scatter F:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\prebuilt_1606l\Crane_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-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\out\bin\Arbel_PMD2NONE_40M.map \ --keep init.o(Header) --keep init.o(Vectors) --diag_suppress 6312,6314,6319,6329 \ --feedback F:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\out\feedbackLinkOptLteonlyThin_SingleSim_NoSMS.txt F:\3.asr-b\cat.1-asr1606\1.software\BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF\tools\buildimage_1606l.bat SDK_PROD_TYPE : SDK_CUST_SKU : SDK_PS_MODE : SDK_CHIP_VER : SDK_OS_TYPE : Platform Convertion Tools v4.01 with PS option extension Convertion done! |INPUT |out\bin\cp_1606L.bin |MARK |NAME |EXEADDR .LOADADDR.LENGTH .CPZLADDR|COMPRESS STASTIC | |--------|--------|--------.--------.--------.--------|------------------------------| |This Is LteOnly 4M| 00003000 |This Is LteOnly 4M| 00001000 |This Is LteOnly 4M| 0000a000 |This Is LteOnly 4M| 0001e000 |This Is LteOnly 4M| 0001b000 |This Is LteOnly 4M| 0001b000 |This Is LteOnly 4M| 0001a000 |This Is LteOnly 4M| 0001a000 |This Is LteOnly 4M| 00011000 |This Is LteOnly 4M| 0001e000 |This Is LteOnly 4M| 00021000 |This Is LteOnly 4M| 00011000 |--------|--------|--------.--------.--------.--------|------------------------------| 0x00182000| 1.508(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.3-mqtt_tls_tuya_connect_kit' "copy NEZHAC_CP_CNR_MIFI_TX.bin to ./ " 已复制 1 个文件。 4.6 生成固件 参考入门中开发工具,生成工具。 4.7 扫描二维码,添加设备 app添加设备后,设备上电,demo运行后,会上报一次iccid、imei,之后循环上报设备csq值 5 总结 根据实验现象,按照本文所述流程,可以实现红豆平台连接涂鸦 IoT 平台。 注:本文部分内容来源于网络,如有侵权,请及时联系我们。 本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki: Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
  • 热度 1
    2023-12-18 14:22
    559 次阅读|
    0 个评论
    涂鸦 T2-U 开发板主控采用涂鸦智能开发的一款嵌入式 Wi-Fi 和蓝牙双模模组 T2-U,它由一个高集成度的无线射频模组 T2-U 和外围的按键、LED 指示灯、I/O 接口、电源和 USB 转串口芯片构成。 T2-U 模组 内置了 32 bit RISC-MCU,最高 120M 主频、内置 2MB 内部 Flash、256K 内部 RAM,支持通过 TuyaOS 进行自定义开发。它可以通过 Wi-Fi 和蓝牙连接云端,您可以登录 涂鸦 IoT 开发平台 使用该模组开发多种 IoT 设备。 外设能力 6 个 PWM 4 个 Timer 2 个 UART 1 个 SPI 1 个 I2C 5 个 ADC 18 个 GPIO 通讯能力 Wi-Fi 支持 802.11b、802.11g、802.11n 标准 通道 1-14@2.4GHz 支持 WEP、WPA/WPA2、WPA/WPA2 PSK (AES)、WPA3 多种安全模式 在 802.11b 模式下,支持最大 +16dBm 的输出功率 支持 STA、AP、STA+AP 工作模式 板载 PCB 天线,天线峰值增益为 2.2dBi 低功耗蓝牙 支持低功耗蓝牙 V5.1 完整标准 基于优先级的 Wi-Fi 和蓝牙共存控制模组,实现实时的优先级和收发调度 蓝牙模式下,支持 6 dBm 发射功率 板载 PCB 天线,天线峰值增益为 2.2dBi 开发方式 T2-U 开发板默认采用 TuyaOS 开发,同时也支持 Tuya-Connect-Kit、Arduino、MicroPython 等多样化开发方式。 方式一:TuyaOS 开发 参考以下文档的顺序进行 TuyaOS 开发: 创建产品 。 下载调试 。 功能演示 。 方式二:TuyaOS - T2-U 示例 下载 TuyaOS 示例 方式一:在 Tuya Wind IDE 免费下载 TuyaOS - T2-U 开发包。 方式二:在 GitHub 仓库下载 tuyaos-development-board-t2 工程。 TuyaOS 示例详情 : 云端连接最小系统示例 幻彩灯带产品开发包 万能红外遥控器产品开发包 ADC、GPIO、I2C、PWM、SPI、Timer、Watchdog 外设使用示例 Wi-Fi 相关 Station、AP、Scan、低功耗等各种相关示例代码 低功耗蓝牙相关 Central、Peripheral 相关示例代码 各种低功耗蓝牙遥控器、Wi-Fi 遥控器(Tuya FFC)示例代码 RTOS 相关 Thread、Mutex、Semaphore、Message-queue、Software-timer 等示例代码 HTTP、HTTP 文件下载功能示例代码 电量统计芯片驱动、以及相关使用示例代码,包括 bl0937、bl0942、hlw8032、hlw8012 等 幻彩灯带芯片驱动、以及相关使用示例代码,包括 ws2812、ws2814、yx19036、sm16703p、sm16704pk、sk6812 等 照明驱动、以及相关使用示例代码,包括 pwm、cct、sm2135e、sm2135ex、sm2x35egh、kp1805x、bp1658cj、bp5758d 等 更多示例添加更新中,可关注 Tuya Wind-IDE 及 GitHub 相关 T2-U 开发框架及示例更新。 T2-U 开发板默认出厂已烧录可连接云端的授权码,切勿全片擦除,否则将导致无法连接涂鸦。 串口日志默认波特率:115200 默认固件 T2-U 开发板默认烧录 云端连接最小系统 demo (apps/tuyaos_demo_quickstart),您可通过 智能生活 App 直接连接云端。您也可以自行编译烧录 云端连接最小系统 demo 或自己的固件进行烧录和调试。 硬件资源 设置 编号 说明 按键 S2 通过 P7 检测,初始化高电平,按下为低电平。 按键 RST 复位按键,按下后模组复位。 指示灯 D2 通过 P26 控制,低电平点亮。 指示灯 D3 3.3V 电源指示灯。 拨码开关 S1 拨码切到 ON 方向导通,通断 USB 转串口芯片的双串口和芯片串口之间的链路。 USB 串口 板载 USB 转 2 路串口 CH343,可同时支持串口下载、串口调试日志输出和普通串口可用于串口开发产品。 可通过拨码开关(SW1)切换模组的两路串口,确认是否连接到 USB 转串口芯片上。拨码开关引脚说明如下表所示: 拨码开关序号 1 2 3 4 芯片引脚 UART1_RX UART1_TX UART2_RX UART2_TX USB 芯片 USB-TX0 USB-RX0 USB-TX1 USB-RX1 拨码切到 ON 方向导通,通断 USB 转串口芯片的双串口和芯片串口之间的链路。 芯片 UART 引脚用于与 MCU 通信或普通 I/O 口使用时,需将相应的拨码位置拨到断开的位置,即数字字母方向。 不同电脑对应的 COM 口号不一定相同。 电源 在 MICROUSB(CN1)输入端口输入 5V DC 条件下,开发板可对外输出电源的能力如下所示: 电源引脚特性: 电源引脚 额定电压/额定电流 5V 参考 DC-005 输入端适配器输入电流 3.3V 3.3V/0.6A 输出电压特性: 输出电流 0A 0.15A 0.3A 0.45A 0.6A 0.75A 输出电压 3.34V 3.36V 3.37V 3.37V 3.38V 3.38V 输出电压特性数据是在 5V 无输出的情况下测试所得。 原理图及 PCB 涂鸦 T2-U 开发板的原理图如下所示: 涂鸦 T2-U 开发板的 PCB 如下图所示: 烧录授权与调试 烧录授权 使用涂鸦烧录授权软件进行烧录授权,可参考以下的操作说明: 将拨码开关(SW1)的 1、2 路都拨至 ON 方向。 T2-U 的串口 UART1 与上位机链路导通。 查看串口日志 将拨码开关(SW1)的 3、4 路都拨至 ON 方向。 T2-U 的串口 UART2 与上位机链路导通,PC 端上位机可通过串口查看 Wi-Fi 工作日志。 串口日志默认波特率:115200 USB 转串口驱动 USB 转串口芯片采用的驱动程序如下所示: Windows 版本 Linux 版本 Mac 版本