0


基于Arduino IDE 野火ESP8266模块 webServer 的开发

一、库文件

  在 Arduino IDE 中开发 ESP8266 模块的 Web 服务器,可以使用 ESP8266 社区开发的库,如 ESP8266WiFiESP8266WebServer

二、代码示例

以下是一个简单的示例,说明如何使用 Arduino IDE 和 ESP8266WiFi 和 ESP8266WebServer 库来开发一个基本的 Web 服务器。

编写代码,在 Arduino IDE 中创建一个新的项目,代码如下:

  1. #include <ESP8266WiFi.h>
  2. #include <ESP8266WebServer.h>
  3. const char* ssid = "your_wifi_ssid";
  4. const char* password = "your_wifi_password";
  5. ESP8266WebServer server(80);
  6. void setup() {
  7. Serial.begin(115200);
  8. WiFi.begin(ssid, password);
  9. while (WiFi.status() != WL_CONNECTED) {
  10. delay(500);
  11. Serial.print(".");
  12. }
  13. Serial.println("");
  14. Serial.println("WiFi connected");
  15. Serial.print("IP address: ");
  16. Serial.println(WiFi.localIP());
  17. server.on("/", HTTP_GET, []() {
  18. String s = "<html><body>";
  19. s += "<h1>Hello from ESP8266!</h1>";
  20. s += "<p>This is a simple web server.</p>";
  21. s += "</body></html>";
  22. server.send(200, "text/html", s);
  23. });
  24. server.begin();
  25. }
  26. void loop() {
  27. server.handleClient();
  28. }

注意:请确保将 ssid 和 password 替换为实际使用的 Wi-Fi 网络的实际 SSID 和密码。
选择正确的开发板和端口,在 Arduino IDE 的“工具”菜单中,选择正确的开发板(例如使用的 ESP8266 开发板)和正确的端口。
上传代码,点击 Arduino IDE 中的“上传”按钮,将代码上传到 ESP8266 模块。
测试 Web 服务器,一旦代码上传成功,ESP8266 模块将连接到 Wi-Fi 网络,并启动一个 Web 服务器。使用Web 浏览器,输入 ESP8266 的 IP 地址(在串行监视器中显示)来访问服务器。可以看到一个简单的网页,显示“Hello from ESP8266!”和“This is a simple web server.”的文本。
在这里插入图片描述
基本测试
修改测试代码,增加显示 “This is a get method.” ,代码如下:

  1. #include "ESP8266WiFi.h"
  2. #include "ESP8266WebServer.h"
  3. const char* ssid = "your_wifi_ssid";
  4. const char* password = "your_wifi_password";
  5. ESP8266WebServer server(80);
  6. void http_get_index(){
  7. String s = "<html><body>";
  8. s += "<h1>Hello from ESP8266!</h1>";
  9. s += "<p>This is a simple web server.</p>";
  10. s += "<p>This is a get method.</p>";
  11. s += "</body></html>";
  12. server.send(200, "text/html", s);
  13. }
  14. void setup() {
  15. Serial.begin(115200);
  16. WiFi.begin(ssid, password);
  17. while (WiFi.status() != WL_CONNECTED) {
  18. delay(500);
  19. Serial.print(".");
  20. }
  21. Serial.println("");
  22. Serial.println("WiFi connected");
  23. Serial.print("IP address: ");
  24. Serial.println(WiFi.localIP());
  25. // server.on("/", HTTP_GET, []() {
  26. // String s = "<html><body>";
  27. // s += "<h1>Hello from ESP8266!</h1>";
  28. // s += "<p>This is a simple web server.</p>";
  29. // s += "</body></html>";
  30. // server.send(200, "text/html", s);
  31. // });
  32. server.on("/", HTTP_GET, http_get_index);
  33. server.begin();
  34. }
  35. void loop() {
  36. server.handleClient();
  37. }

