ESP8266是一款很是廉价的WIFI串口解决方案模块,以目前的超低价格受到各方关注,本强最近也在给它开发arduino库,来方便你们使用,不过捏,咱们也须要了解下他的AT指令的操做方法。php
首先,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板硬件环境下测试经过,不肯定其余硬件是否可使用,请自行尝试)
代码以下:
git
ARDUINO 代码复制打印github
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接线(让模块重启,显示其启动信息),你应该能看到以下图所示的启动信息,说明已经没有任何问题了。
前面的乱码是由于模块启动信息的波特率与后面启动后不一致形成的,无论就好了
重点来了看窗口的右下角“没有结束符”
这个要选择成“回车”以下图
咱们输入下面这个指令 web
AT+Reset服务器
复制代码网络
点击发送后,模块会重启
显示以下
AT+Reset
done
返回字符是done 为啥d没了呢,其实是有的。多是软串口的bug,这个咱们不研究了。。反正能用知道就好了,不影响使用。
好上面的重启命令咱们等会会常常用到
下面,咱们要查询一下模块的工做模式,模块一共有三种工做模式1.Station 2.AP 3.Station+AP 第一种是客户端模式,第二种是接入点模式,第三种是两种模式共存。既然咱们是登录路由器而后往指定网络传数据,因此咱们选第一种模式。。
设置以前先查询 tcp
AT+MODE?函数
复制代码工具
返回内容:
AT+MODE?
+MODE:0
done
这个0就是没配置的意思。。咱们配置成1便可
用这个命令来设置 oop
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端口,以下图配置,监听(固然你也能够监听你须要的任何端口)
(说明:任何网络服务器均可以当作是工做在指定端口,负责解析指定协议的端口监听器)
设置模块到单连接模式(只能使用一个链接的模式,这种比较方便简单,多连接模式咱们之后再讲)
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可能还有很多,也都在调试中,有兴趣的能够去看看
https://github.com/534659123/OCO ... 266-arduino-library