使用安信可Ai-WB2-12F开启wifi与手机通信TCP-IP(AT指令)

news2024/9/19 18:32:38

当时在做两个单片机之间无线通信,或者单片机与手机无线通信,就像找一个蓝牙和wifi双模的无线模块,一开始看ESP8684(ESP32-C2)这个芯片模组是有wifi和蓝牙的,买回来后才发现他不可以在程序运行中更换蓝牙或者wifi模式,每次需要更改只能重新下载固件,价格大概7块左右,如果需要满足上诉的需求的话,就只能上esp32经典模组了,那价格又高了不少,而且属于有点浪费资源了,后面就发现了这个安信可的Ai-WB2-12F模组,只需要8块左右,就可以蓝牙wifi双模同时开启,于是就使用了这个作为我的无限模块通信设备,使用后准备写一篇博客记录一下与单片机的通信过程和使用过程


这个模组买回来就自带了合适的固件,也可以自己更改固件,但是大部分情况都是适用的

https://blog.csdn.net/Boantong_/article/details/125781602?spm=1001.2014.3001.5501
这个是固件升级说明文档,我们只烧录一个文件,因此,烧录软件部分章节,看5.3部分内容



官方文档中AT指令的使用已经写的比较详细了,这里就简单说一下一些我遇到的问题,其余的查看文档足够解决问题了

模组总资料:
https://docs.ai-thinker.com/wb2

AT指令使用文档
https://aithinker-combo-guide.readthedocs.io/en/latest/index.html


这些命令都可以到AT命令集中去查看那些后面的数字参数是什么意思


这里我用的正点原子的xcom串口助手,进行串口调试

建议每次要设置这些网络时,先复位一下模组,否则有时候网络连接可能会出问题

AT+RST


然后就是按照AT指令文档的使用示例去发送对应的AT指令




如果遇到这个错误,也可以去查看错误码找到相应的问题,不过更快的解决方案是直接发送复位指令,然后发送成功后
这样就可以让手机连接这个模组的热点了
我这里是手机应用商店下载的一款网络调试工具,名字叫做【网络调试精灵】
我们先让手机连接这个模组的热点,账号密码就是刚刚发送的AT指令中包含的数据

手机连接了wifi热点后,无线模组会打印:

然后我们手机打开调试工具
因为无线模组是服务端,所以我们需要在工具中建立一个TCP客户端
主机ip地址可以查看

通过文档我们可以知道黑色框中就是ip地址
我们手网络工具上也填写这个地址端口就是刚刚发送的
 

AT+SOCKET=3,6666

后面的“6666”

填写这些信息后,点击连接,显示连接成功,如果连接失败的话注意看wifi是不是被自动切换了,或者端口是不是开错了,以及wifi模块有没有正常工作(电流不够可能会开启不了wifi,确保电源能提供最大电流超过500mA)

有这个代表连接成功了
其他的发送数据和接收数据,官方的文档也写得很清楚


我们发送:

手机网络调试工具显示:


然后我们客户端发数据(手机网络调试工具)

这是我网络调试工具发送的
这是我串口接收的

我们这串口工具显示有接收数据
这里因为我想直接读取我最新的发送数据于是我改了读取格式

AT+SOCKETRECVCFG=1


如果你按照默认的格式读取,那么还需要发送读取指令,去读取消息队列中缓存的数据

你还需要发送:

AT+SOCKETREAD=2

去读取数据,那些参数都可以去官方文档查找

AT+SOCKETRECVCFG=0

这样就实现了手机上网络调试工具与无线模组通信,这样以后很多内容就可以无线查看数据和调整参数了,例如制作平衡小车,更改pid参数,就可以用这种方法,当然也可以自己制作软件或者微信小程序调用官方的API代码,还是比较简单的,这里就简单的使用一下别人制作的软件了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2091621.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《黑神话·悟空》这款游戏到底是用什么编程语言开发的?

你也有被这段游戏试玩视频刷屏吗? 13分钟、国产团队出品、B站上线不到24小时,播放量已经破千万,迅速火爆全网。 这就是来自国内游戏团队游戏科学(Game Science)开发的3A大作《黑神话:悟空》。 《黑神话悟…

vscode开发小程序

1 安装 "微信小程序开发工具" 2 安装 "WXML - Language Service" 3 安装 "wxmp-api-plugin" 或 "wechat-snippet" 4 安装"WXSS"

顶级的python入门教程!小白到大师,从这篇教程开始!

1. 为什么要学习Python? 学习Python的原因有很多,以下是几个主要的原因: 广泛应用:Python被广泛应用于Web开发、数据科学、人工智能、机器学习、自动化运维、网络爬虫、科学计算、游戏开发等多个领域。掌握Python意味着你可以在这…

嵌入式全栈开发学习笔记---Linux系统编程(进程间通信)

目录 进程间通信概述 进程通信目的 进程间通信的发展 进程间通信分类 管道通信 无名管道 有名管道mkfifo() 信号 发送信号kill & raise 忽略信号signal() 发送信号alarm() 消息队列 消息队列使用的步骤 创建消息队列msgget() 读写消息队列msgrcv()/msgsnd()…

ip地址一天变化好几次

