OCROBOT ESP8266 WIFI模块之从新定义

首先上个图,最新研究的这么一个很便宜的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开发库最新版本下载地址  << 点击

第一部分代码:
php

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

?github

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] 纯文本查看 复制代码网络

?socket

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模块简直烂!史上最烂!

工具

相关文章
相关标签/搜索