使用php控制esp8266,esp8266 arduino ide局域网控制led的开关

之前说到局域网的通信,那么控制led的开关肯定不在话下,这里给你们看个例子

先看个视频吧

#include

const char *ssid = "南一游戏中心";//这里是我的wifi,你使用时修改为你要连接的wifi ssid

const char *password = "Tplinkwifi";//你要连接的wifi密码

WiFiServer server(8088);//你要的端口号,随意修改,范围0-65535

WiFiClient serverClient;//客户端

int i=0;//变量

int wifiLed=2,led=3;//wifiled显示wifi状态,led是我们要遥控的

char run='c';//储存命令

#define OPEN 'o'

#define CLOSE 'c'

void setup()

{

Serial.begin(115200); //设置波特率

pinMode(wifiLed,OUTPUT); //设置wifiled的输出口

pinMode(led,OUTPUT); //设置led的输出口

delay(10);

Serial.println();

Serial.println();

Serial.print("Connecting to ");//写几句提示,哈哈

Serial.println(ssid);

WiFi.begin(ssid, password);

int cnt=0;

while (WiFi.status() != WL_CONNECTED&&cnt<20)//WiFi.status() ,这个函数是wifi连接状态,返回wifi链接状态

//这里就不一一赘述它返回的数据了,有兴趣的到ESP8266WiFi.cpp中查看

{

digitalWrite(wifiLed, cnt%2==0?HIGH:LOW); //达到亮灭的目的

delay(500);//延时0.5秒

Serial.print(".");

cnt++;

}

if(cnt<20)//如果有连上wifi

{

Serial.println("WiFi connected");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());//WiFi.localIP()返回8266获得的ip地址

digitalWrite(wifiLed, HIGH); //wifi指示灯打开

server.begin();//启动服务

server.setNoDelay(true); //加上后才正常些

Serial.println("Working...");

}

else

{

Serial.println("WiFi disconnected,please check!");

digitalWrite(wifiLed, LOW); //wifi指示灯灭

}

}

void loop()

{

if(WiFi.status() != WL_CONNECTED)//监测wifi连接状态

{

Serial.println("WiFi disconnected,please check!");

digitalWrite(wifiLed, LOW);

delay(1000);

}

else

{

digitalWrite(wifiLed, HIGH);

if (server.hasClient())//如果有连接进来

{

if (!serverClient|| !serverClient.connected())

{

if (serverClient)

serverClient.stop();//未联接,就释放

serverClient= server.available();//分配新的

}

}

if (serverClient && serverClient.connected())

{

if (serverClient.available())

{

int r=1;//读取第一个,剩余的不要

while (serverClient.available())

{

if (r==1)

run=serverClient.read();//读取到的命令存起来

Serial.print(serverClient.read());//输出读取的内容

r++;

}

}

}

switch(run)//对命令进行判断,并操作

{

case OPEN:digitalWrite(led, HIGH);

break;

case CLOSE:digitalWrite(led, LOW);

break;

}

delay(10);

if (serverClient && serverClient.connected())

{

serverClient.write("LED已经"); //向客户端发送数据

serverClient.write(digitalRead(led)==0?"关闭":"打开");

serverClient.write("\n");

delay(1);

}

}

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值