WiFi - 設置 UDP 伺服器進行通信

材料準備

範例說明

這個範例裡,我們使用Ameba連上WiFi,作為UDP服務器端,當UDP 客戶端發送訊息給Ameba之後,回應“acknowledged” 給客戶端。

首先打開 WiFi Web Server的範例, “File” -> “Examples” -> “WiFi” -> “WiFiUdpSendReceiveString”

7-1

將WiFi連線至AP的相關訊息進行修改,包括 ssid, pass, keyIndex

7-2

上傳程式碼之後,按下Ameba的Reset按鈕, WiFi連線成功後,會開啟UDP服務器,服務器端的IP為Ameba的IP,端口為2390
啟動服務之後,會印出訊息“Starting connection to server”,並等待UDP客戶端連線進來。

7-4
另外在電腦的socket工具上(本示例中使用的工具為“sokit”)通過獲取的IP地址以及範例中設定的端口號“2390”來進行連線。

選取Client模式,填寫Server IP和PORT信息,點擊“UDP Connect”.
連接成功後, 傳送字串過去,這個例子裡,在Buf 0填入“Hello World”, 並且按下Send

此時會看到Ameba UDP服務器端回應“acknowledged”,並且Ameba的Serial Monitor會看到Contents: “Hello World”,這個例子就成功了。

7-5

程式碼說明

Ameba使用相容於Arduino Wifi Shield的WiFiUdp class,所以範例程式也與Arduino相容。
https://www.arduino.cc/en/Tutorial/WiFiSendReceiveUDPString
 
首先呼叫 begin() 在Ameba開啟UDP端口
https://www.arduino.cc/en/Reference/WiFiUDPBegin
 
使用parsePacket() 等待客戶端傳送資料進來https://www.arduino.cc/en/Reference/WiFiUDPParsePacket
 
如果有資料進來, 使用remoteIP() 與remotePort() 取得客戶端的IP 與Port
請先確認已安裝QQ通訊軟體