测试结果如下:
在这里插入图片描述
控制LED灯

  1. #include <ESP8266WiFi.h>
  2. #include <ESP8266WebServer.h>
  3. const char* ssid = "your_wifi_ssid";
  4. const char* password = "your_wifi_password";
  5. ESP8266WebServer server(80);
  6. void handleLED() {
  7. // 检查是否传递了 "state" 参数
  8. String ledStateStr = server.arg("state");
  9. // 将字符串转换为布尔值
  10. bool ledState = ledStateStr.toInt() != 0;
  11. // 设置 LED 的状态
  12. Serial.println(ledState);
  13. // 发送响应
  14. String response = "LED state set to ";
  15. response += ledState ? "ON" : "OFF";
  16. server.send(200, "text/plain", response);
  17. }
  18. void setup() {
  19. Serial.begin(115200);
  20. WiFi.begin(ssid, password);
  21. while (WiFi.status() != WL_CONNECTED) {
  22. delay(500);
  23. Serial.print(".");
  24. }
  25. Serial.println("");
  26. Serial.println("WiFi connected");
  27. Serial.print("IP address: ");
  28. Serial.println(WiFi.localIP());
  29. // 设置服务器路由
  30. server.on("/led", HTTP_GET, handleLED);
  31. server.begin();
  32. Serial.println("HTTP server started");
  33. }
  34. void loop() {
  35. server.handleClient();
  36. }

网页输入

  1. http://your ip/led?state=0

在这里插入图片描述

  1. http://your ip/led?state=1

在这里插入图片描述
串口打印信息
在这里插入图片描述
控制开关

  1. #include <Arduino.h>
  2. #include "ESP8266WiFi.h"
  3. #include "ESP8266WebServer.h"
  4. const char* ssid = "your_wifi_ssid";
  5. const char* password = "your_wifi_password";
  6. ESP8266WebServer server(80);
  7. void handleRoot() {
  8. String html = "<!DOCTYPE html>\n"
  9. "<html lang=\"en\">\n"
  10. "<head>\n"
  11. " <meta charset=\"UTF-8\">\n"
  12. "</head>\n"
  13. "<body>\n"
  14. "<h2>板载开关控制</h2>\n"
  15. "<a href=\"/on\">打开</a>\n"
  16. "<a href=\"/off\">关闭</a>\n"
  17. "</body>\n"
  18. "</html>";
  19. server.send(200, "text/html", html);
  20. }
  21. void handleOn() {
  22. //digitalWrite(SW_PIN, LOW);
  23. Serial.println("开关 打开");
  24. server.sendHeader("Location", "/");
  25. //server.send(200);
  26. server.send(303);
  27. }
  28. void handleOff() {
  29. //digitalWrite(SW_PIN, HIGH);
  30. Serial.println("开关 关闭");
  31. server.sendHeader("Location", "/");
  32. //server.send(200);
  33. server.send(303);
  34. }
  35. void setup() {
  36. Serial.begin(115200);
  37. //pinMode(SW_PIN, OUTPUT);
  38. WiFi.begin(ssid, password);
  39. while (WiFi.status() != WL_CONNECTED) {
  40. delay(500);
  41. Serial.print(".");
  42. }
  43. Serial.println("");
  44. Serial.println("WiFi connected");
  45. Serial.print("IP address: ");
  46. Serial.println(WiFi.localIP());
  47. server.begin();
  48. server.on("/", handleRoot);
  49. server.on("/on", handleOn);
  50. server.on("/off", handleOff);
  51. }
  52. void loop() {
  53. server.handleClient();
  54. }

测试结果
web输入串口输出的ip地址
在这里插入图片描述
点击开关打开和关闭,串口会打印信息。
在这里插入图片描述

标签: arduino esp8266 野火

本文转载自: https://blog.csdn.net/weixin_46158019/article/details/137007025
版权归原作者 嵌入式学习和实践 所有, 如有侵权,请联系我们删除。

“基于Arduino IDE 野火ESP8266模块 webServer 的开发”的评论:

还没有评论