From ebe585bcca728451984ded6e219a250c6a5e96e4 Mon Sep 17 00:00:00 2001 From: hhCandy Date: Mon, 28 Jan 2019 23:47:48 +0800 Subject: [PATCH] basic general http --- mainCode/data/css/bootstrap-theme.min.css.gz | Bin 2796 -> 0 bytes mainCode/data/css/bootstrap.min.css.gz | Bin 19371 -> 0 bytes mainCode/data/data.json | 1 + mainCode/data/index.html | 78 ++----------- mainCode/data/js/bootstrap.js.gz | Bin 13591 -> 0 bytes mainCode/data/js/bootstrap.min.js.gz | Bin 9537 -> 0 bytes mainCode/mainCode.ino | 112 +++++++++++++------ 7 files changed, 85 insertions(+), 106 deletions(-) delete mode 100644 mainCode/data/css/bootstrap-theme.min.css.gz delete mode 100644 mainCode/data/css/bootstrap.min.css.gz create mode 100644 mainCode/data/data.json delete mode 100644 mainCode/data/js/bootstrap.js.gz delete mode 100644 mainCode/data/js/bootstrap.min.js.gz diff --git a/mainCode/data/css/bootstrap-theme.min.css.gz b/mainCode/data/css/bootstrap-theme.min.css.gz deleted file mode 100644 index eecc2ea6b2ce530666385004cadf25d452a65708..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2796 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 - - ESP8266 - - - - -
- -
-

欢迎使用WiFiduino

-
-

点击下面按钮

-

可控制蓝色LED灯

-
- -
-
- -
-
- - - - - +

Welcome to wIot!

+
+

Control url:

+

/ctl?p=/*Pin Code*/&a=/*Action: high or low*/

+

e.g. /ctl?p=2&a=low Means to open the led on the board.

+
+

Data Get:

+

/data

+

Click Here to see!

