当前位置: 首页 > news >正文

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

当时在做两个单片机之间无线通信,或者单片机与手机无线通信,就像找一个蓝牙和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/wb2AT指令使用文档
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代码,还是比较简单的,这里就简单的使用一下别人制作的软件了

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++系列-泛型编程概念及函数模板
  • Vue3其他Api
  • React中实现antd自定义图标,鼠标悬浮变色
  • RecyclerView网格布局如何动态设置item的显示个数
  • 【虚拟化】使用packer手搓安装linux,windows镜像并导入virsh进行管理(含Kickstart安装与linux内核参数配置)
  • SqlHelper 使用EF-Core框架 连接池处理并发
  • 数字化转型升级探索(二)
  • 算法中常用的排序
  • TMPDIR在pip|pip3 install时的作用以及tmp只有noexec权限的解决方法
  • Java笔试面试题AI答之面向对象(8)
  • C++(Qt)-GIS开发-QGraphicsView显示在线瓦片地图
  • 基于asp.net的在线考试系统源码分享
  • 【网络】网络层协议-IP协议
  • 代码随想录算法训练营第四十天| 647. 回文子串 516.最长回文子序列
  • 代码随想录算法训练营四十五天|115.不同的子序列、583.两个字符串的删除操作、72.编辑距离
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 0x05 Python数据分析,Anaconda八斩刀
  • 11111111
  • 2017-08-04 前端日报
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • axios 和 cookie 的那些事
  • Brief introduction of how to 'Call, Apply and Bind'
  • CEF与代理
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • golang 发送GET和POST示例
  • JavaScript类型识别
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Laravel 中的一个后期静态绑定
  • LeetCode算法系列_0891_子序列宽度之和
  • rabbitmq延迟消息示例
  • React+TypeScript入门
  • 基于web的全景—— Pannellum小试
  • 我这样减少了26.5M Java内存!
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 如何在招聘中考核.NET架构师
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​补​充​经​纬​恒​润​一​面​
  • #APPINVENTOR学习记录
  • #QT项目实战(天气预报)
  • (2)(2.10) LTM telemetry
  • (2)STM32单片机上位机
  • (Forward) Music Player: From UI Proposal to Code
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (八)c52学习之旅-中断实验
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三)终结任务
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)创业的注意事项
  • .net 7 上传文件踩坑
  • .NET 反射 Reflect
  • .NET 直连SAP HANA数据库
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)