文档章节

如何用arduino来测试ESP8266 WIFI模块(wifi普及预热中)

simpower
 simpower
发布于 2015/05/15 11:47
字数 1756
阅读 1127
收藏 4

ESP8266是一款非常廉价的WIFI串口解决方案模块,以目前的超低价格受到各方关注,本强最近也在给它开发arduino库,来方便大家使用,不过捏,我们也需要了解下他的AT指令的操作方法。

TB2KlxhapXXXXbUXpXXXXXXXXXX-750720699.jpg 
首先,ocrobot的ESP8266使用的指令集手册在这里:
http://www.ocrobot.com/doku.php?id=zh:ocrobot:modules:seed:at
大家可以参考,打印或者怎么地。反正到时候经常会用到

AT指令是串口通讯中常用的一种操作指令。大家应该都很熟悉,GPS、短信猫等硬件也都是这种方式来控制的。

我们今天简单讲解下如何让模块登陆网络,建立连接,并且发送数据。让我们能简单的驱动起来,用起来
模块购买连接:
http://item.taobao.com/item.htm? ... &id=40901823151
欢迎大家支持

首先,我估计大家都没有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 

我们输入下面这个指令

  1. AT+Reset

复制代码

点击发送后,模块会重启
显示如下
AT+Reset

done

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


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


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

设置之前先查询

  1. AT+MODE?

复制代码

返回内容:
AT+MODE?

+MODE:0

done

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


用这个命令来设置

  1. AT+MODE=1

复制代码

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


one

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

然后我们来查询下

  1. AT+MODE?

复制代码

返回如下:
AT+MODE?

+MODE:1

done

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

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


然后就是查询一下附近能搜索到的wifi网络信号

  1. AT+ShowAP

复制代码

回显内容就是周围wifi信号


看到自己的wifi就可以加入网络了

  1. AT+JoinAP="SSID","PASSWD"

复制代码

很简单的命令对吧,前面写SSID号,后面写密码。回车发送命令就可以加入网络了。记得加完网络重启下模块


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



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

小工具连接


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


tcp.png 

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


设置模块到单链接模式(只能使用一个连接的模式,这种比较方便简单,多链接模式我们以后再讲)

  1. AT+MUX=0

复制代码

然后重启模块(拔电或者用reset指令都可以)

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

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

使用指令

  1. AT+NewSTA=“TCP”,“192.168.1.101”,8089

复制代码

很简单的指令,首先说明连接类型,目标ip地址,端口号。。这样就建立好了。。

然后我们就能发送数据了

指令

  1. AT+UpDate=11

复制代码

然后串口会返回一个>号,我们继续输入hello world发送
这样就会从TCP监听的一端看到数据了。很简单吧

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


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

另外我们还有一个arduino的库,虽然目前开发的不太完全,基本函数都开发完了,例程还没写好,bug可能还有不少,也都在调试中,有兴趣的可以去看看

https://github.com/534659123/OCO ... 266-arduino-library

本文转载自:http://www.geek-workshop.com/thread-10894-1-1.html

simpower
粉丝 28
博文 669
码字总数 50544
作品 0
海淀
程序员
私信 提问
ESP8266笔记汇总

一、前言 2015年开始,随着ESP8266的横空出现,WiFi SoC大幅降价,市场模组价格一下被拉到了10元档。WiFi由于可直接入网的,在智能家居等行业中成为了应用最广泛的物联网技术。本尊贵为物联网...

iotisan
2017/02/03
0
0
【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制

更新说明:由于固件升级,很多小伙伴们收到ESP8266模块后用我们的库调不通,在此诚挚道歉。发布此篇教程的时候使用的是旧版本固件,库文件设置的波特率是115200。如果调不通的话应该收到的是...

simpower
2014/12/13
5.1K
1
WIFI智能配网 - SmartConfig

要开始IoT项目的第一步是什么?当然不是硬件,而是硬件与硬件的连接!即使有各种各样的通信协议没有好的连接方式绝对不行。那外设上没有的屏幕,没有键盘怎末输入密码怎末选择网络?对,这就...

rayliang
2017/03/14
0
0
[Micropython]TPYBoard v202 邪恶改装:TPYBoard制作廉价WIFI干扰器

想不想搞个WIFI干扰器?网上搜集了一下资料,发现用esp8266可以实现简单的干扰功能,包括断网、复制、欺骗等等。刚好手上有块Tpyboard V202(30元),也是esp8266芯片的,也是想换个固件是不是...

bodasisiter
2018/05/28
147
0
ESP8266WiFi模块接入乐为物联平台

目录 前段时间利用手边的ESP8266小WiFi模块尝试接入了Yeelink平台,今天想尝试把ESP8266接入乐为物联平台。有了上次的基础,所以今天一个上午就初步调通了。下面分享一下我们调试过程。 0.了...

CSDNhuaong
2018/02/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
21分钟前
4
0
从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
5
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0
VUE 计算属性

本文转载于:专业的前端网站▶VUE 计算属性 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>vue示例</title> </hea......

前端老手
昨天
7
0
快速搭建LNMT平台和环境部署 Tomcat详解

Tomcat部署的基本概念 1. CATALINA_HOME与CATALINA_BASE分别指什么?     CATALINA_HOME指的是Tomcat的安装目录     bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/start...

网络小虾米
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部