\ No newline at end of file diff --git a/mainCode/data/js/bootstrap.js.gz b/mainCode/data/js/bootstrap.js.gz deleted file mode 100644 index b2977bc35c9e502ec8ec7c80671108fac7b15e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13591 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 diff --git a/mainCode/data/js/bootstrap.min.js.gz b/mainCode/data/js/bootstrap.min.js.gz deleted file mode 100644 index 169ee94d1749f76c9f2927404eedd22a0707d470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9537 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 fkyQ ESP8266WebServer server ( 80 ); -String ssid = "TOTOLINK_3be124"; //你的wifi热点名称 -String password = "13371035727"; //你的wifi热点密码 - -//String ssid = "236-iot"; //你的wifi热点名称 -//String password = "236236236"; //你的wifi热点密码 +String ssid = "yimian-iot"; //你的wifi热点名称 +String password = "1234567890."; //你的wifi热点密码 String getContentType(String filename){ if(server.hasArg("download")) return "application/octet-stream"; @@ -25,8 +22,33 @@ String getContentType(String filename){ else if(filename.endsWith(".gz")) return "application/x-gzip"; return "text/plain"; } -/* NotFound处理 - */ + +/* wifi 连接 */ +void wifiCnct() { + int connectCount = 0; + WiFi.begin ( ssid.c_str(), password.c_str() ); + while ( WiFi.status() != WL_CONNECTED ) { + digitalWrite(2, HIGH); + delay ( 1000 ); + Serial.print ( "." ); + if(connectCount > 30) { + Serial.println( "Connect fail!" ); + break; + } + connectCount += 1; + } + if(WiFi.status() == WL_CONNECTED) { + Serial.println ( "" ); + Serial.print ( "Connected to " ); + Serial.println ( ssid ); + Serial.print ( "IP address: " ); + Serial.println ( WiFi.localIP() ); + connectCount = 0; + digitalWrite(2, LOW); + } +} + +/* NotFound处理 */ void handleNotFound() { String path = server.uri(); Serial.print("load url:"); @@ -54,6 +76,8 @@ void handleNotFound() { } server.send ( 404, "text/plain", message ); } + +/* index提示页面 */ void handleMain() { Serial.print("handleMain"); File file = SPIFFS.open("/index.html", "r"); @@ -61,45 +85,58 @@ void handleMain() { file.close(); return; } + +/* data提取url */ +void handleData() { + Serial.print("handleData"); + + char cmd[135]; + sprintf(cmd,"{\"D0\":\"%d\",\"D1\":\"%d\",\"D2\":\"%d\",\"D3\":\"%d\",\"D4\":\"%d\",\"D5\":\"%d\",\"D6\":\"%d\",\"D7\":\"%d\",\"D8\":\"%d\",\"D9\":\"%d\",\"D10\":\"%d\",\"D11\":\"%d\",\"D12\":\"%d\",\"D13\":\"%d\",\"A0\":\"%f\"}",digitalRead(D0),digitalRead(D1),digitalRead(D2),digitalRead(D3),digitalRead(D4),digitalRead(D5),digitalRead(D6),digitalRead(D7),digitalRead(D8),digitalRead(D9),digitalRead(D10),digitalRead(D11),digitalRead(D12),digitalRead(D13),analogRead(A0)); + + File file = SPIFFS.open("/data.json","w+"); + if (!file) { + Serial.println("There was an error opening the file for writing"); + return; + } + if (file.print(cmd)) { + Serial.println("File was written"); + } else { + Serial.println("File write failed"); + } + file.close(); + file = SPIFFS.open("/data.json","r"); + size_t sent = server.streamFile(file, "application/json"); + file.close(); + return; +} + +/* execute url */ void handlePin() { - if(server.hasArg("a")) { - String action = server.arg("a"); - if(action == "on") { //a=on - digitalWrite(2, LOW); //点亮8266上的蓝色led - server.send ( 200, "text/html", "Pin 2 has turn on"); return; //返回数据 - } else if(action == "off") { // a=off - digitalWrite(2, HIGH); //熄灭板载led - server.send ( 200, "text/html", "Pin 2 has turn off"); return; + if(server.hasArg("p")) { + String pin = server.arg("p"); + if(server.hasArg("a")) { + String action = server.arg("a"); + if(action == "high") { //a=on + digitalWrite(atoi(pin.c_str()), HIGH); //抬高电平 + server.send ( 200, "application/json", "{\"code\":\"2\",\"state\":\"HIGH\"}"); return; //返回数据 + } else if(action == "low") { // a=off + digitalWrite(atoi(pin.c_str()), LOW); //拉低电平 + server.send ( 200, "application/json", "{\"code\":\"1\",\"state\":\"LOW\"}"); return; + } + server.send ( 200, "application/json", "{\"code\":\"-1\",\"state\":\"UNKNOW ACTION!\"}"); return; } - server.send ( 200, "text/html", "unknown action"); return; + server.send ( 200, "application/json", "{\"code\":\"-2\",\"state\":\"ACTION NO FOUND!\"}"); } - server.send ( 200, "text/html", "action no found"); } + void setup() { pinMode(2, OUTPUT); Serial.begin ( 115200 ); SPIFFS.begin(); - int connectCount = 0; - WiFi.begin ( ssid.c_str(), password.c_str() ); - while ( WiFi.status() != WL_CONNECTED ) { - delay ( 1000 ); - Serial.print ( "." ); - if(connectCount > 30) { - Serial.println( "Connect fail!" ); - break; - } - connectCount += 1; - } - if(WiFi.status() == WL_CONNECTED) { - Serial.println ( "" ); - Serial.print ( "Connected to " ); - Serial.println ( ssid ); - Serial.print ( "IP address: " ); - Serial.println ( WiFi.localIP() ); - connectCount = 0; - } + wifiCnct(); server.on ("/", handleMain); - server.on ("/pin", HTTP_GET, handlePin); + server.on ("/ctl", handlePin); + server.on ("/data", HTTP_GET, handleData); server.onNotFound ( handleNotFound ); server.begin(); Serial.println ( "HTTP server started" ); @@ -107,4 +144,5 @@ void setup() { void loop() { server.handleClient(); + //if( WiFi.status() != WL_CONNECTED) wifiCnct(); }