网站可视化后台,网页翻译为什么翻译不了,广州营销型网站建设哪家好,上海做网站的费用一、概述
W801 是一款集成了 Wi-Fi 和蓝牙功能的芯片#xff0c;本文将介绍如何利用 W801 的蓝牙功能#xff0c;实现手机 APP 通过蓝牙配置 W801 连接的 Wi-Fi 名称和密码#xff08;即配网功能#xff09;。
二、文档查看#xff1a;
demo使用手册这里很清楚#xf…一、概述
W801 是一款集成了 Wi-Fi 和蓝牙功能的芯片本文将介绍如何利用 W801 的蓝牙功能实现手机 APP 通过蓝牙配置 W801 连接的 Wi-Fi 名称和密码即配网功能。
二、文档查看
demo使用手册这里很清楚 直接按这个步骤操作即可
三、工具准备
只需要手机下载nRF connect即可文档说应用商店可以直接下载我反正是没找到。。
这里也是搜索了一下把nRF connect下载的文章贴上
【nRF Connect】一、下载方法及简介-CSDN博客https://blog.csdn.net/weixin_43352285/article/details/124518583https://blog.csdn.net/weixin_43352285/article/details/124518583
四、代码编写
1、打开蓝牙demo的任务 直接按文档操作打开BT任务 打开TLS_CONFIG_BLE、关闭宏定义 TLS_CONFIG_BR_EDR 看手册的操作过程我们可以看到是w801作server端找到服务端的文件然后只找到demo初始化再点进去server的初始化 点进gatt_demo_svr_svcs可以看到接收处理是gatt_svr_chr_demo_access_func这个函数 2、修改蓝牙接收函数
程序原来只把数据的16进制打印了出来print_bytes我加了打印长度和字符因为现在要实现的是发送wifi名字和密码 3、打印log测试
①改完后编译烧写程序按手册步骤开蓝牙 ②然后手机端用nRF connect找到设备 ③连接设备 ④点击这里发送 我是之前就保存了第一次点new 然后选择text在值那里输入就好。 ⑥查看串口打印log
方框上边的是连接成功打印的内容方框内就是我们刚编写的测试代码。 4、连接wifi
接收到wifi的名称和密码后我本来想直接调用demo_connect_net的但是在wm_ble_server_api_demo.c文件直接引用wm_demo_console.h的话会报错看了下原因是会有重复定义所以我直接在wifi连接的wm_connect_net_demo.c里边重新再定义了一个链接函数。
内容跟demo_connect_net一样只是做了换名手术 然后在wm_demo.h里边定义 蓝牙数据的接收函数里简单作了一下数据判断然后收到密码的时候直接调用connect_net连接wifiwifi_name和wifi_password两个数组我做了全局 五、实测
下载程序后像上边一样先串口输入t-bt-on再输入t-ble-server-on打开蓝牙服务
手机再连接然后发送wifi的名称和密码发送的内容从上边的程序也可以看出来
我下边保存的wifiname的数据内容是 name双引号里是你的wifi名称password的数据内容是 password双引号里是你的wifi密码 发送之后查看串口打印的信息把名称和密码都打印了出来然后开始连接网络这里能看出来是成功了 六、后续思考
这里实现的只是很简单的跑通这个用途可优化和细节的地方有很多例如打开蓝牙可以通过按键而不是用串口来输入命令用串口来输入命令那还不如直接输入wifi的连接指令接收到wifi的名称和密码后可发送接收成功到手机app连接成功也可以发送成功信息还可以在wifi连接成功后执行mqtt的任务。