WiFi - 简单的 TCP 服务器
材料准备
- AmebaPro2 [ AMB82 MINI ] x 1
- Laptop(可与Ameba连到相同网域,并安装TCP工具)
范例说明
这个范例里,我们使用 Ameba 连上WiFi,作为服务器,与连接过来的客户端进行对话。
确保在 “Tools” -> “Board” 中选择了正确的Ameba开发板。
然后打开 Simple Web Server的范例, “File” -> “Examples” -> “WiFi” -> “SimpleTCPServer”:
将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