查看: 3905|回复: 11

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 | 显示全部楼层
    你好,请问如果程序这样写好,在断电后重新连接会不会不好使了
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    做了一个定时喂鱼的装置
    做了一个定时喂鱼的装置
    快放假了,怕鱼饿瘦了做了这么个控制,每天定时投鱼粮。用ESP8266编写,web设定参数,
    【项目】基于Arduino Nano的多功能桌面感应垃圾桶
    【项目】基于Arduino Nano
    基于Arduino Nano的多功能桌面感应垃圾桶随着大学生活不断往前迈进,宿舍桌面上的杂物
    arduino +MPU6050控制云台相机匀速转动(接受付费)!
    arduino +MPU6050控制云台
    最近在调试云台(用的有刷直流减速电机挂大相机的那种),发现相机在往下移动时往往速
    光敏电阻检测环境光实验
    光敏电阻检测环境光实验
    本文节选自《Arduino程序设计基础》 一些简单的电子元件就可以做传感器使用,例如我
    基于Esp8266的点阵时钟
    基于Esp8266的点阵时钟
    芯片是ESP8266 12F 配合点阵单元板(64*32,单色),实现自动对时,天气预报,农历,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表