# WeXCube **Repository Path**: water_source/wexcube ## Basic Information - **Project Name**: WeXCube - **Description**: WeXCube 是一款可以快速搭建手机与蓝牙设备连接的应用,它由微信小程序、单片机 SDK 及电脑调试助手三部分组成。用户可以通过小程序自定义设备控制界面,然后使用电脑调试助手查看使用效果,最后在设备单片机内加入 SDK 实现小程序与设备之间的通信。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 13 - **Created**: 2025-05-10 - **Last Updated**: 2025-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WeXCube > ## 基本介绍 > WeXCube 是一款可以快速搭建手机与蓝牙设备连接的应用,它由微信小程序、单片机 SDK 及电脑调试助手三部分组成。用户可以通过小程序自定义设备控制界面,然后使用电脑调试助手查看使用效果,最后在设备单片机内加入 SDK 实现小程序与设备之间的通信。
>
> 创建的设备存放在云端数据库中,清理微信缓存不会丢失设备信息。 > ## 控制原理 > WeXCube 通信通过蓝牙 BLE 的透传功能实现,小程序与单片机之间的通信数据由 SDK 负责编解码,用户只需调用 SDK 中的函数即可。
> ![alt](/Pictures/WeXCube通信机制.png)
> 小程序向单片机发送指令:当用户改变控制页面控件的状态时(比如点击按钮、改变输入框内容、改变滑动条值等),小程序就会向蓝牙模块发送指令,蓝牙模块会把这些指令通过串口透传给单片机,单片机调用 SDK 解析指令内容,告知用户指令类型。
>
> 单片机向小程序发送指令:当用户想修改页面控件属性(比如控件颜色、控制文本内容等),可以调用 SDK 中相关函数给小程序发送相应指令,小程序接收到指令就会立刻更新相应控制属性。
>
> 每个控件都有唯一的控件 ID,小程序与单片机 SDK 就是通过这个 ID 来区分控件的。用户可以自行修改控件 ID,ID 范围为 1~255。
> ## WeXCube 的功能 > 1、可以与蓝牙 BLE 连接,包括蓝牙透传模块和单片机内部蓝牙。
> 2、可以在小程序中自定义设备控制页面,页面数据放在云端数据库中,清理微信缓存不会丢失设备信息。
> 3、设备控制页面可以转发分享给他人使用。
> 4、可以在电脑微信上编辑设备控制内容。

> ## 创建设备步骤 > ### 步骤一:在小程序中添加设备及设备控制页面布局 > ![alt](/Pictures/help_picture3.webp)
> 1、添加设备,设定设备名称、设备对应蓝牙、蓝牙的通知及写入特征值。
> 2、在设备控制页面添加所需控件,控件种类包括按键、开关、文本、滑动条、输入框、进度条及折线图。
> 3、修改控件属性,包括尺寸大小、背景颜色、字体颜色、字体大小及控件所在页面坐标。
>
> 在手机上操作可能比较麻烦,特别是调整控件坐标时。这时我们可以在电脑微信上操作页面设计,当设计好了,再在手机端连接使用。
> ![alt](/Pictures/desktop_wechat.png)
> 为了避免数据操作冲突,我们不能同时在手机和电脑上同时编辑设备页面。当在电脑上编辑好页面后可以点击保存,手机端呢可以先退回主页然后再进入设备控制页,这样手机端的页面数据就能更新了。
>
> 提示:
> 页面宽度为 750,控件可移动区域宽度为 650。
> 蓝牙需要支持 BLE、有通知及写入特征值。
> ### 步骤二:使用电脑端指令调试助手查看效果 > ![alt](/Pictures/help_picture4.webp)
> 1、使用前需要把蓝牙模块接入到 USB 串口助手。
> 2、在调试助手软件上选择正确的串口号。
> 3、当小程序显示已连接,此时调试助手就可以与小程序通信了。
>
> 该步骤用来加快开发速度,通过电脑调试可以快速查看设计页面的交互效果,省去了反复烧入单片机程序时间。当然如果设计的页面比较简单,该步骤是可以省去的。
> ### 步骤三:在单片机项目中添加 WeXCube SDK > ![alt](/Pictures/WeXCube_SDK.webp)
> 1、往单片机项目中添加 SDK 文件。
> 2、在 wexcube_port.c 中完成接口配置。
> 3、在单片机项目主函数中初始化 WeXCube 及开启服务。
> 4、在主函数中循环调用 wex_process() 查询 WeXCube 运行事件。
> 5、最后根据运行事件调用相关 SDK API 函数获取或发送数据。
>
> WeXCube 也提供了一些常用的示例模板,我们可以在这些示例模块下做些调整来实现自己的设备控制页面。模板的单片机程序都可以在 Examples 目录获取到。
> ![alt](/Pictures/example_list.png)
>
> 除此之外,我们还可以把自己创建的设备分享给其他人使用,也可以生成设备二维码贴在设备上,这样就能被更多人使用了。如果你不想把自己的设备共享给别人使用,也可以关闭分享,这样别人就访问不了了。
> ![alt](/Pictures/share_menu.png)
>
> 已经分享的设备会在主页的设备列表上显示分享标志。
> ![alt](/Pictures/device_share.png)
>
> 其他用户可以收藏分享设备,被收藏的设备会在主页的设备列表上显示收藏标志。
> ![alt](/Pictures/device_collection.png)
> ## 注意事项 > #### 1、分享的设备如果被删除将关闭分享功能,且不能被恢复。 > #### 2、只有蓝牙和 WeXCube 都连接成功才能进行数据通信。 > #### 3、不能同时在电脑、手机上编辑设备内容。 > #### 4、苹果分享的设备,他人使用需要重新编辑蓝牙连接信息。 > #### 5、删除已经分享的设备会关闭该设备的分享访问。 ### 视频演示地址 https://www.bilibili.com/video/BV1mKrxYFE4c/?spm_id_from=333.337.search-card.all.click&vd_source=092467d4573d952f721032ef4e80100f > ## 异常处理 > #### 1、添加设备时蓝牙搜索不到。 > 小程序只支持 BLE 蓝牙,也就是低功耗蓝牙,使用时需要确保你的蓝牙支持 BLE。 > #### 2、苹果创建的设备在其他手机上不能连接。 > 苹果系统获取到的蓝牙 MAC 地址与安卓机方式不同。安卓机地址为固定的6字节,每台安卓机获取同一个蓝牙地址相同。而苹果机上为系统加密生成的,每台设备都不一样,也就导致苹果机之间的蓝牙地址不能相互通用。 > #### 3、控制页面经常提示WeXCube异常断开。 > 导致这个提示可能有以下原因:
> a. 单片机给蓝牙发送数据过于频繁导致蓝牙数据阻塞,可以适当加些延时,如果使用的是蓝牙模块可以把串口波特率调整为9600。
> b. 单片机内部wexcube sdk运行异常不能正常编解码蓝牙数据,可以在单片机程序中加打印调试。
> c. 环境干扰信号过多导致蓝牙信号不稳定,可以尽量缩短蓝牙通信距离排除问题。 > ## WeXCube 微信小程序 > ![alt WeXCube 微信小程序二维码](/MiniProgram/qr_miniprogram.jpg)
>