文档章节

OCROBOT ESP8266 WIFI模块之重新定义

simpower
 simpower
发布于 2014/12/13 17:29
字数 1079
阅读 856
收藏 0

首先上个图,最新研究的这么一个很便宜的wifi模块。
这是个串口转wifi信号的模块。可以用UDP TCP通信。

我写的教程帖子一般不解释底层原理什么的。因为我也不懂!

这次的测试就是板子发送一个UDP消息(setup done..)给电脑上的socket调试软件。
再由socket调试软件发送一个字符串给板子。

这次修改的开发库添加了4个接口。使程序更简洁明了。
用的是arduino mega 2560软串口。迷你强写的两个开发库一个mega 一个328。因为我没328所以,就改了mega2560。
所以接下来准备好一个mega 2560开始玩。只有328的不好意思。。。
可以用SocketTool等工具,这里推荐弘毅大大他们家的通信软件,更简单一点。
 USR-TCP232-Test.rar (375.4 KB, 下载次数: 20) 


 

选择UDP,因为我也只测试了UDP。。其他的虽然都写好了~但我没测试~
原因是我懒!

另外注意这里的UDP 是 UDP Server
第二行是自己的IP  端口不要设置为8080  因为8080端口比较特殊
都改好了 就点connect~

接下来搞arduino部分~

ESP8266 -- ARDUINO
           V  -------- 3v3
           G  ------- GND    
           T --------- Serial1 RX
           R --------- Serial1 TX
交叉通信


先来个开发库:
 uarlWIFI_D.rar (7.38 KB, 下载次数: 29) 
GitHub ESP8266开发库最新版本下载地址  << 点击

第一部分代码:

[C] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
#include <uarlWIFI.h>
WIFI wifi;
void setup()
{
   Serial.begin(9600);
   bool b = wifi.Initialize(STA, "SSID" , "PASSWORD" );
   if (!b)
   {
     Serial.println( "Init error" );
   }
   else
   {
     Serial.println( "Init done.." );
   }
   wifi.ipConfig(UDP, "192.168.0.103" , 60000);
   Serial.println( "setup done.." );
   wifi.SendMessage( "setup done.." );
   
   pinMode(13, OUTPUT);
}


这里提供了wifi模块3个接口
第一个是初始化,初始化成功返回true
////////////////////////////////////////////////////////////////////////////////////////
WIFI初始化的类型 
STA接入局域网 AP自身为局域网server端 
#define    STA     1
#define    AP      2
#define    AT_STA  3


参数:网络方式  SSID PASSWORD   
如果网络方式选择AP模式  最后两个参数可选择填写  默认通道1 加密方式2
bool Initialize(byte a, String ssid, String pwd, byte chl = 1, byte ecn = 2);

////////////////////////////////////////////////////////////////////////////////////////

第二个是ipConfig,这里设置的是给对方发送数据的IP和端口,不是自己的。
这个模块自己的IP是接入路由器后自动分配的。
////////////////////////////////////////////////////////////////////////////////////////
参数:通信方式  对方ip 对方端口
默认单对单通信boolean为0  如果改为1  可以分配ID 0~4
0号可以连接客户端和服务器,其他只能连接服务器
void ipConfig(byte type, String addr, int port, boolean a = 0, byte id = 0);

////////////////////////////////////////////////////////////////////////////////////////

第三个是常用的接口
发送数据SendMessage
////////////////////////////////////////////////////////////////////////////////////////
void SendMessage(String str);  //单路模式发送数据
void SendMessage(byte id, String str);  //多路模式发送数据

////////////////////////////////////////////////////////////////////////////////////////

第二部分代码:

[C] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
void loop()
{
   //定一个接收消息用的buffer
   char buf[1024];
   int iLen = wifi.ReceiveMessage(buf);
   if (iLen > 0)
   {
     //判断buf是否为规定字符串
     if ( strcmp (buf, "HIGH" ) == 0)
     {
       digitalWrite(13, HIGH);
     }
     else if ( strcmp (buf, "LOW" ) == 0)
     {
       digitalWrite(13, LOW);
     }
   }
}




最后一个wifi模块的重要接口
ReceiveMessage
////////////////////////////////////////////////////////////////////////////////////////
参数:接收buf 未开发参数(保留)
返回接收到的buf的长度
int ReceiveMessage(char *buf, int MsgLen = 0);

////////////////////////////////////////////////////////////////////////////////////////

下面跟着教程走的可以将两块代码合到一起~烧录arduino中~
 
首先打开串口监视窗口,代码运行到初始化阶段,返回true。初始化没问题。
串口监视窗口打印出了Init done..

接下去是配置对方的IP端口,这里步骤需要5秒时间。分配好了发送一个setup done给上位机的socket软件。
 
这时候两者就连同了。这个有着和奇葩图标的调试软件也收到了arduino发送的数据。并且有了对方的IP和端口。

最后loop开始接收。这里随便打了两个做测试。提取接收的字符串做判断。LED灯也顺利的控制了亮暗。

P.S. 迷你强说要修改arduino的一个文件,把串口缓冲区容量提高到128以上说是如果wifi热点多的地方就会溢出~

结贴~~P.S. Seeed wifi模块简直烂!史上最烂!


本文转载自:http://www.arduino.cn/thread-7388-1-1.html

simpower
粉丝 28
博文 669
码字总数 50544
作品 0
海淀
程序员
私信 提问
如何用arduino来测试ESP8266 WIFI模块(wifi普及预热中)

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

simpower
2015/05/15
1K
0
Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。

欢迎来到物联网智能家居顶量级别wifi模块Esp8266学习之旅。 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时...

xh870189248
2017/09/14
0
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模块开发

[背景] 智能家居应用场景,云端控制 [需求] 1、由WIFI模块向服务器发注册信息和心跳包 2、WIFI模块收到APP通过socket发的信息后,由WIFI模块解析信息,并控制WIFI模块的各IO口等。 3、控制协...

kyq001
2016/05/13
36
0

没有更多内容

加载失败,请刷新页面

加载更多

读书笔记:深入理解ES6 (五)

第五章 解构:使数据访问更便捷 第1节 为什么使用解构功能?   在ES5中,开发者们从对象、数组中获取特定数据并赋值给变量,编写了很多看起来同质化的代码。例如: 1 let options = {2 ...

张森ZS
22分钟前
18
0
CentOS7 yum方式安装MySQL5.7

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 1 下载并安装MySQL官方的 Yum Repository [root@localho...

roockee
30分钟前
14
0
Allegro三种自定义设置快捷键的方法

Allegro自定义设置快捷键的三种方法: 1、在Allegro PCB editor 命令窗口直接定义 2、通过修改用户变量env文件来设置快捷键 3、定义笔画为快捷键 1、在Allegro PCB editor 命令窗口直接定义 ...

demyar
35分钟前
15
0
如何做一张能让人眼前一亮的大屏?

作为在职场驰骋的社会人,提到数据可视化大家应该都不陌生了。数据可视化的作用也不用我多说,主要是利用图形化手段,更清晰直观地将数据展示。多层次、交互式的可视化分析能够方便决策者理解...

朕想上头条
36分钟前
8
0
TL138/1808/6748-EthEVM开发板硬件CPU、FLASH、RAM

TL138/1808/6748-EthEVM是广州创龙基于SOM-TL138/1808/6748核心板开发的一款开发板,具有三个网络接口。由于SOM-TL138/1808/6748核心板管脚兼容,所以此三个核心板共用同一个底板。开发板采用...

Tronlong创龙
40分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部