add project.config.json
|-- app.js:定义小程序全局变量 |-- app.json:tabBar(底部导航栏)配置 |-- weui.wxss:weui库 |-- pages | |-- device-information:设备信息页面 | | |-- device-information.js | | |-- device-information.json | | |-- device-information.wxml | | |-- device-information.wxss | |-- device-interface:设备接口页面 | | |-- device-interface.js | | |-- device-interface.json | | |-- device-interface.wxml | | |-- device-interface.wxss | |-- images:项目所有图标 | | |-- Dmp设备接口-active.png | | |-- Dmp设备接口.png | | |-- Dmp设备接口new-active.png | | |-- hero.svg | | |-- scan.png | | |-- scan.svg | | |-- 以太网-active.png | | |-- 以太网.png | | |-- 以太网new-active.png | | |-- 网络设置-active.png | | |-- 网络设置.png | | |-- 网络设置new-active.png | | |-- 联通4G-active.png | | |-- 联通4G.png | | |-- 联通4Gnew-active.png | | |-- 设备信息-active.png | | |-- 设备信息.png | | |-- 设备信息new-active.png | | |-- 首页-active.png | | |-- 首页.png | |-- search:搜索页面(首页) | | |-- search.js | | |-- search.json | | |-- search.wxml | | |-- search.wxss | |-- settings:网络设置页面 | |-- settings.js | |-- settings.json | |-- settings.wxml | |-- settings.wxss |-- utils |-- util.js:工具库
如下图所示,搜索页面的初始界面只有一个“搜索蓝牙设备”按钮。点击该按钮,手机开始搜索周围所有的蓝牙设备。
点击搜索按钮后,可以显示搜索到的每一个蓝牙设备的设备名称,设备ID以及信号强度。
如果再次点击按钮,则会停止蓝牙设备搜索。停止搜索后,如果再点击按钮,会重新搜索蓝牙设备。
如果点击任意设备,微信小程序会尝试使用蓝牙连接设备。若连接成功,会跳转至device-information页面;若连接失败,则会显示“蓝牙连接失败”的Toast。
设备信息页面用于显示设备信息,包括系统ID、模块编号、设备序列号、固件版本、硬件版本、软件版本、设备生产商,如下图所示:
这些设备信息通过读取特征值来获取,相关的服务ID和特征值ID详见附录2 蓝牙特征值 设备信息。
该页面用于配置设备接口相关参数,目前实现的设备接口仅有RS485。
RS485可以配置的参数有波特率、数据位、停止位、校验位。点击对应的选项可以弹出选择界面,如下所示:
点击确定按钮,会向设备发送设备接口设置报文。
settings页面主要用于进行网络设置,目前可以配置的模块为4G模块和以太网模块。点击上方导航栏可以切换模块,如下所示:
目前的字段校验工作由微信小程序前端来完成,如果字段填写不规范,小程序前端不会发送配置请求报文,而是会弹出相应的错误Toast,用于提醒用户哪个字段填写有误,如下所示:
字段填写规范如下:
a.b.c.d
4G模块可以配置的字段有:目的IP地址、目的端口号、MQTT开关、MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
如果关闭MQTT开关,则无法配置MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
打开MQTT开关之后的页面如下所示:
关闭MQTT开关之后的页面如下所示:
Ethernet模块可以配置的字段有:目的IP地址、目的端口号、DHCP开关、源IP地址、源端口号、子网掩码、网关地址。
如果打开DHCP开关,则无法配置源IP地址、源端口号、子网掩码、网关地址。
关闭DHCP开关后的页面如下所示:
打开DHCP开关后的页面如下所示:
点击确认按钮后,若字段校验全部通过,则会发送一个请求报文。此时微信小程序会等待网络连接状态的响应报文,并且显示正在连接的标识,如下所示:
若连接成功,则显示“连接成功”的标识,如下所示:
若连接失败,则显示“连接失败”的标识,如下所示:
ch32v208与微信小程序通过蓝牙交互。一个请求报文分成多个蓝牙包,每个蓝牙包固定20字节。
微信小程序发出请求报文,ch32v208响应确认报文并解析请求报文。如果配置的是4G模块或者以太网模块,还会响应一个网络连接状态报文。
微信小程序向ch32v208发送请求报文。
==蓝牙每个包固定20个字节,每次发送请求可能有多个包,根据报文类型决定==
4G模块:关闭MQTT开关,设置目的IP地址、目的端口号。
4G模块:打开MQTT开关,设置目的IP地址、目的端口号、MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
以太网模块:打开DHCP开关,设置目的IP地址、目的端口号。
以太网模块:关闭DHCP开关,设置目的IP地址、目的端口号、源IP地址、源端口号、子网掩码、网关地址。
RS485模块,设置波特率、数据位、停止位、校验位。
2400
0x01
4800
0x02
9600
0x03
19200
0x04
38400
0x05
57600
0x06
115200
0x07
230400
0x08
8
9
1
2
None
Odd
Even
ch32v208向微信小程序发送响应报文。
如果ch32v208收到设置报文,会通过类型为notification的特征值向微信小程序返回设置确认报文。
如果微信小程序发送网络设置报文,ch32v208会通过类型为notification的特征值向小程序返回网络连接状态报文。
ch32v208通过两个特征值与微信小程序进行交互:
ble_uart_RxChar
ble_uart_TxChar
如下图所示:
基于xizi工业物联网操作系统的微信小程序,旨在实现智能设备与服务的无缝互联,构建出一个万物皆可智能交互、互联互通的未来生态体系
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
1. 项目结构
2. 页面路由
3. 功能详解
3.1 search
3.1.1 初始界面
如下图所示,搜索页面的初始界面只有一个“搜索蓝牙设备”按钮。点击该按钮,手机开始搜索周围所有的蓝牙设备。
3.1.2 显示周围所有蓝牙设备
点击搜索按钮后,可以显示搜索到的每一个蓝牙设备的设备名称,设备ID以及信号强度。
如果再次点击按钮,则会停止蓝牙设备搜索。停止搜索后,如果再点击按钮,会重新搜索蓝牙设备。
如果点击任意设备,微信小程序会尝试使用蓝牙连接设备。若连接成功,会跳转至device-information页面;若连接失败,则会显示“蓝牙连接失败”的Toast。
3.2 device-information
设备信息页面用于显示设备信息,包括系统ID、模块编号、设备序列号、固件版本、硬件版本、软件版本、设备生产商,如下图所示:
这些设备信息通过读取特征值来获取,相关的服务ID和特征值ID详见附录2 蓝牙特征值 设备信息。
3.3 device-interface
该页面用于配置设备接口相关参数,目前实现的设备接口仅有RS485。
RS485可以配置的参数有波特率、数据位、停止位、校验位。点击对应的选项可以弹出选择界面,如下所示:
点击确定按钮,会向设备发送设备接口设置报文。
3.4 settings
3.4.1 切换模块
settings页面主要用于进行网络设置,目前可以配置的模块为4G模块和以太网模块。点击上方导航栏可以切换模块,如下所示:
3.4.2 字段校验
目前的字段校验工作由微信小程序前端来完成,如果字段填写不规范,小程序前端不会发送配置请求报文,而是会弹出相应的错误Toast,用于提醒用户哪个字段填写有误,如下所示:
字段填写规范如下:
a.b.c.d
,a,b,c,d是0~255之间的十进制整数a.b.c.d
,a,b,c,d是0~255之间的十进制整数a.b.c.d
,a,b,c,d是0~255之间的十进制整数a.b.c.d
,a,b,c,d是0~255之间的十进制整数3.4.3 模块字段
3.4.3.1 4G
4G模块可以配置的字段有:目的IP地址、目的端口号、MQTT开关、MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
如果关闭MQTT开关,则无法配置MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
打开MQTT开关之后的页面如下所示:
关闭MQTT开关之后的页面如下所示:
3.4.3.2 Ethernet
Ethernet模块可以配置的字段有:目的IP地址、目的端口号、DHCP开关、源IP地址、源端口号、子网掩码、网关地址。
如果打开DHCP开关,则无法配置源IP地址、源端口号、子网掩码、网关地址。
关闭DHCP开关后的页面如下所示:
打开DHCP开关后的页面如下所示:
3.4.4 连接状态
点击确认按钮后,若字段校验全部通过,则会发送一个请求报文。此时微信小程序会等待网络连接状态的响应报文,并且显示正在连接的标识,如下所示:
若连接成功,则显示“连接成功”的标识,如下所示:
若连接失败,则显示“连接失败”的标识,如下所示:
附录1 蓝牙帧格式
ch32v208与微信小程序通过蓝牙交互。一个请求报文分成多个蓝牙包,每个蓝牙包固定20字节。
微信小程序发出请求报文,ch32v208响应确认报文并解析请求报文。如果配置的是4G模块或者以太网模块,还会响应一个网络连接状态报文。
请求报文
微信小程序向ch32v208发送请求报文。
请求蓝牙包格式
==蓝牙每个包固定20个字节,每次发送请求可能有多个包,根据报文类型决定==
网络设置报文
4G模块:关闭MQTT开关,设置目的IP地址、目的端口号。
4G模块:打开MQTT开关,设置目的IP地址、目的端口号、MQTT发布主题、MQTT用户名、MQTT密码、MQTT客户端ID。
以太网模块:打开DHCP开关,设置目的IP地址、目的端口号。
以太网模块:关闭DHCP开关,设置目的IP地址、目的端口号、源IP地址、源端口号、子网掩码、网关地址。
设备接口设置报文
RS485模块,设置波特率、数据位、停止位、校验位。
2400
->0x01
4800
->0x02
9600
->0x03
19200
->0x04
38400
->0x05
57600
->0x06
115200
->0x07
230400
->0x08
8
->0x01
9
->0x02
1
->0x01
2
->0x02
None
->0x01
Odd
->0x02
Even
->0x03
响应报文
ch32v208向微信小程序发送响应报文。
设置确认报文
如果ch32v208收到设置报文,会通过类型为notification的特征值向微信小程序返回设置确认报文。
网络连接状态报文
如果微信小程序发送网络设置报文,ch32v208会通过类型为notification的特征值向小程序返回网络连接状态报文。
附录2 蓝牙特征值
设备信息
交互
ch32v208通过两个特征值与微信小程序进行交互:
ble_uart_RxChar
(在ch32v208视角中是读取该特征值)。ble_uart_TxChar
(在ch32v208视角中是写入该特征值)。如下图所示: