├── HTML
├── asd.html
└── index.html
├── HelloServer
└── HelloServer.ino
└── README.md
/HTML/asd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
15 | Welcome ESP8266 for Light
16 |
17 |
18 |
22 |
26 |
30 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/HTML/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ESP8266 DATA Show
6 |
7 |
8 |
9 |
10 |
11 |
12 |
125 |
126 |
127 |
--------------------------------------------------------------------------------
/HelloServer/HelloServer.ino:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 |
6 | #ifndef STASSID
7 | #define STASSID "CU_CZ9C" //WIFI SSID
8 | #define STAPSK "a0v204n8" //WIFI password
9 | #endif
10 | #define LED LED_BUILTIN
11 | #define PIN_LIGHT1 D4
12 | #define PIN_DATA1 A0
13 | #define PIN_LIGHT2 D3
14 | #define PIN_LIGHT3 D2
15 | #define PIN_LIGHT4 D1
16 |
17 |
18 | const char* ssid = STASSID;
19 | const char* password = STAPSK;
20 |
21 | ESP8266WebServer server(80); //server端口号
22 |
23 | String html1 = "Welcome ESP8266 for Light";
24 | String html2 = "ESP8266 DATA Show";
25 |
26 |
27 |
28 | //-----------控制light fun------//
29 | void pin() {
30 | String data = server.arg("pin");
31 | switch(data[0]) {
32 | case '1':
33 | controller(PIN_LIGHT1);break;
34 | case '2':
35 | controller(PIN_LIGHT2);break;
36 | case '3':
37 | controller(PIN_LIGHT3);break;
38 | case '4':
39 | controller(PIN_LIGHT4);break;
40 | }
41 | }
42 | void controller(int Pin){
43 | String json = "{\"mag\":\"OK\"}";
44 | if (server.arg("light") == "on") {
45 | // myservo.write(servoon);
46 | server.send(200, "text/plain", json);
47 |
48 | digitalWrite(Pin,HIGH);
49 | digitalWrite(LED,HIGH);
50 | delay(500);
51 | digitalWrite(LED,LOW);
52 | }
53 | else if (server.arg("light") == "off") {
54 | // myservo.write(servooff);
55 | server.send(200, "text/json", json);
56 |
57 | digitalWrite(Pin,LOW);
58 | digitalWrite(LED,HIGH);
59 | delay(500);
60 | digitalWrite(LED,LOW);
61 | }
62 | }
63 |
64 |
65 | //----------data API-----------//
66 | void data(){
67 | String json = "";
68 | int value = analogRead(PIN_DATA1);
69 | int data = map(value, 0, 1024, 0, 20000);
70 | json = String(data);
71 | server.send(200,"text/plain",json);
72 | }
73 |
74 | //--------返回html文件-----------//
75 | void handleRoot() {
76 | responseHtml(html1);
77 | }
78 | void dataRoot() {
79 | responseHtml(html2);
80 | }
81 |
82 | void responseHtml(String html){
83 | digitalWrite(LED,LOW);
84 | server.send(200, "text/html", html);
85 | digitalWrite(LED,HIGH);
86 | }
87 |
88 |
89 | //----------响应信息--------------//
90 | void handleNotFound() {
91 | // myservo.write(servooff);
92 | // digitalWrite(PIN_LIGHT,LOW);
93 | String message = "File Not Found\n\n";
94 | message += "URI: ";
95 | message += server.uri();
96 | message += "\nMethod: ";
97 | message += (server.method() == HTTP_GET) ? "GET" : "POST";
98 | message += "\nArguments: ";
99 | message += server.args();
100 | message += "\n";
101 | for (uint8_t i = 0; i < server.args(); i++) {
102 | message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
103 | }
104 | server.send(404, "text/plain", message);
105 | // digitalWrite(PIN_LIGHT,HIGH);
106 | }
107 |
108 | void setup(void) {
109 | //------------初始化------------//
110 |
111 | pinMode(PIN_LIGHT1, OUTPUT);
112 | pinMode(PIN_LIGHT2, OUTPUT);
113 | pinMode(PIN_LIGHT3, OUTPUT);
114 | pinMode(PIN_LIGHT4, OUTPUT);
115 |
116 | pinMode(PIN_DATA1, INPUT);
117 | pinMode(LED,OUTPUT);
118 | // myservo.attach(D4);
119 | // myservo.write(servoon);
120 | Serial.begin(115200);
121 |
122 | //-----------WIFI模式-------------
123 | WiFi.mode(WIFI_STA);
124 | // IPAddress ip(192, 168, 128, 1);
125 | // IPAddress ip2(192, 168, 128, 1);
126 | // IPAddress su(255, 255, 255, 0);
127 | // WiFi.softAPConfig(ip, ip2, su);
128 | WiFi.begin(ssid, password);
129 | // WiFi.softAP(ssid,password);
130 |
131 | Serial.println(WiFi.softAPIP());
132 | Serial.println("");
133 |
134 | //------------检查连接----------------
135 | while (WiFi.status() != WL_CONNECTED) {
136 | // break;
137 | delay(200);
138 | Serial.print(".");
139 | digitalWrite(LED, HIGH);
140 | delay(200);
141 | Serial.print(".");
142 | digitalWrite(LED, LOW);
143 | }
144 | //WIFI connection
145 | digitalWrite(LED, LOW);
146 | Serial.println("");
147 | Serial.print("Connected to ");
148 | Serial.println(ssid);
149 | Serial.print("IP address: ");
150 | Serial.println(WiFi.localIP());
151 | ///******************************************///
152 |
153 | if (MDNS.begin("esp8266")) {
154 | Serial.println("MDNS responder started");
155 | }
156 |
157 | //-------------路由------------------
158 | server.on("/", handleRoot); //主页
159 | server.on("/value", dataRoot); //曲线图
160 | server.on("/pin", HTTP_GET, pin); //控制
161 | server.on("/data", HTTP_GET, data);//模拟量数据
162 |
163 | server.on("/inline", []() {
164 | server.send(200, "text/plain", "this works as well");
165 | });
166 |
167 | //-------------响应-----------------
168 | server.onNotFound(handleNotFound);
169 |
170 | server.begin();
171 | Serial.println("HTTP server started");
172 | }
173 |
174 | void loop(void) {
175 | server.handleClient();
176 | MDNS.update();
177 | }
178 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ESP8266WebServer
2 | ======
3 | * ESP8266WebServer是基于ESP8266开发板的演示代码,平台是Arduino,根据ESP8266示例代码HelloServer改变,使用了HTML异步控制引脚,异步获取模拟量数据显示在居于Highcharts的图表上,供参考学习。
4 |
5 | ****
6 | ## 文件目录表
7 | HelloServer
8 | > HelloServer.ino
9 |
10 | HTML
11 | > asd.html (Button)
12 | > index.html (Highcharts)
13 |
14 | ## 环境搭建
15 | 1. 在 [Arduino官网](https://www.arduino.cc/en/Main/Software?setlang=cn&setlang=cn) 下载IDE软件
16 | 2. 安装后点击 **文件 -> 首选项** 在 **附加开发板管理器网站**中把 *http://arduino.esp8266.com/stable/package_esp8266com_index.json* 添加上。点击“好”
17 | 3. 在 **工具->开发板:????->开发板管理器** 中搜索 **esp8266**
18 | 4. 把包安装上就可以了
19 |
20 | ## 运行代码
21 | 1. 配置好ESP8266 for Arduino 的环境
22 | 2. 打开HelloServer.ino文件,进入Arduino IDE
23 | 3. 修改宏定义中的 SSID(wifi名)和 Password(WiFi密码)
24 | 4. 烧写进ESP8266,打开串口监视器,获得IP,使用IP访问网站(直接使用IP,不用http://)
--------------------------------------------------------------------------------