1 // sketch_12_04_server_wifi
6 char ssid[] = "Linda-and-Simon"; // your network SSID (name)
7 char pass[] = "myroomistidy"; // your network password
12 const int numPins = 5;
13 int pins[] = {3, 4, 5, 6, 7};
14 int pinState[] = {0, 0, 0, 0, 0};
20 while (!Serial){}; // Leonardo needs this
21 for (int i = 0; i < numPins; i++)
23 pinMode(pins[i], OUTPUT);
25 if (WiFi.begin(ssid, pass))
27 Serial.print(F("Point your Browser at: http://"));
28 Serial.println(WiFi.localIP());
33 Serial.println(F("Could not connect to network"));
36 Serial.println("started the server");
41 client = server.available();
42 if (client && client.connected())
53 Serial.print("Line1=");
54 Serial.println(line1);
56 if (! pageNameIs("/"))
58 Serial.println("Wrong Page");
62 Serial.println("Right Page");
67 client = server.available();
68 if (client && client.connected())
71 Serial.println("Sent Header");
73 Serial.println("Sent Body");
81 while (! client.available()) {};
87 client.println(F("HTTP/1.1 200 OK"));
88 client.println(F("Content-Type: text/html"));
94 client.println(F("<html><body>"));
96 client.println(F("<h1>Output Pins</h1>"));
97 client.println(F("<form method='GET'>"));
98 // setValuesFromParams();
100 // sendHTMLforPins();
101 client.println(F("<input type='submit' value='Update'/>"));
102 client.println(F("</form>"));
103 client.println(F("</body></html>"));
106 void sendAnalogReadings()
108 client.println(F("<h1>Analog Inputs</h1>"));
109 client.println(F("<table border='1'>"));
110 for (int i = 0; i < 5; i++)
112 int reading = analogRead(i);
113 client.print(F("<tr><td>A")); client.print(i);
114 client.print(F("</td><td>")); client.print((float) reading / 205.0);
115 client.println(F(" V</td></tr>"));
117 client.println("</table>");
120 void sendHTMLforPins()
122 for (int i = 0; i < numPins; i++)
124 client.print(F("<p>Pin "));
125 client.print(pins[i]);
126 client.print(F("<select name='"));
128 client.println(F("'>"));
129 client.print(F("<option value='0'"));
130 if (pinState[i] == 0)
132 client.print(F(" selected"));
134 client.println(F(">Off</option>"));
135 client.print(F("<option value='1'"));
136 if (pinState[i] == 1)
138 client.print(F(" selected"));
140 client.println(F(">On</option>"));
141 client.println(F("</select></p>"));
147 for (int i = 0; i < numPins; i++)
149 digitalWrite(pins[i], pinState[i]);
153 void setValuesFromParams()
155 for (int i = 0; i < numPins; i++)
157 pinState[i] = valueOfParam(i + '0');
163 readRequestLine(line1);
165 while (readRequestLine(buffer) > 1 && buffer[0] != '\n')
167 Serial.println("read another line");
169 Serial.println("Finished Reading Request");
172 int readRequestLine(char *line)
176 while (ch != '\n' && i < 100 && client.available())
178 if (client.available())
186 Serial.print("Header Line:");
188 Serial.print(" len=");
190 Serial.print(" ch0=");
191 Serial.println((int)line[0]);
196 boolean pageNameIs(char* name)
198 // page name starts at char pos 4
202 while (ch != ' ' && ch != '\n' && ch != '?')
204 if (name[i-4] != line1[i])
214 int valueOfParam(char param)
216 for (int i = 0; i < strlen(line1); i++)
218 if (line1[i] == param && line1[i+1] == '=')
220 return (line1[i+2] - '0');