昨天刚收到了ESP8266-01 01S WIFI模块,测试一下产品是好是坏,顺便写这一篇,内容简单。
准备的工作
点进去下载ESP8266 SDK 因为用的Arduino IDE ,下载好后直接双击运行.exe文件即可,我用的是8266_package_2.6.3。
然后打开Arduino IDE 选择开发板NodeMCU 1.0(ESP-12E Module):
打开示例
找不到的就直接拷下面代码也可以
Arduino IDE代码
注意修改wifi名称与密码,LED_BUILTIN就是这个wifi模块上的LED灯,注意波特率设置为115200
#include <ESP8266WiFi.h>
#ifndef STASSID
#define STASSID "你的wifi名称"
#define STAPSK "你的wifi密码"
#endif
const char* ssid = STASSID;
const char* password = STAPSK;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
// prepare LED
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, 0);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print(F("Connecting to "));
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(F("."));
}
Serial.println();
Serial.println(F("WiFi connected"));
server.begin();
Serial.println(F("Server started"));
// Print the IP address
Serial.println(WiFi.localIP());
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println(F("new client"));
client.setTimeout(5000); // default is 1000
// Read the first line of the request
String req = client.readStringUntil('\r');
Serial.println(F("request: "));
Serial.println(req);
// Match the request
int val;
if (req.indexOf(F("/gpio/0")) != -1) { ///gpio/0的话就让灯灭
val = 0;
} else if (req.indexOf(F("/gpio/1")) != -1) { ///gpio/1的话就让灯亮
val = 1;
} else {
Serial.println(F("invalid request"));
val = digitalRead(LED_BUILTIN);
}
// Set LED according to the request
digitalWrite(LED_BUILTIN, val);
// read/ignore the rest of the request
// do not client.flush(): it is for output only, see below
while (client.available()) {
// byte by byte is not very efficient
client.read();
}
// Send the response to the client
// it is OK for multiple small client.print/write,
// because nagle algorithm will group them into one single packet
client.print(F("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now "));
client.print((val) ? F("high") : F("low"));
client.print(F("<br><br>Click <a href='http://"));
client.print(WiFi.localIP());
client.print(F("/gpio/1'>here</a> to switch LED GPIO on, or <a href='http://"));
client.print(WiFi.localIP());
client.print(F("/gpio/0'>here</a> to switch LED GPIO off.</html>"));
// The client will actually be *flushed* then disconnected
// when the function returns and 'client' object is destroyed (out-of-scope)
// flush = ensure written data are received by the other side
Serial.println(F("Disconnecting from client"));
}
上传运行:
运行成功后,打开串口监视器,注意右下角设置波特率为115200,一开始可能看不到东西,这时候按下wifi模块上面的RST复位按键,此时应该能看到下面的界面:
然后打开浏览器,输入出现的地址,我的是192.168.3.11
可以看到下面的 here 就可以控制led的亮灭
或者自己在那一串地址后面 加入 /gpio/1 或0 试试