‌IP地址每天变化的原因主要取决于其分配方式:静态或动态。静态IP地址是长期固定分配给一台设备的,除非进行手动更改或网络配置发生变化,否则该设备的IP地址将保持不变。而动态IP地址则是根据网络环境和需求动态分配给设备的,可能…

一些评估模型的总结(1)

最近学习了评估模型(如下所示),对这四种方法进行小总结。 目录 1. 层次分析法。(主观赋权方法,主观确定成对比较矩阵) 2. 熵权法(基于数据的客观赋权的方法) 3. topsis方法&…

【图论入门】图的存储

1.邻接矩阵 邻接矩阵是图论中用于表示图(Graph)结构的一种重要数据结构,特别适用于表示顶点之间连接关系的图形。在计算机科学和数学领域,它被广泛应用来编码无向图和有向图的信息。 特点: 1、无向图的邻接矩阵是对称…

Java:时区的用法

文章目录 ZoneId常见用法 ZonedDateTime常见方法 代码 黑马学习笔记 ZoneId 常见用法 ZonedDateTime 常见方法 代码 package NewTime;import java.time.Clock; import java.time.ZoneId; import java.time.ZonedDateTime;/*** Author: ggdpzhk* CreateTime: 2024-08-31*/ pu…

09:Logic软件原理图信号连通

原理图信号连通 快捷键:F2 2.添加网络名称

【React】为什么Hooks不能出现在判断中

前言 在 React 中,Hooks 不能写在条件语句中,如下面这段代码点击button后则会报错。 import { useEffect, useState } from "react"export default () > {const [count, setCount] useState(0)if (count > 0) {useEffect(() > {co…

4-4 初始化引导程序

基本原理的讲解 在loader所需要做的事情, 1 他这个检测内存的容量,我想知道是怎么做的。 2 然后就是模式的切换。 3 然后就是加载操作系统,并跳转到操作系统执行。 这是 他的总体的逻辑。 首先是加载 512 字节。 所以这512 字节的主要任务…

【Kubernetes部署篇】二进制搭建K8s高可用集群1.26.15版本

文章目录 一、服务器环境信息及部署规划1、K8S服务器信息及网段规划2、服务器部署架构规划3、组件版本信息 二、初始化环境操作1、关闭防火墙2、配置本地域名解析3、配置服务器时间保持一致4、禁用swap交换分区(K8S强制要求禁用)5、配置主机之间无密码登录6、修改Linux内核参数…

springboot 医院挂号系统 ---附源码91789

目录 1 绪论 1.1 研究背景 1.2研究意义 1.3论文结构与章节安排 2 医院挂号系统系统分析 2.1 可行性分析 2.2 系统功能分析 2.3 系统用例分析 2.4 系统流程分析 图2-5业务流程图 2.5本章小结 3 医院挂号系统总体设计 3.1 系统功能模块设计 3.2 数据库设计 3.4本章…

Python读取CSV文件的几种方法!

1、使用 csv 模块 首先,你需要导入csv模块: import csv接下来,你可以使用csv.reader()函数来读取CSV文件。假设你的CSV文件名为data.csv,它的内容如下: Name, Age, Salary John, 25, 5000 Alice, 30, 6000 Bob, 35,…

书生浦语实训营-InternVL 多模态模型部署微调实践

1.什么是InternVL InternVL 是一种用于多模态任务的深度学习模型,旨在处理和理解多种类型的数据输入,如图像和文本。它结合了视觉和语言模型,能够执行复杂的跨模态任务,比如图文匹配、图像描述生成等。 2.InternVL模型介绍 对于…

【自由能系列(初级)】生命负熵——熵增原理与生命秩序的对抗

【通俗理解】生命负熵——熵增原理与生命秩序的对抗 关键词提炼 #生命负熵 #熵增原理 #生命秩序 #薛定谔方程 #熵减过程 #热力学第二定律 #信息熵 #生命系统建模 #负熵流 #熵平衡 第一节:生命负熵的类比与核心概念 1.1 生命负熵的类比 生命负熵可以被视为生命系…

如何打造免费体育馆场地预约系统?php vue技术实现,简易操作指南

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Unity(2022.3.41LTS) - 脚本

目录 零.简介 一、脚本的基本概念 二、脚本的创建和使用 三、脚本的编程基础 四、与 Unity 引擎的交互 五、重要的类介绍 六、事件函数介绍 七、事件函数的执行顺序 八、脚本的优化和调试 零.简介 在 Unity 中,脚本是实现游戏逻辑和交互的重要组成部分。 …

后台框架-统一数据格式2

在上一篇中,当在Controller类中需要返回统一格式的数据时,需要实例化一个R,有时候觉得还是不够简洁,那有没有一种方法Controller中直接返回对象,但是返回的对象统一保存到如下格式的data中? ResponseBody…

P9343 一曲新词酒一杯

import java.util.Scanner;public class Main {static int fun(Scanner sc) {int n, m;int res -1;int k 0;n sc.nextInt();// n个杯子m sc.nextInt();// m次操作boolean[] a new boolean[n];boolean[] v new boolean[n];for (int i 0; i < m; i) {int o, x;o sc.ne…