物联网开发(三)-手机WIFI控制开发板的LED灯

用个小程序来测试一下wifi功能,话不多说,直接开搞!

1.环境配置

在这里插入图片描述

2.代码编写

在这里插入图片描述
直接将下列代码复制到你的arduino程序中

/*
这个示意图演示了如何设置一个简单的类似http的服务器。
*服务器将根据请求设置GPIO pin
* * * http://server_ip/gpio=0**将GPIO4设置为低,
* * * http://server_ip/gpio=1**将设置GPIO4高
* server_ip是ESP8266模块的IP地址,将是
*模块连接后打印为串行。
 */

#include <ESP8266WiFi.h>

const char* ssid = "xxxxxxxx";//输入你家的wifi名
const char* password = "xxxxxxxx";//输入你家的wif密码

WiFiServer server(80);//开启板子的port 80

void setup() {
  Serial.begin(115200);//开启端口,速度为115200
  delay(10);
  pinMode(4, OUTPUT);//4号脚位定为输出 我这里是4号引脚接LED  你的板子是哪一个gpio这里就填几
  digitalWrite(4, 0);
  
  // 连接WiFi网络
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);//使用你家的WiFi和密码开始连线
  
  while (WiFi.status() != WL_CONNECTED) {//连线成功后停止跳点
    delay(500);
    Serial.print(".");
  }
  Serial.println("");//连线成功之后会在这里,跳出连线成功
  Serial.println("WiFi connected");
  

  server.begin();  // 开始服务
  Serial.println("Server started");
  
  Serial.println(WiFi.localIP());// 打印IP地址
}

void loop() {
  // 检查客户端是否已连接
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  
  // 等待,直到客户端发送一些数据
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  
  // 收到传过来的信息之后,将受到的信息存到req
  String req = client.readStringUntil('\r');
  Serial.println(req);//打印出收到的讯息
  client.flush();//流刷新,如果不flush,那么可能就堵塞了
  
  // 比对收到的讯息,确定执行什么操作
  int val;
  if (req.indexOf("/gpio=0") != -1)
    val = 0;
  else if (req.indexOf("/gpio=1") != -1)
    val = 1;
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }  
  digitalWrite(4, val);// 根据要求设置GPIO4
  
  client.flush();//刷新

  // 准备响应
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "</html>\n";

  // 将响应发送到客户机
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");
}

3.烧录程序并打开串口监视器

烧录上去,打开串口监听窗口,记录分配到的IP地址(我的是192.168.0.101);
在这里插入图片描述

 http://server_ip/gpio=0**将GPIO4设置为低,
 http://server_ip/gpio=1**将设置GPIO4高

在同一局域网下的手机电脑,浏览器中输入
https://server_ip/?gpio=0 致GPIO4脚位为低电平;
https://server_ip/?gpio=1 则使GPIO4脚位为高电平,点亮led;
server_ip就是串口监听器的打印的IP地址(例如我的就是:https://192.168.0.101/gpio=1 点亮led)

输入http://192.168.0.101/gpio=0
在这里插入图片描述
小灯熄灭,串口监视器也显示如下信息:
在这里插入图片描述
输入http://192.168.0.101/gpio=1
在这里插入图片描述
小灯点亮,串口监视器也会显示如下信息:
在这里插入图片描述

发布了38 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39400113/article/details/105400253
今日推荐