WiFi - 設置伺服器進行通訊
材料準備
- AmebaD [ AMB23 / AMB21 / AMB22 / BW16 / AW-CU488 Thing Plus ] x 1
- Laptop(可與Ameba連到相同網域,並安裝TCP工具)
範例說明
這個範例裡,我們使用 Ameba 連上WiFi,作為服務器,與連接過來的客戶端進行對話。
確保在 “Tools” -> “Board” 中選擇了正確的Ameba開發板。
然後打開 Simple Web Server的範例, “File” -> “Examples” -> “WiFi” -> “SimpleServerWiFi”
將WiFi 連線的相關訊息進行修改,將下圖中黃色標註的地方進行對應的修改。
上傳程式碼之後,按下Ameba 的Reset 按鈕, 這時會看到WiFi 連線後的信息。
在laptop 上的socket 工具上(本示例中使用的工具為“sokit” )通過獲取的IP地址以及範例中設定的port 5000 來進行連線。
選取Client 模式,填寫Server IP 和port 信息,點擊 “TCP Connect”
連接成功後會顯示”A client connected to this Server”,以及Client的IP和port訊息。
從Client 發送一個字串過來,Ameba收到後,會將這個字串再發給Client。
客戶端會顯示收到這個字串。
程式碼說明
在連線WiFi時會使用到WiFi.begin();
https://www.arduino.cc/en/Reference/WiFiBegin
連線成功後會讀取WiFi的信息:
顯示WiFi的名稱WiFi.SSID()
https://www.arduino.cc/en/Reference/WiFiSSID
顯示WiFi的訊號強度WiFi.RSSI()
https://www.arduino.cc/en/Reference/WiFiRSSI
顯示Ameba的IP信息WiFi.localIP()
https://www.arduino.cc/en/Reference/WiFiLocalIP
設定服務器的端口號WiFiServer server(5000)
https://www.arduino.cc/en/Reference/WiFiServer
開始服務器的監聽server.begin();
https://www.arduino.cc/en/Reference/WiFiServerBegin
判斷是否有客戶端連線server.available()
https://www.arduino.cc/en/Reference/WiFiServerAvailable
從Server讀取數據client.read()
https://www.arduino.cc/en/Reference/WiFiClientRead
對Server發送數據client.write()
https://www.arduino.cc/en/Reference/WiFiClientWrite
與Server斷開連線client.stop();
https://www.arduino.cc/en/Reference/WiFIClientStop