ESP8266搭建web服务器
上篇文章我们详细介绍了如何用esp8266来设置wifi,今天我们来了解下如何用esp8266搭建一个web服务器,搭建的web服务器如果要与其他设备通讯,那么esp8266必须与其他设备在同一个局域网内,这里我们使用esp8266的终端模式,将其连入附近的wifi,那么同一wifi下的设备就能访问到esp8266的服务器了。
esp8266搭建服务器需要使用ESP8266WebServer,具体如何使用呢?看如下代码:
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WebServer.h>
ESP8266WiFiMulti wifiMulti;
ESP8266WebServer esp8266_server(80);
void setup(void){
Serial.begin(9600);
wifiMulti.addAP("wifi1", "12345678");
wifiMulti.addAP("wifi2", "87654321");
wifiMulti.addAP("wifi3", "13572468");
while (wifiMulti.run() != WL_CONNECTED) {
delay(100);
}
Serial.println(WiFi.localIP());
//--------"启动网络服务功能"程序部分开始-------- //
esp8266_server.begin();
esp8266_server.on("/", handleRoot);
esp8266_server.onNotFound(handleNotFound);
//--------"启动网络服务功能"程序部分结束--------
Serial.println("HTTP esp8266_server started");// 告知用户ESP8266网络服务功能已经启动
}
void loop(void){
esp8266_server.handleClient();
}
void handleRoot() {
esp8266_server.send(200, "text/plain", "Hello from ESP8266");
}
void handleNotFound(){
esp8266_server.send(404, "text/plain", "404: Not found");
}
代码主要分为两大部分,一部分为链接wifi,一部分为建立web服务器,链接wifi部分大家可以去看这篇文章,我们这里主要讲解如何建立服务器。步骤如下:
1、引入ESP8266WebServer库。
2、利用ESP8266WebServer实例化一个esp8266_server对象,同时传入参数80,代表服务器监听80端口。
3、调用esp8266_server.begin(),开启服务器。
4、调用esp8266_server.on("/", handleRoot),分发请求,此处的handleRoot是一个函数,负责处理请求的函数。
5、esp8266_server.onNotFound(handleNotFound),分发404请求,handleNotFound是一个函数,负责处理404。
6、定义handleRoot和handleNotFound函数的具体功能。
我们看到用esp8266搭建一个web服务器与使用其他开发环境搭建web服务器基本没有多大区别,基本套路都差不太多,通常都是实例化一个webserver对象,监听端口,分发路由,定义路由函数等等。
以上便是用esp8266搭建一个简易的web服务器,希望对你有所帮助。
我是挥刀北上,下期再见。
- 使用awk来解析dump文件 (73天)
- IntelIj IDEA运行JUnit Test OutOfMemoryError
- git pull fails “unable to resolve reference” “unable to update local ref”
- 使用dropwizard(5)--加入swagger
- 使用hint来调优sql语句(72天)
- 用R语言对城管事件数据分析
- 使用dropwizard(4)-加入测试-jacoco代码覆盖率
- goldengate学习-安装篇(71天)
- 使用dropwizard(6)-国际化-easy-i18n
- 配置不同环境下启用swagger,在生产环境关闭swagger
- 使用ControllerAdvice注意事项,Ambiguous @ExceptionHandler method mapped for [class org.springframework.web.
- rac节点无法启动ORA-29702的问题及分析(70天)
- SpringMVC,SpringBoot文件下载
- SpringCloud学习1-服务注册与发现(Eureka)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 手把手教你,嘴对嘴传达------Nginx网站服务(访问状态统计,基于域名,端口,IP的虚拟web主机访问)
- lib-flexible引入到Vue做移动端rem布局
- 微信小程序引入VantWeapp开发
- 手把手教你,嘴对嘴传达------源码编译LNMP部署及应用 , 手动搭建discuz论坛
- 微信小程序封装api接口
- 手把手教你,嘴对嘴传达------Nginx常规的优化(隐藏版本号,缓存时间,日志切割,网页压缩,防盗链优化)
- Vue Router 实现多种页面跳转
- Vue实现输入框自动聚焦
- 手把手教你,嘴对嘴传达------Apache --ab测试
- Css实现内容溢出添加横向滚动条
- 手把手教你,嘴对嘴传达------深入介绍Nginx的rewrite模块(理论加实验)
- jQuery实现点击图片弹出视频并自动播放
- 机器学习之决策树一-ID3原理与代码实现
- jQuery点击返回顶部
- 手把手教你,嘴对嘴传达------Nginx实现动静分离的两种方式