前期准备
- 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<ESP8266WiFi.h>
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();
}
}
实验现象
后续
如果想了解更多物联网、智能家居项目知识,可以关注我的项目实战专栏。
欢迎关注公众号与我交流。
编写不易,感谢支持。