|
楼主 |
发表于 2021-11-5 14:40
|
显示全部楼层
#include<ESP8266WiFi.h>
int LED0=D0; //定义led引脚为D0
int LED1=D1; //定义led引脚为D1
int LED2=D2; //定义led引脚为D2
int LED3=D3; //定义led引脚为D3
//家里的wifi名称和密码
const char* ssid = "3F-IT";
const char* password = "CF12345678";
//服务器设置为80端口
WiFiServer server(9000);
String data = "";
void setup() {
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
//开启串口监视器
Serial.begin(9600);
//开启wifi:用户名+密码
WiFi.begin(ssid,password);
//尝试连接wifi
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.println('.');
}
Serial.println("连接成功");
Serial.println(WiFi.localIP());
//开启服务
server.begin();
Serial.println("Server started");
}
void loop() {
//确定是否连线
WiFiClient client = server.available();
//Serial.println("客户端与服务器没有连接上");
//判断客户端是否与服务器连上,若没有连接上,则执行if
if(!client){
return;
}
Serial.println("客户端与服务器连接上");
//客户端是否与服务器连上
while(client){
//如果没有东西输入了,就检查data是否为空,如果data不为空,就打印出来,并将data清空
if(!client.available()){
//如果data不为空,则什么
if(data != ""){
Serial.println(data);
if(data == "a")
{
Serial.println("D0没有消息");
digitalWrite(LED0, HIGH); // 点亮
delay(500); // 等待
digitalWrite(LED0, LOW); // 关闭
delay(500); // 等待
}
else if(data == "b")
{
Serial.println("D1没有消息");
digitalWrite(LED1, HIGH); // 点亮
delay(500); // 等待
digitalWrite(LED1, LOW); // 关闭
delay(500); // 等待
}
else if(data == "c")
{
Serial.println("D2没有消息");
digitalWrite(LED2, HIGH); // 点亮
delay(500); // 等待
digitalWrite(LED2, LOW); // 关闭
delay(500); // 等待
}
else if(data == "d")
{
Serial.println("D3没有消息");
digitalWrite(LED3, HIGH); // 点亮
delay(500); // 等待
digitalWrite(LED3, LOW); // 关闭
delay(500); // 等待
}
data = "";
//Serial.println("没有消息");
}
}
else if (client.available()) {
//如果有一句话过来,则每执行一个while循环就往data添加字符(有信息过来会连续执行else if语句)
data += char(client.read());
}
}
}
|
|