查看: 46|回复: 1
打印 上一主题 下一主题

【零知ESP8266教程】WIFI TCP协议通信 TCP服务器示例

[复制链接]
  • TA的每日心情

    2019-9-27 11:38
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    跳转到指定楼层
    楼主
    发表于 2019-9-27 11:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 零知实验室-roc 于 2019-9-27 11:44 编辑

    本帖主要讲解ESP8266 WIFI功能关于TCP协议网络传输的应用,这里演示了ESP8266作为TCP服务器的一个示例:
    1、硬件
    2、软件
    (1)代码如下:

    kittenblock中小学创客名师推荐的图形化编程软件

    /**********************************************************
    *? ? 文件: tcp-server.ino? ?? ?by 零知实验室(www.lingzhilab.com)
    *? ? -^^- 零知开源,让电子制作变得更简单! -^^-
    *? ? 时间: 2019/06/17 14:12
    *? ? 说明:
    ************************************************************/
    #include 
     
    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,然后打开串口调试窗口,可以看到如下信息:

    现在已经将ESP8266作为TCP服务器了,上面信息为IP和端口
    (2)打开零知工具箱的网络调试窗口,然后选择TCP客户端,并填写上面的IP和端口:
    PS:零知工具箱请至零知官网“软件下载”页面获取

    (3)点击【连接】后,就与ESP8266建立的TCP连接了,就可以发送和接收数据了,如下:

    更多精彩请关注零知实验室官网

    该用户从未签到

    沙发
    发表于 2019-9-27 15:23 | 只看该作者
    esp8266早过时了,现在是树莓派的天下
    您需要登录后才可以回帖 登录 | 立即注册 ?

    本版积分规则

    热门推荐

    关于温湿度传感器在LCD显示上的问题
    关于温湿度传感器在LCD显
    我建立了一个程序,想要将dht11传感器得到的数据显示在LCD1602上,但是LCD显的都是乱
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    【Arduino】108种传感器模块系列实验(74)--- 4位LED数码管模块
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    (开源)ESP8266改装小风扇,app远程控制+天猫精灵控制
    (开源)ESP8266改装小风
    材料准备 [*]USB风扇一个 [*]ESP8266一块 [*]3.3继电器一块 拆解风扇 第一次,没有
    基于机器视觉的智能分拣机械臂
    基于机器视觉的智能分拣机
    本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
    Copyright ???2015-2016??Arduino中文社区??Powered by?Discuz! ??( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表