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) 


13172919_tmsz.jpg 

选择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中~
13172919_Effh.jpg13172919_uZUl.jpg 
首先打开串口监视窗口,代码运行到初始化阶段,返回true。初始化没问题。
串口监视窗口打印出了Init done..

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

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

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

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


转载于:https://my.oschina.net/u/1777508/blog/355830

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值