基于arduino ide for esp8266 实现tcp client-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10637|回复: 2

基于arduino ide for esp8266 实现tcp client

[复制链接]
发表于 2016-11-19 23:49 | 显示全部楼层 |阅读模式
本帖子基于:http://www.arduino.cn/forum.php? ... &authorid=64589的基础上进行微调
esp8266的基础贴:http://www.arduino.cn/forum.php? ... p;highlight=esp8266
官方的文档见:https://github.com/esp8266/Arduino/blob/master/doc/esp8266wifi/client-examples.md#get-connected-to-wi-fi

写下来做个记录
服务端可以用网络串口调试助手模拟一个
QQ图片20161119233915.png

[mw_shl_code=csharp,true]#include <ESP8266WiFi.h>//导入库
#define LED 2 //定位针脚2为led输入
const char *host = "192.168.0.103";//修改为你建立的Server服务端的IP地址
const int tcpPort = 8080;//修改为你建立的Server服务端的端口号
WiFiClient client;//创建一个客户端实例
void smartConfig()
{
WiFi.mode(WIFI_STA);//设置esp的运行模式
Serial.println("\r\n Wait for Smartconfig");//服务端提示,可以清晰的知道芯片在做什么
WiFi.beginSmartConfig();//库自带函数,此时通过手机进行wifi密码设置
while (1)
{
Serial.println("\r\n Wait for phone to config.");//提示需要通过手机端设置
digitalWrite(LED, 0);
delay(300);
digitalWrite(LED, 1);
delay(300);
//闪烁灯光提示
if (WiFi.smartConfigDone())//如果完成配置,提示连接情况,此时手机也会收到提示
{
  Serial.println("SmartConfig Success");
  Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
  Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
  break;
}
}
}

void setup()//芯片初始化
{
  Serial.begin(115200);
  Serial.println("Start module");
  pinMode(LED, OUTPUT);
  digitalWrite(LED, 0);
  smartConfig();
}

void loop()
{
while (!client.connected())//当无法连接上服务器时
{
if (!client.connect(host, tcpPort))//按指定的端口和地址链接到到指定的服务器,如果链接不上
{
  Serial.println("wait connection.to server ......");
  digitalWrite(LED,1);
  delay(100);
  digitalWrite(LED,0);
  delay(1000);
//1短灯光提示等待链接到服务器,此时wifi已经链接上的
}
}

if(client.connected())
{Serial.printf("connection to %\r\n",host);
}
    while (client.connected())//当处于链接状态 时
    {

  if (client.available())//如果缓冲区字符串大于0
  {
    String line = client.readStringUntil('\r\n');//获取字符串
    Serial.println(line);//把字符串传给串口
    client.print("got it \r\n");//向服务器反馈信息
}
}
}[/mw_shl_code]

发表于 2016-11-20 13:36 | 显示全部楼层
在这个基础上可以再加上HTTP了
发表于 2018-4-2 22:47 来自手机 | 显示全部楼层
我也说一句完美完美
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:42 , Processed in 0.108060 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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