当前位置: 首页 > news >正文

【Ardiuno】实验ESP32单片机搭建简易Web服务器功能(图文)

 今天,小飞鱼继续来测试使用ESP32来实现简易的wifi无线web服务器功能。使用Ardiuno平台编辑器输入以下示例代码:

#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>const char* ssid = "XIAOFEIYU";
const char* password = "XIAOFEIYU666";WebServer server(80);const int led = 13;void handleRoot() {digitalWrite(led, 1);server.send(200, "text/plain", "Hello from ESP32! --- XIAOFEIYU");digitalWrite(led, 0);
}void handleNotFound() {digitalWrite(led, 1);String message = "File Not Found\n\n";message += "URI: ";message += server.uri();message += "\nMethod: ";message += (server.method() == HTTP_GET) ? "GET" : "POST";message += "\nArguments: ";message += server.args();message += "\n";for (uint8_t i = 0; i < server.args(); i++) {message += " " + server.argName(i) + ": " + server.arg(i) + "\n";}server.send(404, "text/plain", message);digitalWrite(led, 0);
}void setup(void) {pinMode(led, OUTPUT);digitalWrite(led, 0);Serial.begin(9600);WiFi.mode(WIFI_STA);WiFi.begin(ssid, password);Serial.println("");// Wait for connectionwhile (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.print("Connected to ");Serial.println(ssid);Serial.print("IP address: ");Serial.println(WiFi.localIP());if (MDNS.begin("esp32")) {Serial.println("MDNS responder started");}server.on("/", handleRoot);server.on("/inline", []() {server.send(200, "text/plain", "this works as well");});server.onNotFound(handleNotFound);server.begin();Serial.println("HTTP server started");
}void loop(void) {server.handleClient();delay(2); 
}

编译上传程序到ESP32开发板,查看串口监视器输出,得到开发板获取的ip地址 

打开浏览器,输入开发板连接wifi获取的ip地址,可以看到有网页内容显示出来,我们的简易web服务器可以工作了。

可以输入指定的参数,显示预设的内容: 

输入其他路径,如果没有这个地址设置,则显示找不到文件。 

 通过以上示例代码的实验,我们了解了使用ESP32搭建web服务器的过程和web服务器的使用方法,积累了相关开发经验,继续Go。 

相关文章:

  • C#——值类型和引用类型的区别详情
  • 硬件存储管理
  • XSKY 在金融行业:新一代分布式核心信创存储解决方案
  • 【备忘录】配置 Docker 守护程序以使用代理服务器
  • aspose-words去水印自用资源
  • MySQL 搭建主从报错 1236
  • 土壤墒情监测站
  • 5_1 Linux 计划任务
  • 第十六章 模板方法模式
  • 上海媒体宣传:上海展览展会媒体邀约宣传怎么做?
  • Python深度学习:Bi-LSTM和LSTM在网络上有什么区别,对比来看
  • web前端需要的知识点:深度解析与技能进阶之路
  • Vue——子级向父级使用props传递数据(函数)
  • Golang | Leetcode Golang题解之第137题只出现一次的数字II
  • FPGA SPI采集ADC7606数据
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【面试系列】之二:关于js原型
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • es6要点
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • 产品三维模型在线预览
  • 工作手记之html2canvas使用概述
  • 后端_ThinkPHP5
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 入手阿里云新服务器的部署NODE
  • 网络应用优化——时延与带宽
  • 我这样减少了26.5M Java内存!
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • ​flutter 代码混淆
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​第20课 在Android Native开发中加入新的C++类
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (1) caustics\
  • (2)STM32单片机上位机
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (done) 两个矩阵 “相似” 是什么意思?
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .htaccess配置常用技巧
  • .NET Core 成都线下面基会拉开序幕
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET轻量级ORM组件Dapper葵花宝典
  • .net专家(张羿专栏)
  • ;号自动换行
  • @Conditional注解详解
  • @ModelAttribute使用详解
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成