1 // sketch_12_04_server_wifi
6 char ssid[] = "My network name"; // your network SSID (name)
7 char pass[] = "mypassword"; // your network password
12 const int numPins = 5;
13 int pins[] = {3, 8, 5, 6, 9};
14 int pinState[] = {0, 0, 0, 0, 0};
21 while (!Serial){}; // Leonardo needs this
22 for (int i = 0; i < numPins; i++)
24 pinMode(pins[i], OUTPUT);
26 if (WiFi.begin(ssid, pass))
28 Serial.print(F("Point your Browser at: http://"));
29 Serial.println(WiFi.localIP());
33 Serial.println(F("Could not connect to network"));
40 client = server.available();
43 if (client.connected())
46 if (! pageNameIs("/"))
51 client.println(F("HTTP/1.1 200 OK\nContent-Type: text/html\n"));
61 client.println(F("<html><body>"));
63 client.println(F("<h1>Output Pins</h1>\n<form method='GET'>"));
64 setValuesFromParams();
67 client.println(F("<input type='submit' value='Update'/>\n</form>\n</body></html>"));
70 void sendAnalogReadings()
72 client.println(F("<h1>Analog Inputs</h1>\n<table border='1'>"));
73 for (int i = 0; i < 5; i++)
75 int reading = analogRead(i);
76 client.print(F("<tr><td>A")); client.print(i);
77 client.print(F("</td><td>")); client.print((float) reading / 205.0);
78 client.println(F(" V</td></tr>"));
80 client.println("</table>");
83 void sendHTMLforPins()
85 for (int i = 0; i < numPins; i++)
87 client.print(F("<p>Pin "));
88 client.print(pins[i]);
89 client.print(F("<select name='"));
91 client.println(F("'>\n<option value='0'"));
94 client.print(F(" selected"));
96 client.println(F(">Off</option>\n<option value='1'"));
99 client.print(F(" selected"));
101 client.println(F(">On</option>\n</select></p>"));
107 for (int i = 0; i < numPins; i++)
109 digitalWrite(pins[i], pinState[i]);
113 void setValuesFromParams()
115 for (int i = 0; i < numPins; i++)
117 pinState[i] = valueOfParam(i + '0');
123 readRequestLine(line1);
124 while (readRequestLine(buffer) > 1 && buffer[0] != '\n') {}
127 int readRequestLine(char *line)
131 while (ch != '\n' && i < 100 && client.available())
133 if (client.available())
144 boolean pageNameIs(char* name)
146 // page name starts at char pos 4
150 while (ch != ' ' && ch != '\n' && ch != '?')
152 if (name[i-4] != line1[i])
162 int valueOfParam(char param)
164 for (int i = 0; i < strlen(line1); i++)
166 if (line1[i] == param && line1[i+1] == '=')
168 return (line1[i+2] - '0');