W801上电自动重连wifi并通过蓝牙更新账号密码

本文介绍了W801设备在上电后如何自动连接WiFi并利用蓝牙接收命令更新WiFi账号密码的过程。通过解析蓝牙命令,设备能断开并重新连接WiFi,更新后的信息存储于内部flash。实验中使用nRF_connect软件,并注意蓝牙MTU设置。文中还提到了遇到的问题及解决方案,包括内部flash的存储限制和优化建议。
摘要由CSDN通过智能技术生成

一.项目流程

项目整体思路比较简单,W801上电后读取内部flash中保存在固定位置的Wifi账号密码,同时开始蓝牙,每当蓝牙接收到命令后,就对其进行解析,如果为连接wifi命令,则断开当前wifi,并进行新的wifi连接,连接成功后将账号密码更新至内部flash中固定位置,用于下次上电连接。大致的流程图如下:
在这里插入图片描述

二.代码解析

【1】使用说明:本代码使用的基本都是基于SDK中代码进行的修改
【2】主程序:

void UserMain(void)
{
	printf("\n-----------------------PROJECT Version1.6.5---------------------------\n");
	printf("\n-------------------------------BLE Start--------------------------------\n");    //这里在wm_main中开启了蓝牙任务,可以参考官方提供的蓝牙说明书
	tls_os_time_delay(1000);
	printf("\n-------------------------------WiFi Start--------------------------------\n");
	mqtt_start();
	get_wifi_params(ssid, pwd);                                                               //获取内部flash中保存的最近一次成功连接的wifi账号密码
	wifi_connect_net(ssid, pwd);                                                              //进行wifi连接,这个使用的就是demo中的链接函数,做了一点修改
	tls_os_time_delay(3000);
	printf("\n-------------------------------APP Start--------------------------------\n");
	tls_os_task_create(app_handle, "app", app_task,
                           NULL, (void *)app_task_stk, 
                           APP_TASK_SIZE * sizeof(u32),
                           APP_TASK_PRIO, 0);                                                      //主任务
}

【3】蓝牙命令处理的铺垫:要实现蓝牙命令的解析,首先要知道蓝牙接受到命令后在那个位置保存,这个很多大佬已经进行了分享,我这里再简单说明下如下图所示,为了方便后续更多蓝牙命令的处理因此,我单独创建了一个ble_cmd_excute函数用于命令解析执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值