找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1275|回复: 0
收起左侧

【零知ESP8266教程】WIFI TCP协议通信 TCP客户端示例

[复制链接]
ID:349555 发表于 2019-9-26 11:46 | 显示全部楼层 |阅读模式
本帖主要讲解ESP8266 WIFI功能关于TCP协议网络传输的应用,这里演示了ESP8266作为TCP客户端的示例:
1、硬件
零知ESP8266开发
2、软件
代码如下:
  1. /**********************************************************
  2. *    文件: tcp-client.ino      by 零知实验室
  3. *    -^^- 零知开源,让电子制作变得更简单! -^^-
  4. *    时间: 2019/06/17 12:32
  5. *    说明:
  6. ************************************************************/

  7. #include <ESP8266WiFi.h>

  8. #define SSID "xx" //这里改成你的wifi名字
  9. #define PASSWD  "xx"//这里改成你的wifi密码

  10. const uint16_t port = 8888;
  11. const char * host = "192.168.0.111"; // ip or dns
  12. WiFiClient client;//创建一个tcp client连接

  13. // 复位或上电后运行一次:
  14. void setup() {
  15.     //在这里加入初始化相关代码,只运行一次:
  16.     Serial.begin(115200);
  17.      
  18.     WiFi.mode(WIFI_STA);
  19.     WiFi.begin(SSID,PASSWD);
  20.      
  21.     Serial.println("Wait for WiFi... ");
  22.     //等待wifi连接成功
  23.     while (WiFi.status() != WL_CONNECTED) {
  24.         Serial.print(".");
  25.         delay(500);
  26.     }
  27.      
  28.     Serial.println("");
  29.     Serial.println("WiFi connected");
  30.     Serial.print("IP address: ");
  31.     Serial.println(WiFi.localIP());
  32.      
  33.     delay(500);
  34. }

  35. //一直循环执行:
  36. void loop() {
  37.     // 在这里加入主要程序代码,重复执行:
  38.     Serial.print("connecting to ");
  39.     Serial.println(host);
  40.      
  41.     if (!client.connect(host, port)) {
  42.         Serial.println("connection failed");
  43.         Serial.println("wait 5 sec...");
  44.         delay(5000);
  45.         return;
  46.     }
  47.      
  48.     // 发送数据到Tcp server
  49.     Serial.println("Send this data to server");
  50.     client.println(String("lingzhilab"));
  51.      
  52.     //读取从server返回到响应数据
  53.     String line = client.readStringUntil('\r');
  54.     Serial.println(line);
  55.      
  56.     Serial.println("closing connection");
  57.     client.stop();
  58.      
  59.     Serial.println("wait 5 sec...");
  60.     delay(5000);
  61. }
复制代码


注:上述代码中需要填写自己的Wifi热点ssid和密码以及电脑所在局域网分配的IP地址(在零知工具箱(请至零知官网“软件下载”页面获取)-网络调试界面可以选择IP,这两处是一致的)。

3、验证测试
首先打开零知工具箱的网络调试窗口,然后选择TCP服务端,并选择IP和端口:
adjustone.jpg

然后点击【连接】,这样就在电脑端开启了一个TCP服务器,然后就可以和ESP8266进行通信了:
adjusttwo.jpg


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表