ESP8266 Nodemcu学习心得②
- 一、库函数记录
- 二、代码学习
- 1、创建一个网络服务器
- 2、优化网页显示内容
一、库函数记录
ESP8266WebServer esp8266_server(80);// 括号中的数字是网路服务器响应http请求的端口号,网络服务器标准http端口号为80,因此这里使用80为端口号
esp8266_server.begin(); // 启动网络服务功能
esp8266_server.on("/", handleRoot); //“/”页面名称,handleRoot发送给页面的内容
esp8266_server.onNotFound(handleNotFound); //Nodemcu无法满足请求时的处理方式
esp8266_server.handleClient(); // 处理http服务器访问
esp8266_server.send(200, "text/plain", "Hello from ESP8266");// 处理http服务器访问,检查有没有设备通过网络向NodeMCU发送请求,注意一定要确保handleClient函数经常得以调用
二、代码学习
1、创建一个网络服务器
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char *ssid = "FreeWIFI"; // 这里定义将要建立的WiFi名称。
const char *password = "20202020"; // 这里定义将要建立的WiFi密码。
ESP8266WebServer esp8266_server(80);// 括号中的数字是网路服务器响应http请求的端口号,网络服务器标准http端口号为80,因此这里使用80为端口号
void setup(void)
{
Serial.begin(9600); // 启动串口通讯
WiFi.softAP(ssid, password); // WiFi.softAP用于启动NodeMCU的AP模式
esp8266_server.begin(); // 启动网络服务功能
esp8266_server.on("/", handleRoot); //“/”页面名称,handleRoot发送给页面的内容
esp8266_server.onNotFound(handleNotFound); //Nodemcu无法满足请求时的处理方式
Serial.println("esp8266_server started"); // 发送ESP8266网络服务功能已经启动信息
}
void loop(void)
{
Serial.print("Access Point: "); // 通过串口监视器输出信息
Serial.println(ssid); // 告知用户NodeMCU所建立的WiFi名
Serial.print("IP address: "); // 以及NodeMCU的IP地址
Serial.println(WiFi.softAPIP()); // 通过调用WiFi.softAPIP()可以得到NodeMCU的IP地址
esp8266_server.handleClient(); // 处理http服务器访问,检查有没有设备通过网络向NodeMCU发送请求,注意一定要确保handleClient函数经常得以调用
}
void handleRoot()
{
esp8266_server.send(200, "text/plain", "富强民主文明和谐\n自由平等公正法制\n爱国敬业诚信友善\n"); //生成并且发送http响应信息,"text/plain"表明这是一段纯文本信息
}
void handleNotFound()
{
// 当浏览器请求的网络资源无法在服务器找到时
esp8266_server.send(404, "text/plain", "404: Not found");
}
2、优化网页显示内容
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char *ssid = "FreeWIFI"; // 这里定义将要建立的WiFi名称。
const char *password = "20202020"; // 这里定义将要建立的WiFi密码。
ESP8266WebServer esp8266_server(80);// 括号中的数字是网路服务器响应http请求的端口号,网络服务器标准http端口号为80,因此这里使用80为端口号
void setup(void)
{
Serial.begin(9600); // 启动串口通讯
WiFi.softAP(ssid, password); // WiFi.softAP用于启动NodeMCU的AP模式
esp8266_server.begin(); // 启动网络服务功能
esp8266_server.on("/", handleRoot); //“/”页面名称,handleRoot发送给页面的内容
esp8266_server.onNotFound(handleNotFound); //Nodemcu无法满足请求时的处理方式
Serial.println("esp8266_server started"); // 发送ESP8266网络服务功能已经启动信息
}
void loop(void)
{
Serial.print("Access Point: "); // 通过串口监视器输出信息
Serial.println(ssid); // 告知用户NodeMCU所建立的WiFi名
Serial.print("IP address: "); // 以及NodeMCU的IP地址
Serial.println(WiFi.softAPIP()); // 通过调用WiFi.softAPIP()可以得到NodeMCU的IP地址
esp8266_server.handleClient(); // 处理http服务器访问,检查有没有设备通过网络向NodeMCU发送请求,注意一定要确保handleClient函数经常得以调用
}
void handleRoot()
{
esp8266_server.send(200, "text/html", sendHTML()); //生成并且发送http响应信息,注意此处为html
}
void handleNotFound()
{
// 当浏览器请求的网络资源无法在服务器找到时
esp8266_server.send(404, "text/plain", "404: Not found");
}
String sendHTML()
{
String htmlCode = "<!DOCTYPE html> <html>\n";
htmlCode +="<head>\n";
htmlCode +="<title>社会主义核心价值观</title>\n";
htmlCode +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";//<style> 元素:调整字符颜色大小
htmlCode +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color: #444444;margin-bottom: 50px;}\n";
htmlCode +="</style>\n";
htmlCode +="</head>\n";
htmlCode +="<body>\n";
htmlCode +="<h1>社会主义核心价值观</h1>\n";//<h1>定义一个大标题
htmlCode +="<p>富强民主文明和谐</p>\n";//<p>定义一个段落
htmlCode +="<p>自由平等公正法治</p>\n";
htmlCode +="<p>爱国敬业诚信友善</p>\n";
htmlCode +="</body>\n";
htmlCode +="</html>\n";
return htmlCode;
}