WiFi - 設置 UDP 伺服器進行通信
材料準備
- AmebaD [ AMB23 / AMB21 / AMB22 / BW16 / AW-CU488 Thing Plus ] x 1
範例說明
這個範例裡,我們使用Ameba連上WiFi,作為UDP服務器端,當UDP 客戶端發送訊息給Ameba之後,回應“acknowledged” 給客戶端。
首先打開 WiFi Web Server的範例, “File” -> “Examples” -> “WiFi” -> “WiFiUdpSendReceiveString”
將WiFi連線至AP的相關訊息進行修改,包括 ssid, pass, keyIndex
上傳程式碼之後,按下Ameba的Reset按鈕, WiFi連線成功後,會開啟UDP服務器,服務器端的IP為Ameba的IP,端口為2390
啟動服務之後,會印出訊息“Starting connection to server”,並等待UDP客戶端連線進來。
另外在電腦的socket工具上(本示例中使用的工具為“sokit”)通過獲取的IP地址以及範例中設定的端口號“2390”來進行連線。
選取Client模式,填寫Server IP和PORT信息,點擊“UDP Connect”.
連接成功後, 傳送字串過去,這個例子裡,在Buf 0填入“Hello World”, 並且按下Send
此時會看到Ameba UDP服務器端回應“acknowledged”,並且Ameba的Serial Monitor會看到Contents: “Hello World”,這個例子就成功了。
程式碼說明
https://www.arduino.cc/en/Tutorial/WiFiSendReceiveUDPString
https://www.arduino.cc/en/Reference/WiFiUDPBegin
https://www.arduino.cc/en/Reference/WiFiUDPRemoteIP
並且呼叫 read() 將資料收進來
https://www.arduino.cc/en/Reference/WiFiUDPRead
回傳資料時, 使用beginPacket(), write(), end()傳送資料,需要三個為一組來使用
https://www.arduino.cc/en/Reference/WiFiUDPBeginPacket
https://www.arduino.cc/en/Reference/WiFiUDPWrite
https://www.arduino.cc/en/Reference/WiFiUDPEndPacket