Ameba Arduino: [RTL8722CSM] [RTL8722DM] 使用 Ameba 作为网络服务器与客户端通讯

材料准备

  • Ameba x 1
  • Laptop(可与Ameba连到相同网域,并安装tcp工具

范例说明

这个范例里,我们使用 Ameba 连上WiFi,作为服务器,与连接过来的客户端进行对话。
确保在 “Tools” -> “Board” 中选择了正确的Ameba开发板。

然后打开 Simple Web Server的范例, “File” -> “Examples” -> “AmebaWiFi” -> “SimpleServerWiFi”

3-1

将WiFi 连线的相关讯息进行修改,将下图中黄色标注的地方进行对应的修改。

上传程式码之后,按下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通讯软体