Webserver_nodemcu_html_form_button_01
Webserver_nodemcu_html_form_button_01
include <ESP8266WiFi.h>
const char* ssid = "android1234";//자신의 스마트폰 핫스팟 ID 입력
const char* password = "dddddddddd";//자신의 스마트폰 핫스팟 비밀번호 입력
int ledPin = 2; //
WiFiServer server(80);
String m;
boolean buTton = false;
void setup() {
Serial.begin(115200);
delay(10);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");
// 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");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
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');
if( request.substring(5,16) != "favicon.ico") {//favicon.ico request 배제
Serial.println(request);
int l = request.length();
Serial.print("String.length(request)=");
Serial.println(l);
for( int i = 0; i<l-9; i++) {
if( request.substring(i,i+9) == "?command=" && buTton == true) {
m = request.substring(i+9,l-9);
Serial.println(m);
}
}// for loop ends
client.flush();
}//if( request.substring
if( request.substring(5,16) != "favicon.ico") {//favicon.ico request 배제
// Match the request
// on OFF BLINK 확인
if (request.indexOf(on H") != -1) {
digitalWrite(ledPin, LOW);
}
if (request.indexOf("OFF H") != -1) {
digitalWrite(ledPin, HIGH);
}
if (request.indexOf("BLINK H") != -1) {
for( int i = 0; i<19; i++) {
digitalWrite(ledPin, LOW);
delay(50);
digitalWrite(ledPin, HIGH);
delay(50);
}
}
// request = "";
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
//배경 색 문자 색 사이즈 HTML CSS 설정
client.println("<style>");
client.println("body {");
client.println("background-color: lightblue;");
client.println("}");
client.println("p {");
client.println("color:red;");
client.println("font-size:250%;");
client.println("}");
//입력창 배경 색 문자 색 사이즈 HTML CSS 설정
client.println("input[type=text] {font-size:200%;border:7px solid black; border-radius:9dx;}");
client.println("input[type=text]:hover{background:aliceblue;}");
client.println("input[type=text]:focus{color:red; font-size:250%;}");
//버튼 HTML CSS 설정
client.println(".button {");
client.println("background-color: green;");
client.println("border: none;");
client.println("color: white;");
client.println("padding: 15px 32px;");
client.println("text-align: center;");
client.println("text-decoration: none;");
client.println("display: inline-block;");
client.println("font-size: 30px;");
client.println("margin: 10px 15px;");
client.println("cursor: pointer;");
client.println("}");
client.println("</style>");
client.println("<title>Page Title</title>");
client.println("<h2> Type one of on OFF BLINK</h2>");
client.println("</head>");
client.println("<body>");
client.print("<form method='get'>");
client.print("<input type='text' name='command'>");
client.print("<br><br>");
client.print("<input type='button' value='Click me' onclick='msg()'>");
client.print("</form>");
client.println("<p>");
client.println("Confirm Input Data!");
client.println("<br>");
client.println(m);
client.println("</p>");
client.print("<script>");
client.print("function msg() {");
client.print("alert('Please type just numbers 0-9 & alphabets within 20 characters!');");
client.print("}");
client.print("</script>");
client.println("<br>");
client.println("<a href=\"/on\"\" class='button'>ON </button></a>");
client.println("<a href=\"/OFF\"\" class='button'>OFF </button></a>");
client.println("<a href=\"/BLINK\"\" class='button'>BLINK </button></a>");
buTton = true;
client.println("</body>");
client.println("</html>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
} //favicon.ico배제 if 문 닫기 괄호
}//프로그램 끝
'전기차 제작' 카테고리의 다른 글
온습도, 미세먼지 측정 및 ESP8266 NodeMCU WiFi 코딩 (0) | 2012.01.01 |
---|---|
아날로그 시계+초시계+온도계 (0) | 2011.12.27 |
아날로그 시계 내부 작은 초시계 HTML+SVG (0) | 2011.12.27 |
form 태그 이용 input 박스 입력 방식 LED 제어 (0) | 2011.12.21 |
웹서버 BLINKING 제어 (0) | 2011.12.07 |