本帖主要講解ESP8266 WIFI功能關于TCP協議網絡傳輸的應用,這里演示了ESP8266作為TCP服務器的一個示例: 1、硬件 零知ESP8266開發板 2、軟件 (1)代碼如下: - /**********************************************************
- * 文件: tcp-server.ino by 零知實驗室
- * -^^- 零知開源,讓電子制作變得更簡單! -^^-
- * 時間: 2019/06/17 14:12
- * 說明:
- ************************************************************/
- #include <ESP8266WiFi.h>
-
- int port = 8888; //Port number
- WiFiServer server(port);
-
- //Server connect to WiFi Network
- const char *ssid = "xx"; //Enter your wifi SSID
- const char *password = "xx"; //Enter your wifi Password
-
- int count=0;
-
- // 復位或上電后運行一次:
- void setup() {
- //在這里加入初始化相關代碼,只運行一次:
- Serial.begin(115200);
-
- Serial.println();
-
- WiFi.mode(WIFI_STA);
- WiFi.begin(ssid, password); //Connect to wifi
-
- // Wait for connection
- Serial.println("Connecting to Wifi");
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- delay(500);
- }
-
- Serial.println("");
- Serial.print("Connected to ");
- Serial.println(ssid);
-
- Serial.print("IP address: ");
- Serial.println(WiFi.localIP());
- Serial.print("port:");
- Serial.println(port);
- server.begin();
- }
-
- //一直循環執行:
- void loop() {
- // 在這里加入主要程序代碼,重復執行:
- WiFiClient client = server.available();
-
- if (client) {
- if(client.connected())
- {
- Serial.println("Client Connected");
- }
-
- while(client.connected()){
- while(client.available()>0){
- // read data from the connected client
- Serial.write(client.read());
- }
- //Send Data to connected client
- while(Serial.available()>0)
- {
- client.write(Serial.read());
- }
- }
- client.stop();
- Serial.println("Client disconnected");
- }
- }
復制代碼 3、驗證測試
(1)將上面代碼驗證后并上傳到零知ESP8266,然后打開串口調試窗口,可以看到如下信息:
tiaoshi.jpg (69.9 KB, 下載次數: 26)
下載附件
2019-9-27 11:55 上傳
現在已經將ESP8266作為TCP服務器了,上面信息為IP和端口
(2)打開零知工具箱的網絡調試窗口,然后選擇TCP客戶端,并填寫上面的IP和端口:
PS:零知工具箱請至零知官網“軟件下載”頁面獲取
tiaoshi2.jpg (105.71 KB, 下載次數: 24)
下載附件
2019-9-27 11:56 上傳
(3)點擊【連接】后,就與ESP8266建立的TCP連接了,就可以發送和接收數據了,如下:
tiaoshi3.jpg (127.7 KB, 下載次數: 25)
下載附件
2019-9-27 11:56 上傳
|