├── 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 |
19 | 20 | 21 |
22 |
23 | 24 | 25 |
26 |
27 | 28 | 29 |
30 |
31 | 32 | 33 |
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://) --------------------------------------------------------------------------------