esp8266网页服务器,【零知ESP8266】教程:HTTP WEB服务器示例

本帖最后由 lz-esp-link 于 2019-6-20 11:55 编辑

1、概述

HTTP web server作为ESP8266的一个常用功能,在这里使用零知开源平台进行该示例的演示。2、软件和硬件

硬件使用零知-ESP8266;

软件使用零知开发工具,自带示例:

70d8077d25d7c32fb2a7a7cb2bbf0996.gif

示例.jpg (133.74 KB, 下载次数: 8)

2019-6-20 11:48 上传3、方法步骤

(1)先在零知开发工具中打开AdvancedWebServer示例,或者复制下面的代码到零知开发工具中:

[mw_shl_code=arduino,true]/**********************************************************

*    文件: x.ino      by 零知实验室(www.lingzhilab.com)

*    -^^- 零知开源,让电子制作变得更简单! -^^-

*    时间: 2019/05/28 12:22

*    说明:

************************************************************/

#include

#include

#include

#include

#ifndef STASSID

#define STASSID "ssid"

#define STAPSK  "passwd"

#endif

const char *ssid = STASSID;

const char *password = STAPSK;

ESP8266WebServer server(80);

const int led = 13;

void handleRoot() {

digitalWrite(led, 1);

char temp[400];

int sec = millis() / 1000;

int min = sec / 60;

int hr = min / 60;

snprintf(temp, 400,

"\

\

ESP8266 Demo\

body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\

\

\

Hello from ESP8266!

\

Uptime: %02d:%02d:%02d

\

    test.svg%5C%22\

\

",

hr, min % 60, sec % 60

);

server.send(200, "text/html", temp);

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(115200);

WiFi.mode(WIFI_STA);

WiFi.begin(ssid, password);

Serial.println("");

// Wait for connection

while (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("esp8266")) {

Serial.println("MDNS responder started");

}

server.on("/", handleRoot);

server.on("/test.svg", drawGraph);

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();

MDNS.update();

}

void drawGraph() {

String out = "";

char temp[100];

out += "\n";

out += "\n";

out += "\n";

int y = rand() % 130;

for (int x = 10; x < 390; x += 10) {

int y2 = rand() % 130;

sprintf(temp, "\n", x, 140 - y, x + 10, 140 - y2);

out += temp;

y = y2;

}

out += "\n\n";

server.send(200, "image/svg+xml", out);

}[/mw_shl_code]

(2)验证上述代码并上传到零知-ESP8266开发板;

(3)我们打开零知开发工具的串口调试窗口,可以看到如下信息:

70d8077d25d7c32fb2a7a7cb2bbf0996.gif

调试窗口.jpg (38.38 KB, 下载次数: 4)

2019-6-20 11:49 上传

(4)现在我们用ping工具测试下网络,得到如下信息:

70d8077d25d7c32fb2a7a7cb2bbf0996.gif

ping.jpg (63.15 KB, 下载次数: 5)

2019-6-20 11:49 上传

(5)上述步骤成功后,我们现在打开浏览器,打开网址:http://esp8266.local,可以看到如下信息:

70d8077d25d7c32fb2a7a7cb2bbf0996.gif

结果.jpg (39.22 KB, 下载次数: 6)

2019-6-20 11:50 上传

更多详细资料可到零知实验室官网免费获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要让微信小程序与ESP8266进行通信,需要通过ESP8266搭建一个Web服务器,可以使用Arduino IDE进行编程。以下是基本的步骤: 1. 连接ESP8266模块,确保能够正常通信。 2. 在Arduino IDE中打开ESP8266板支持库,选择ESP8266模块型号。 3. 编写Arduino程序,实现建立Web服务器的功能。以下是一个简单的示例代码: ```c++ #include <ESP8266WiFi.h> const char* ssid = "your ssid"; const char* password = "your password"; WiFiServer server(80); void setup() { Serial.begin(115200); delay(10); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while (!client.available()) { delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); // Send a response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head>"); client.println("<title>Hello from ESP8266!</title>"); client.println("</head>"); client.println("<body>"); client.println("<h1>Hello from ESP8266!</h1>"); client.println("</body>"); client.println("</html>"); delay(1); Serial.println("Client disconnected"); } ``` 4. 上传程序到ESP8266模块。 5. 在微信小程序中使用HTTP请求访问ESP8266的IP地址和端口号(例如:http://192.168.1.100:80),即可获取ESP8266返回的响应。 需要注意的是,以上示例代码只是一个简单的Web服务器示例,实际应用中需要根据需求修改代码实现更复杂的功能。同时,为了保证通信的安全性,还需要进行一些加密和认证的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值