本帖主要讲解ESP8266 WIFI功能关于TCP协议网络传输的应用,这里演示了ESP8266作为TCP客户端的示例: 1、硬件 零知ESP8266开发 2、软件 代码如下: - /**********************************************************
- * 文件: tcp-client.ino by 零知实验室
- * -^^- 零知开源,让电子制作变得更简单! -^^-
- * 时间: 2019/06/17 12:32
- * 说明:
- ************************************************************/
-
- #include <ESP8266WiFi.h>
-
- #define SSID "xx" //这里改成你的wifi名字
- #define PASSWD "xx"//这里改成你的wifi密码
-
- const uint16_t port = 8888;
- const char * host = "192.168.0.111"; // ip or dns
- WiFiClient client;//创建一个tcp client连接
-
- // 复位或上电后运行一次:
- void setup() {
- //在这里加入初始化相关代码,只运行一次:
- Serial.begin(115200);
-
- WiFi.mode(WIFI_STA);
- WiFi.begin(SSID,PASSWD);
-
- Serial.println("Wait for WiFi... ");
- //等待wifi连接成功
- while (WiFi.status() != WL_CONNECTED) {
- Serial.print(".");
- delay(500);
- }
-
- Serial.println("");
- Serial.println("WiFi connected");
- Serial.print("IP address: ");
- Serial.println(WiFi.localIP());
-
- delay(500);
- }
-
- //一直循环执行:
- void loop() {
- // 在这里加入主要程序代码,重复执行:
- Serial.print("connecting to ");
- Serial.println(host);
-
- if (!client.connect(host, port)) {
- Serial.println("connection failed");
- Serial.println("wait 5 sec...");
- delay(5000);
- return;
- }
-
- // 发送数据到Tcp server
- Serial.println("Send this data to server");
- client.println(String("lingzhilab"));
-
- //读取从server返回到响应数据
- String line = client.readStringUntil('\r');
- Serial.println(line);
-
- Serial.println("closing connection");
- client.stop();
-
- Serial.println("wait 5 sec...");
- delay(5000);
- }
复制代码
注:上述代码中需要填写自己的Wifi热点ssid和密码以及电脑所在局域网分配的IP地址(在零知工具箱(请至零知官网“软件下载”页面获取)-网络调试界面可以选择IP,这两处是一致的)。
3、验证测试 首先打开零知工具箱的网络调试窗口,然后选择TCP服务端,并选择IP和端口:
然后点击【连接】,这样就在电脑端开启了一个TCP服务器,然后就可以和ESP8266进行通信了:
|