| OCROBOT ESP8266 WIFI模塊之重新定義首先上個圖,最新研究的這么一個很便宜的wifi模塊。這是個串口轉(zhuǎn)wifi信號的模塊。可以用UDP TCP通信。
 我寫的教程帖子一般不解釋底層原理什么的。因為我也不懂! 這次的測試就是板子發(fā)送一個UDP消息(setup done..)給電腦上的socket調(diào)試軟件。再由socket調(diào)試軟件發(fā)送一個字符串給板子。
 這次修改的開發(fā)庫添加了4個接口。使程序更簡潔明了。用的是arduino mega 2560軟串口。迷你強寫的兩個開發(fā)庫一個mega 一個328。因為我沒328所以,就改了mega2560。
 所以接下來準備好一個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 — ARDUINOV  ——– 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ù)可選擇填寫  默認通道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 對方端口
 默認單對單通信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)視窗口,代碼運行到初始化階段,返回true。初始化沒問題。
 串口監(jiān)視窗口打印出了Init done..
 接下去是配置對方的IP端口,這里步驟需要5秒時間。分配好了發(fā)送一個setup done給上位機的socket軟件。
   這時候兩者就連同了。這個有著和奇葩圖標的調(diào)試軟件也收到了arduino發(fā)送的數(shù)據(jù)。并且有了對方的IP和端口。
 最后loop開始接收。這里隨便打了兩個做測試。提取接收的字符串做判斷。LED燈也順利的控制了亮暗。 P.S. 迷你強說要修改arduino的一個文件,把串口緩沖區(qū)容量提高到128以上說是如果wifi熱點多的地方就會溢出~ 結(jié)貼~~P.S. Seeed wifi模塊簡直爛!史上最爛! 
 |