本帖子基于: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
写下来做个记录
服务端可以用网络串口调试助手模拟一个
[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]
|