Ameba Arduino: [RTL8722CSM] [RTL8722DM] [RTL8722DM MINI] 使用 Ameba 作為網絡服務器與客戶端通訊


材料準備

  • AmebaD [RTL8722DM / RTL8722CSM / RTL8722DM MINI] x 1
  • Laptop(可與Ameba連到相同網域,並安裝TCP工具)

範例說明

這個範例裡,我們使用 Ameba 連上WiFi,作為服務器,與連接過來的客戶端進行對話。

確保在 “Tools” -> “Board” 中選擇了正確的Ameba開發板。

然後打開 Simple Web Server的範例, “File” -> “Examples” -> “AmebaWiFi” -> “SimpleServerWiFi”

將WiFi 連線的相關訊息進行修改,將下圖中黃色標註的地方進行對應的修改。

3-1

上傳程式碼之後,按下Ameba 的Reset 按鈕, 這時會看到WiFi 連線後的信息。
3-3
在laptop 上的socket 工具上(本示例中使用的工具為“sokit” )通過獲取的IP地址以及範例中設定的port 5000 來進行連線。
3-4

選取Client 模式,填寫Server IP 和port 信息,點擊 “TCP Connect”

連接成功後會顯示”A client connected to this Server”,以及Client的IP和port訊息。

從Client 發送一個字串過來,Ameba收到後,會將這個字串再發給Client。

客戶端會顯示收到這個字串。

3-5

程式碼說明
在連線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

請先確認已安裝QQ通訊軟體