OCROBOT ESP8266 WIFI模塊之重新定義
首先上個圖,,最新研究的這么一個很便宜的wifi模塊,。 這是個串口轉(zhuǎn)wifi信號的模塊,??梢杂肬DP TCP通信,。
我寫的教程帖子一般不解釋底層原理什么的,。因為我也不懂,!
這次的測試就是板子發(fā)送一個UDP消息(setup done..)給電腦上的socket調(diào)試軟件。 再由socket調(diào)試軟件發(fā)送一個字符串給板子,。
這次修改的開發(fā)庫添加了4個接口,。使程序更簡潔明了。 用的是arduino mega 2560軟串口,。迷你強(qiáng)寫的兩個開發(fā)庫一個mega 一個328,。因為我沒328所以,就改了mega2560,。 所以接下來準(zhǔn)備好一個mega 2560開始玩,。只有328的不好意思。,。,。 可以用SocketTool等工具,,這里推薦弘毅大大他們家的通信軟件,更簡單一點,。 USR-TCP232-Test.rar (375.4 KB, 下載次數(shù): 20)
選擇UDP,,因為我也只測試了UDP。,。其他的雖然都寫好了~但我沒測試~ 原因是我懶,!
另外注意這里的UDP 是 UDP Server 第二行是自己的IP 端口不要設(shè)置為8080 因為8080端口比較特殊 都改好了 就點connect~
接下來搞arduino部分~
ESP8266 — ARDUINO V ——– 3v3 G ——- GND T ——— Serial1 RX R ——— Serial1 TX 交叉通信
先來個開發(fā)庫: uarlWIFI_D.rar (7.38 KB, 下載次數(shù): 29) GitHub ESP8266開發(fā)庫最新版本下載地址 << 點擊
第一部分代碼:
[C] 純文本查看 復(fù)制代碼
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接入局域網(wǎng) AP自身為局域網(wǎng)server端 #define STA 1 #define AP 2 #define AT_STA 3
參數(shù):網(wǎng)絡(luò)方式 SSID PASSWORD 如果網(wǎng)絡(luò)方式選擇AP模式 最后兩個參數(shù)可選擇填寫 默認(rèn)通道1 加密方式2 bool Initialize(byte a, String ssid, String pwd, byte chl = 1, byte ecn = 2);
////////////////////////////////////////////////////////////////////////////////////////
第二個是ipConfig,,這里設(shè)置的是給對方發(fā)送數(shù)據(jù)的IP和端口,,不是自己的。 這個模塊自己的IP是接入路由器后自動分配的,。 //////////////////////////////////////////////////////////////////////////////////////// 參數(shù):通信方式 對方ip 對方端口 默認(rèn)單對單通信boolean為0 如果改為1 可以分配ID 0~4 0號可以連接客戶端和服務(wù)器,,其他只能連接服務(wù)器 void ipConfig(byte type, String addr, int port, boolean a = 0, byte id = 0);
////////////////////////////////////////////////////////////////////////////////////////
第三個是常用的接口 發(fā)送數(shù)據(jù)SendMessage //////////////////////////////////////////////////////////////////////////////////////// void SendMessage(String str); //單路模式發(fā)送數(shù)據(jù) void SendMessage(byte id, String str); //多路模式發(fā)送數(shù)據(jù)
////////////////////////////////////////////////////////////////////////////////////////
第二部分代碼:
[C] 純文本查看 復(fù)制代碼
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是否為規(guī)定字符串
if
(
strcmp
(buf,
"HIGH"
) == 0)
{
digitalWrite(13, HIGH);
}
else
if
(
strcmp
(buf,
"LOW"
) == 0)
{
digitalWrite(13, LOW);
}
}
}
|
最后一個wifi模塊的重要接口 ReceiveMessage //////////////////////////////////////////////////////////////////////////////////////// 參數(shù):接收buf 未開發(fā)參數(shù)(保留) 返回接收到的buf的長度 int ReceiveMessage(char *buf, int MsgLen = 0);
////////////////////////////////////////////////////////////////////////////////////////
下面跟著教程走的可以將兩塊代碼合到一起~燒錄arduino中~ 首先打開串口監(jiān)視窗口,代碼運(yùn)行到初始化階段,,返回true,。初始化沒問題。 串口監(jiān)視窗口打印出了Init done..
接下去是配置對方的IP端口,,這里步驟需要5秒時間,。分配好了發(fā)送一個setup done給上位機(jī)的socket軟件。 這時候兩者就連同了,。這個有著和奇葩圖標(biāo)的調(diào)試軟件也收到了arduino發(fā)送的數(shù)據(jù),。并且有了對方的IP和端口。
最后loop開始接收,。這里隨便打了兩個做測試,。提取接收的字符串做判斷。LED燈也順利的控制了亮暗,。
P.S. 迷你強(qiáng)說要修改arduino的一個文件,,把串口緩沖區(qū)容量提高到128以上說是如果wifi熱點多的地方就會溢出~
結(jié)貼~~P.S. Seeed wifi模塊簡直爛!史上最爛,!
|