网络通信之TCP Client通信(基于Arduino)
前期准备
- 前期准备
- 实验要求
- 具体方法
- 程序流程
- 程序
- 实验现象
- 后续
- Arduino IDE
- ESPDuino
- Arduino ESP8266版型文件
通过将ESPDuino开发板设置成TCP Client模式,从而达到联网通信
具体方法登录http://tcp.doit.am获取要使用的IP和端口:
- 设置热点账号和密码 const char* ssid="" const char* password=""
- 设置服务器IP const char* serverIP=“115.29.109.104”
- 设置端口号 int serverPort=6535
- 设置WiFi模式 WiFiClient client;
- 设置缓存 char buff[512]
- 串口初始化 Serial.begin(115200)
- 打开WiFi WiFi.begin(ssid,password)
- 打印IP地址 Serial.println(WiFi.localIP())
- 进入主循环
- 选择没有连接的客户端
- 检测客户端是否连接成功 client.connect(serverIP,serverPort)
- 检测客户端是否有数据 client.available()
- 读取数据 buff[bm++]=client.read
- 显示数据 Serial.print(buff) client.print(buff) client.flush();
#include
const char*ssid ="STM32L476";
const char*password ="284122348";
const char*serverIP ="115.29.109.104";
int serverPort =6558;
WiFiClient client;
bool bConnected =false;
char buff[512];
int nm =0;
void setup(){
Serial.begin(115200);
delay(10);
Serial.println();
Serial.println();
Serial.print("Connecting to");
Serial.println(ssid);
WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address:");
Serial.println(WiFi.localIP());
}
void loop(){
delay(1);
if(bConnected ==false)
{
if(!client.connect(serverIP,serverPort))
{
Serial.println("connection failed");
delay(5000);
return;
}
bConnected=true;
Serial.println("connection ok");
}
else if(client.available())
{
Serial.println("data is coming");
while(client.available())
{
buff[nm++]=client.read();
if(nm>=511)break;
}
buff[nm]=0x00;
nm=0;
Serial.print(buff);
client.print(buff);
client.flush();
}
}
实验现象
如果想了解更多物联网、智能家居项目知识,可以关注我的项目实战专栏。 欢迎关注公众号与我交流。
编写不易,感谢支持。