用个小程序来测试一下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
小灯点亮,串口监视器也会显示如下信息: