登录发现更多内容
首页
分类
发帖
账号
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
首页
Portal
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
产品教程
BBS
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
开发资料
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
样品购买
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
IoT云平台
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
GitHub
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
技术博客
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
搜索
搜索
热搜:
LoRa
ESP8266
安信可
本版
帖子
用户
请
登录
后使用快捷导航
没有账号?
立即注册
每日签到
任务
广播
导读
排行榜
设置
我的收藏
退出
9
2
2
首页
官方教程玩法
›
智能家居之旅,第十四站:安信可IOT Blufi配网工具新功 ...
返回列表
智能家居之旅,第十四站:安信可IOT Blufi配网工具新功能介绍
[ 复制链接 ]
发布帖子
起个名字好难啊
论坛元老
40
主题
78
回帖
6667
积分
论坛元老
论坛元老, 积分 6667, 距离下一级还需 9993332 积分
论坛元老, 积分 6667, 距离下一级还需 9993332 积分
积分
6667
私信
9人留言
楼主
官方教程玩法
1808
9
2024-7-18 10:27:37
# 安信可IOT 微信小程序 今天水一篇帖子,给大家介绍一下小程序配网工具-安信可IOT,昨天刚发布了新的版本,新增了服务器地址配置的功能。 可以说这个新功能,给我们带来了不少便利,特别是HomeAssistant固件使用这一块。 昨天(2024年7月17号)之前,安信可IOT小程序只能给大家提供配网程序,大家能够利用蓝牙功能给WiFi模块进行无线网络配置,但是随着DIY作品不断地更新,发现要给大家更加方便地使用固件地话,涉及TCP服务器和MQTT服务器地址配置只能通过AT指令来实现,在某些应用场合根本无法实现。 #### 所以,就让前端工程师加了这个功能,在配网的时候,可以选择配置服务器地址 # 新功能介绍 ## 新功能使用说明  ## 数据格式 小程序下发的服务器配置数据是以json格式下发: ```json { "server_type": { "addr":"0.0.0.0", "port":"xxxxx" } } ``` | 字段名 |说明| 示例 | | --- | ---| --- | |server_type | 服务器类型 | "tcp" | | addr | 服务器地址,支持IPV4地址和域名 | "192.168.1.1"| | port | 服务器端口号 | 1883 | > 例如:下发一个**TCP服务器**,地址为:**192.168.3.1**,端口号为:**8888**,则数据为: > > ```json > { > "tcp": > { > "addr":"192.168.3.1", > "port":"8888" > } > } > ``` ## 数据接收 数据接收就是设备端的了,但是前提是要使用Blufi 配网功能,在Ai-WB2的SDK([Ai-Thinker-WB2]([https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2](https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2)))当中,有Blufi的demo。  因为小程序下发的数据是通过Blufi的**custom data**(自定义数据)接口下发,在blufo demo当中的**AXK_BLUFI_EVENT_RECV_CUSTOM_DATA**事件,可以看到下发的服务器地址数据:  ## 数据解析 既然是json 数据,那只要引用cJSON.h 头文件,就能实现对服务器地址和端口号的解析,下面写了函数,大家做个参考 #### 解析服务器地址 ```C static char data_buff[128] = { 0 }; char* get_ip_addr_from_custom_data(const char* server_type, const char* custom_data) { if (custom_data==NULL) { blog_error("custom_data is NULL"); return NULL; } char* cjson_root = custom_data; cJSON* root = cJSON_Parse(cjson_root); if (root==NULL) { blog_error("%s is't json data", cjson_root); cJSON_Delete(root); return NULL; } cJSON* add_type = cJSON_GetObjectItem(root, server_type); if (add_type==NULL) { blog_error("%s not \"%s\" project ", cjson_root,server_type); cJSON_Delete(root); return NULL; } cJSON* addr = cJSON_GetObjectItem(add_type, "addr"); if (addr==NULL) { blog_error("%s not \"addr\" project ", cjson_root); cJSON_Delete(root); return NULL; } memset(data_buff, 0, 128); strcpy(data_buff, addr->valuestring); cJSON_Delete(root); return data_buff; } ``` | 函数说明 | 说明| 示例| | --- | --- | --- | | server_type | 服务器类型,支持以下类型:tcp、udp和mqtt | "tcp"| |custom_data| blufi 接收自定义数据 |/| |返回值:char*|返回服务器地址的指针|/| 调用示例: > char* addr=get_ip_addr_from_custom_data("tcp",custom_data); > printf("addr=%s\r\n",addr); #### 解析端口号 ```c uint16_t get_port_from_custom_data(const char* server_type, const char* custom_data) { if (custom_data==NULL) { blog_error("custom_data is NULL"); return NULL; } char* cjson_root = custom_data; cJSON* root = cJSON_Parse(cjson_root); if (root==NULL) { blog_error("%s is't json data", cjson_root); cJSON_Delete(root); return NULL; } cJSON* add_type = cJSON_GetObjectItem(root, server_type); if (add_type==NULL) { blog_error("%s not \"%s\" project ", cjson_root,server_type); cJSON_Delete(root); return NULL; } cJSON* port_p = cJSON_GetObjectItem(add_type, "port"); if (port_p==NULL) { blog_error("%s not \"port\" project ", cjson_root); cJSON_Delete(root); return NULL; } uint16_t port = atoi(port_p->valuestring); cJSON_Delete(root); return port; } ``` | 函数说明 | 说明| 示例| | --- | --- | --- | | server_type | 服务器类型,支持以下类型:tcp、udp和mqtt | "tcp"| |custom_data| blufi 接收自定义数据 |/| |返回值:uint16_t|返回端口号,范围:0-65535|1883| 调用示例: > uint16_t port=get_port_from_custom_data("tcp",custom_data); > printf("port=%d\r\n",port); ## 这些程序流程我就不解释,太简单了,不懂的话,自己去学一下cjson的数据解析
点赞
2
收藏
2
淘帖
1
────
2
人觉得很赞
────
本帖被以下淘专辑推荐:
·
HomeAssistant
|
主题: 15, 订阅: 0
回复
使用道具
举报
9 回复
电梯直达
正序浏览
倒序浏览
正序浏览
沙发
Francisliu
回复
使用道具
举报
2024-7-18 10:31:38
牛的不行
回复
评论
使用道具
举报
板凳
业余菜狗
来自手机
回复
使用道具
举报
2024-7-18 10:31:41
爱了爱了
回复
评论
使用道具
举报
地板
爱笑
回复
使用道具
举报
2024-7-18 10:37:11
更新速度越来越快了
回复
评论
使用道具
举报
用心做好保姆工作
5
#
IBelieve
回复
使用道具
举报
2024-7-18 14:17:24
点赞
回复
评论
使用道具
举报
6
#
1084504793
回复
使用道具
举报
2024-7-18 18:11:05
赞
回复
评论
使用道具
举报
7
#
iiv
回复
使用道具
举报
2024-7-21 18:44:23
莫哥🐮X
回复
评论
使用道具
举报
8
#
WT_0213
回复
使用道具
举报
2024-7-22 09:18:16
厉害
回复
评论
使用道具
举报
9
#
bzhou830
回复
使用道具
举报
2024-7-22 09:19:03
厉害
回复
评论
使用道具
举报
选择去发光,而不是被照亮
10
#
USN
回复
使用道具
举报
2024-7-22 11:55:39
厉害
回复
评论
使用道具
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
手机登录
点评
高级模式
本版积分规则
回帖并转播
回帖后跳转到最后一页
返回
今日推荐
基于 Ai-WV01-32S+STM32移植 emMCP 实现 AI 语音控制点灯
AiPi-PalChatV1_“湾湾小何”提示音测试固件V2.9_UART-MCP
[WB2] 实现自动发现局域网下的设备
热帖排行
基于 Ai-WV01-32S+STM32移植 emMCP 实现 AI 语音控制点灯
求助各位大佬PB-03F的断连问题
求助各位大佬PB-03F的断连问题
ra-01sc-p发射功率大小的使用问题
[AiPi-PalchatV1] [Windows] 克隆仓库和在线烧录遇到的一些小问
AT+MQTTPUBRAW指令所支持的最大数据传输量是多少
AiPi-PalChatV1_UART-MCP_v2.8 UART-MCP 协议配置 问题
Ai-WB2蓝牙怎么连接打印机
统计信息
会员数: 30479 个
话题数: 44649 篇
首页
分类
我的