我可以使ESP8266模块连接到wifi热点。WiFi.begin(ssid,pass);我还让这个模块作为wifi热点运行,使用它自己的ip,也让它作为网络服务器。现在,我如何使用单个esp8266模块连接到外部wifi热点,以定期发送传感器数据?同时,它将充当wifi热点,以便另一台客户端pc/笔记本电脑可以连接到该热点并使用其静态IP获取网页。
发布于 2019-10-04 07:26:08
为了发送数据并将其用作web服务器,您需要有一个包含MDNS。
MDNS.begin("esp8266");
server.on("/", handleRoot);
server.begin();现在,您必须为handleRoot创建函数
void handleRoot() {
int sec = millis() / 1000;
int min = sec / 60;
int hr = min / 60;
snprintf(temp, 1000,
"<html>\
<head>\
<title>YOUR_TITLE</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<p>Uptime: %02d:%02d:%02d</p>\
</body>\
</html>", hr, min % 60, sec % 60);
server.send(200, "text/html", temp);
}每次您打开esp8266的静态ip时,这将显示一个带有时间的网页。
定义头文件,并在以后将其包含在代码中
#ifndef htmlData_h
#define htmlData_h
const char* dataHTML = "MY HTML CODE";
const char* dataHTML1 = "MY 2 HTML CODE";
#endifHTML代码示例
const char* dataHTML = "<html>\
<head>\
<title>Demo</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<h1>Hello!!!</h1>\
<p>Uptime: %02d:%02d:%02d</p>\
<FORM METHOD=POST action='/'>\
<textarea rows = \"5\" cols = \"60\" name=myText>Talk to me...</textarea>\
<br>\
<input type=submit value='Talk'>\
</FORM>\
</body>\
</html>";在上面的代码中,页面将给出一个文本框,在您单击输入按钮Talk后,您必须使用该文本框将数据发送到esp8266。
要打印这些值,请使用
<input type=text name=myssid value=\"%s\">\
并使用
snprintf(temp, 1000, dataHTML, variable1, varriable2,.....);
在这里,variable1变量2将表示您编码的序列中的所有%s值。
https://stackoverflow.com/questions/58208418
复制相似问题