在做好區域網路的設定之後,我們可以把AP當作伺服器,用UDP傳輸訊息給其他的STA。
#include <ESP8266WiFi.h>
//AP
#define AP_SSID "ESP8266"
#define AP_PASS "password"
//UDP
#include <WiFiUdp.h>
#define UDP_PORT 1026 //這個PORT可以隨意更改,但傳送跟接收方的PORT要相同才收的到訊息
WiFiUDP UDP;
IPAddress sendudp(192,168,4,255);//196.168.4.1是本機位址,255是廣播,如果只想傳給其中一個STA可以更改IP位址
void setup( ){
Serial.begin(9600);
WiFi.mode(WIFI_AP);
WiFi.softAP(AP_SSID,AP_PASS);
UDP.begin(UDP_PORT);
char *mes="Hello World";
UDP.beginPacket(sendudp,UDP_PORT);
UDP.write(mes);
UDP.endPacket();
}
void loop( ){
}
這個方法只能傳送字元陣列,如果要傳送String的話要先轉換成字元陣列。
String message="Hello World";
char *mes=(char*)malloc((message.length()+1)*sizeof(char));
message.toCharArray(mes,message.length()+1);
UDP.beginPacket(sendudp,UDP_PORT);
UDP.write(mes);
UDP.endPacket();
free(mes);