查看: 2296|回复: 9

ESP8266之连上arduino与tcp服务端数据交互

[复制链接]
  • TA的每日心情
    奋斗
    2018-9-12 18:31
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2018-5-14 19:37 | 显示全部楼层 |阅读模式
    本帖最后由 李德凯 于 2018-5-14 19:39 编辑

    总操作流程:
    • 1、各器件链接
    • 2、写入程序
    • 3、测试

    8266作为TCP客户端
    • 接收服务发送来的信息
    各器件链接
    写入程序
    注意:上传代码的时候断开RX和TX的连接,完成后接回

    #include <SoftwareSerial.h>
    SoftwareSerial getData(0, 1);//esp8266-01的TX对应开发板的RX,esp8266-01的RX对应开发板的TX

    void setup() {
      getData.begin(115200);
      getAT();
      Serial.begin(115200);
    }

    void loop() {
      if (getData.available() > 0){
          String str=getData.readString();
          Serial.println(str);
      }
    }

    void getAT(){
      getData.println("AT+CWMODE=1");//将8266设置为STA模式
      delay(3000);
      getData.println("AT+RST");//设置完之后重启
      delay(3000);
      getData.println("AT+CWJAP=\"WE-178\",\"AbCe@163.com~*~");//8266连接路由器发出的WiFi
      delay(3000);
      getData.println("AT+CIPMUX=0");//启动多连接
      delay(3000);
      getData.println("AT+CIPSTART=\"TCP\",\"192.168.0.103\",8080");//通过协议、IP和端口连接服务器
      delay(3000);
      getData.println("AT+CIPMODE=1");//设置透传
      delay(3000);
      getData.println("AT+CIPSEND");//启动发送
      delay(3000);
      getData.println("Connection Successful");//发送数据
      delay(3000);
    }
    测试
    • 向服务发送信息
    各器件链接
    写入程序
    注意:上传代码的时候断开RX和TX的连接,完成后接回

    #include <SoftwareSerial.h>
    SoftwareSerial sendData(1, 0);//esp8266-01的RX对应开发板的RX,esp8266-01的TX对应开发板的TX

    void setup() {
      sendData.begin(115200);
      sendAT();
      Serial.begin(115200);
    }

    void loop() {
    if (Serial.available() > 0){
          String str=sendData.readString();
          sendData.println(str);
      }
    }

    /**
    * 写AT命令,连接服务器
    */
    void sendAT(){
      sendData.println("AT+CWMODE=1");//将8266设置为STA模式
      delay(3000);
      sendData.println("AT+RST");//设置完之后重启
      delay(3000);
      sendData.println("AT+CWJAP=\"WE-178\",\"AbCe@163.com~*~");//8266连接路由器发出的WiFi
      delay(3000);
      sendData.println("AT+CIPMUX=0");//启动多连接
      delay(3000);
      sendData.println("AT+CIPSTART=\"TCP\",\"192.168.0.103\",8080");//通过协议、IP和端口连接服务器
      delay(3000);
      sendData.println("AT+CIPMODE=1");//设置透传
      delay(3000);
      sendData.println("AT+CIPSEND");//启动发送
      delay(3000);
      sendData.println("Connection Successful");//发送数据
      delay(3000);
    }

    测试

    打赏作者鼓励一下!
  • TA的每日心情
    擦汗
    2018-8-6 00:14
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2018-8-8 23:15 | 显示全部楼层
    兄台,你的代码有润肠通便之功效,太神奇了
    我的8266连接arduino,在arduino里通过通过AT指令能连接到路由器,但是无法连接tcp服务器,把8266用usb串口转换工具,通过串口调试工具能连上Wi-Fi和tcp服务器。一筹莫展!!1
    看了你的帖子后,运行了下面那段代码,发现可以连接到Wi-Fi和tcp服务器了,然后我把Arduino接口从0,1调整到其他接口,也能Wi-Fi和tcp服务器了,8266又好用了,真是太神奇了,
  • TA的每日心情
    开心
    2018-8-12 14:00
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-8-14 12:42 | 显示全部楼层
    图片失效了,重新发一下吧
  • TA的每日心情

    2018-9-11 16:18
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2018-8-29 17:52 | 显示全部楼层
    发送GET 请求咋弄啊,还有POST请求?
  • TA的每日心情
    奋斗
    2018-9-12 18:31
  • 签到天数: 18 天

    [LV.4]偶尔看看III

     楼主| 发表于 2018-9-12 18:29 | 显示全部楼层
    图片失效请到我的github:https://github.com/OurNotes/CCN/blob/master/3.%E5%B5%8C%E5%85%A5%E5%BC%8F/1.arduino(arduino%20uno%20r3%20)/2.arduino%E4%B9%8B%E9%A1%B9%E7%9B%AE/22-arduino%E4%B9%8Bwifi%20ESP8266/2.ESP8266%E4%B9%8B%E5%AD%A6%E4%B9%A0/1.%E5%AE%89%E5%8F%AF%E4%BF%A1/1.ESP8266%E4%B9%8BAT%E5%91%BD%E4%BB%A4%E5%BC%80%E5%8F%91/4-ESP8266%E4%B9%8B%E8%BF%9E%E4%B8%8Aarduino%E4%B8%8Etcp%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%95%B0%E6%8D%AE%E4%BA%A4%E4%BA%92.md
    打赏作者鼓励一下!

    该用户从未签到

    发表于 2018-9-18 20:37 | 显示全部楼层
    看不到图了

    该用户从未签到

    发表于 2019-1-2 15:23 | 显示全部楼层
    你好,请问如果程序这样写好,在断电后重新连接会不会不好使了
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    KittenBot杯第六届开源硬件开发大赛启动啦
    KittenBot杯第六届开源硬
    大赛简介: 第六届开源硬件开发大赛由Arduino中文社区发起 由KittenBot冠名赞助
    游戏机和开发板脑洞一下;这个本来就是开源的。
    游戏机和开发板脑洞一下;
    这个开发板和标准UNO是1;1的;通用。做在一起是因为可以不用游戏机时可以切换回来做开
    新人求助,关于舵机和限位开关。
    新人求助,关于舵机和限位
    新人求助社区各位哥哥姐姐,具体需要用航模遥控器的3段开关控制Arduino nano控制一个3
    基于MWC开源飞控DIY关键总结分享:
    基于MWC开源飞控DIY关键总
    很早就已经很想写这么一个帖,但总是由于各种原因没能落实,但最后还是找了时
    有关函数返回值的问题
    有关函数返回值的问题
    求助大神们,这个程序中有return返回值,但为什么有这个“ warning: return-statement
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表