永发信息网

如何用arduino来测试ESP8266 WIFI模块

答案:1  悬赏:80  手机版
解决时间 2021-03-10 13:33
如何用arduino来测试ESP8266 WIFI模块
最佳答案
首先,我估计大家都没有USB TO TTL 硬件,也不是所有的坛友都有mangoII,所以我今天就写个特别的arduino程序,让arduino变成一个串口转发器。
  原理很简单。。从串口芯片到单片机和这个口是个并联关系。。然后usb 到这个IO口有1k电阻,我就启用了单片机的内上拉稍微平衡下阻抗,,就把arduino板子作为usb to ttl工具了。。嘿嘿

  (本设置在mangoII板硬件环境下测试通过,不确定其他硬件是否可以使用,请自行尝试)

  代码如下:

  ARDUINO 代码复制打印
  void setup() {
  pinMode(0,INPUT_PULLUP);
  pinMode(1,INPUT_PULLUP);

  }

  void loop() {
  // put your main code here, to run repeatedly:

  }

  因为程序很简单,我又偷懒就没写注释了。主要内容就是创建一个软串口,软串口接模块 ,然后让软串口的回显数据转发到硬件串口,硬件串口的输入数据转发到软串口。

  下面来介绍下接线
  3V3 ------------ VCC
  ARDUINO GND ------------ GND esp8266
  IO1 ------------ TX
  IO0 ------------ RX

  注意,TX 是直接对应板子上的TX RX 对应RX。,。原因自己思考下。
  非常简单的接线,就是把我们的WIFI模块接到arduino的软串口上,需要注意的是,wifi模块是3.3V供电。

  好了。已经全部准备好了。我们要正式开始了。首先我们打开串口监视器,然后重新插拔一下模块的VCC接线(让模块重启,显示其启动信息),你应该能看到如下图所示的启动信息,说明已经没有任何问题了。

  1.png

  前面的乱码是因为模块启动信息的波特率与后面启动后不一致造成的,不管就行了

  重点来了看窗口的右下角“没有结束符”
  这个要选择成“回车”如下图

  1.png

  我们输入下面这个指令
  AT+Reset
  复制代码
  点击发送后,模块会重启
  显示如下
  AT+Reset

  done

  返回字符是done 为啥d没了呢,实际上是有的。可能是软串口的bug,这个我们不研究了。。反正能用知道就行了,不影响使用。

  好上面的重启命令我们等会会经常用到

  下面,我们要查询一下模块的工作模式,模块一共有三种工作模式1.Station 2.AP 3.Station+AP 第一种是客户端模式,第二种是接入点模式,第三种是两种模式共存。既然我们是登陆路由器然后往指定网络传数据,所以我们选第一种模式。。

  设置之前先查询
  AT+MODE?
  复制代码
  返回内容:
  AT+MODE?

  +MODE:0

  done

  这个0就是没配置的意思。。我们配置成1即可

  用这个命令来设置
  AT+MODE=1
  复制代码
  这样就设置成模式1了。具体的详细指令请参阅上面的指令手册以及自己多尝试
  返回如下:
  AT+MODE=1

  one

  坑爹的d又丢了,不管~~~这个时候,关键的时刻来了,这时候虽然设置了。但还没有生效,需要重启模块。还记得我之前说的指令么?我就不重复写了。。反正这时候要重启(拔电源插头也是可以的)

  然后我们来查询下
  AT+MODE?
  复制代码
  返回如下:
  AT+MODE?

  +MODE:1

  done

  大概就是这样就设置好模式了。

  我们后面就暂时不介绍回显内容了,很简单

  然后就是查询一下附近能搜索到的wifi网络信号
  AT+ShowAP
  复制代码
  回显内容就是周围wifi信号

  看到自己的wifi就可以加入网络了
  AT+JoinAP="SSID","PASSWD"
  复制代码
  很简单的命令对吧,前面写SSID号,后面写密码。回车发送命令就可以加入网络了。记得加完网络重启下模块

  好了,这样模块就连上路由器了

  下面就需要有个小工具,在自己计算机(局域网内)上建立一个TCP端口的监听,来模拟服务器

  小工具连接

  我计算机IP是192.168.1.101 我打算监听8089端口,如下图配置,监听(当然你也可以监听你需要的任何端口)

  tcp.png

  (说明:任何网络服务器都可以看成是工作在指定端口,负责解析指定协议的端口监听器)

  设置模块到单链接模式(只能使用一个连接的模式,这种比较方便简单,多链接模式我们以后再讲)
  AT+MUX=0
  复制代码
  然后重启模块(拔电或者用reset指令都可以)

  好了。以上的设置模块设置一次后,断电后还是会有记忆的。。也就是说只需要配置一次。。下面开始建立TCP连接啥的。断电不会重连了。。

  下面我们在模块上建立一个TCP的连接

  使用指令
  AT+NewSTA=“TCP”,“192.168.1.101”,8089
  复制代码
  很简单的指令,首先说明连接类型,目标ip地址,端口号。。这样就建立好了。。

  然后我们就能发送数据了

  指令
  AT+UpDate=11
  复制代码
  然后串口会返回一个>号,我们继续输入hello world发送
  这样就会从TCP监听的一端看到数据了。很简单吧

  指令后面的11的意思就是你要发送的字符的长度。系统是靠字符长度判断一句话是否可以发送,所以我们的数据长度要和下面要发送的字符串的长度等长才行。。

  简单的教程目前就到这里了,有助于大家理解AT指令的使用。

  另外我们还有一个arduino的库,虽然目前开发的不太完全,基本函数都开发完了,例程还没写好,bug可能还有不少,也都在调试中,有兴趣的可以去看看
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
急求《文史知识》2005年第1期pdf版,或者是葛
来五行属什么
根宏装饰城地址在哪,我要去那里办事
下列长江流域的三个通商口岸开放的先后顺序是
建行存款活期转定期要哪些流程?
屋子里安装了洗澡间有什么说法吗?
怎样用一元一次方程解行程问题和工程问题?
福康蒸功夫包子专卖在哪里啊,我有事要去这个
谁有双修之类的小说
泰迪一听到响声或者陌生人老是要叫
Al3+在酸性碱性中性下的反应方程式?
小港街道青墩社区公共服务中心在什么地方啊,
雅安雨城区哪里有华硕笔记本售后服务点?
C++进制转换问题#include using namespace st
问道手游可以结婚吗?
推荐资讯
研究生毕业登记表 培养单位怎么填
周星驰整蛊专家三次打光头怎么打的
王钇程名字打分,名字与八字合不合
刚到一个新的公司时间很短,我们部门除了我都
我和妈妈关系忽冷忽热的.我喜欢唱歌,妈妈说唱
小丽和婷婷一起去买书,小丽差38.4元,婷婷差
求解一道SAT语法题!!
江家瓦屋我想知道这个在什么地方
立邦漆广安市富源街形象专柜店地址在什么地方
青蓝画室地址有知道的么?有点事想过去
大众迈腾玻璃升降钢丝怎么绕
丙令河地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?