查看: 1163|回复: 5

如何用smartconfig建立TCP

[复制链接]

该用户从未签到

发表于 2018-10-8 15:52 | 显示全部楼层 |阅读模式
想问一下,我现在找到相关arduino程序可以用smartconfig可以练到WiFi,但如果想要想要建立tcp透传模式连接传输数据,该怎么搞?
  • TA的每日心情
    开心
    2018-10-17 12:02
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-10-8 16:33 | 显示全部楼层
    SmartConfig有时候其实挺麻烦的,不是所有的场合都合适,这时候还不如刷个带WEB配置的透传固件;
    想省事你还可以试试我开发的这两款(帮自己宣传,嘻嘻
    ESP32:   https://www.arduino.cn/thread-82090-1-1.html
    ESP8266: https://www.arduino.cn/thread-81941-1-1.html
  • TA的每日心情
    开心
    2018-10-17 12:02
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-10-8 16:29 | 显示全部楼层
    透传其实就是 WIFI收到的数据直接写回串口,串口收到的收据直接从WIFI发出去;

    如果你要使用TCP方式进行连接,除了连接到WIFI外,还需要建立TCP连接:
    第一步:TCP连接有两种方式,一种是自己是SERVER,客户端连接你;另一种是你是CLIENT,去连接服务器;
    以自己为CLIENT方式为例讲解一下:

    bool connectedToServer;
    WiFiClient tcpClient;

    tcpClient.connect("192.168.1.1",8888);  //第一个参数是服务器IP(String),第二个参数是端口号(int)
    delay(1000);

            if (!connectedToServer)  //循例打印一下连接状态信息,帮助排错
            {
                    Serial.println(F("Connection failed!"));
                    return;
            }
            if (connectedToServer)
            {
                    tcpClient.keepAlive();
                    Serial.println(F("Connection OK"));
            }

    以上,就连接好TCP的服务器了,当然,前提是你的服务器已经开启;
    然后,你要实现透传,就要在LOOP中做一些数据读取和写入的代码:

    void loop()
    {
                  //扫描串口数据
                    if (Serial.available())
                    {
                            delay(50); //待缓冲区稳定
                            size_t len = Serial.available();
                            uint8_t *sbuf = NULL;
                            sbuf = (uint8_t*)malloc(sizeof(uint8_t) * len);
                            Serial.readBytes(sbuf, len);
                            if (tcpClient.connected())
                            {
                                    tcpClient.write(sbuf, len);
                            }
                            if (NULL != sbuf)
                            {
                                    free(sbuf);
                                    sbuf = NULL;
                            }
                    }

                    //扫描网络数据,传回串口中
                    if (tcpClient.available())
                    {
                            while (tcpClient.available())
                            {
                                    Serial.write(tcpClient.read());
                            }
                    }
                    delay(1);
    }

    这样就可以了,当然详细你就要自己动手实践一下。

    该用户从未签到

     楼主| 发表于 2018-10-9 13:37 | 显示全部楼层
    JamieChu 发表于 2018-10-8 16:33
    SmartConfig有时候其实挺麻烦的,不是所有的场合都合适,这时候还不如刷个带WEB配置的透传固件;
    想省事你 ...

    嗯嗯,谢谢啦,主要是现在只学习到esp8266的arduino程序编写,固件开发还要继续学习,我也只知道一个smartconfig可以配置网络。我就想要实现可以在手机或者web上可以配置网络,并且通过透传传输数据的功能,现在有方向了,开发固件可以实现这个功能,哈哈!:)
  • TA的每日心情
    开心
    2018-2-16 20:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-1-24 07:26 | 显示全部楼层
    JamieChu 发表于 2018-10-8 16:33
    SmartConfig有时候其实挺麻烦的,不是所有的场合都合适,这时候还不如刷个带WEB配置的透传固件;
    想省事你 ...

    终于发现了传说中的大神
  • TA的每日心情
    难过
    2018-7-30 00:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-3-29 11:31 | 显示全部楼层
    JamieChu 发表于 2018-10-8 16:29
    透传其实就是 WIFI收到的数据直接写回串口,串口收到的收据直接从WIFI发出去;

    如果你要使用TCP方式进行连 ...

    程序为什么运行出错,求解
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    ArduinoJason6教程由ArduinoJson作者Benoit亲自出马一对一教学
    ArduinoJason6教程由Ardui
    这几天我觉得社区教学好像缺了点什么,呃呃~我想一想好像是缺少了ArduinoJson6的教学
    Arduino+L298N小车实例教程
    Arduino+L298N小车实例教
    (第一次写教程,如有错漏,敬请拍砖)Arduino+L298N小车实例教程Arduino小车是一个非
    零知开源分享-蓝牙模块与手机APP通信
    零知开源分享-蓝牙模块与
    本篇文章中将讲解蓝牙模块与安卓手机APP进行通信。1、说明MCU:零知开发板-标准板模
    DHT库无法被找到
    DHT库无法被找到
    今天在安装了DHT库之后在编译时却显示无法找到库,请问我是在哪里安装出错了,谢谢大
    (可远程)ESP8266读DHT11温湿度,APP inventor制作app实时显示
    (可远程)ESP8266读DHT11
    原理讲解 原理简述:利用发布订阅模式。第一步,先读取DHT11温湿度数值,第二步,新
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表