Created
March 10, 2016 06:35
-
-
Save lifez/62de4e73b3ef08dfd974 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <ESP8266WiFi.h> | |
| int ledPin =16; | |
| const char* ssid = "RLIS"; | |
| const char* password = "boonchanawifi"; | |
| // Create an instance of the server | |
| // specify the port to listen on as an argument | |
| WiFiServer server(80); | |
| void setup() { | |
| Serial.begin(115200); | |
| delay(10); | |
| // prepare GPIO | |
| pinMode(ledPin, OUTPUT); | |
| digitalWrite(ledPin, 0); | |
| // 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.println(WiFi.localIP()); | |
| } | |
| 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 req = client.readStringUntil('\r'); | |
| Serial.println(req); | |
| client.flush(); | |
| // Match the request | |
| int val; | |
| if (req.indexOf("/gpio/0") != -1) | |
| val = 0; | |
| else if (req.indexOf("/gpio/1") != -1) | |
| val = 1; | |
| else { | |
| Serial.println("invalid request"); | |
| client.stop(); | |
| return; | |
| } | |
| // Set GPIO16 according to the request | |
| digitalWrite(ledPin, val); | |
| client.flush(); | |
| // Prepare the response | |
| String web = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"; | |
| web += "<!DOCTYPE HTML>\r\n"; | |
| web += "<html>\r\n"; | |
| web += "<body>\r\n"; | |
| web += "<h1>LED Status</h1>\r\n"; | |
| web += "<p>\r\n"; | |
| if(val==1){ | |
| web += "<button onclick=\'location.href=\"gpio/0\"\'>LED On</button>\r\n"; | |
| }else{ | |
| web += "<button onclick='location.href=\"gpio/1\"'>LED Off</button>\r\n"; | |
| } | |
| web += "</p>\r\n"; | |
| web += "</body>\r\n"; | |
| web += "</html>\r\n"; | |
| // Send the response to the client | |
| client.print(web); | |
| delay(1); | |
| Serial.println("Client disonnected"); | |
| // The client will actually be disconnected | |
| // when the function returns and 'client' object is detroyed | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment