/*
* Web Server for receiving values for 7dgit-LED shiftout through three registers
* Sparkfun WiFly shield and library necessary
* used call https://ip-address/&123 with browser or wget
* character 7,8,9 on URL Call is used
*/
#include "WiFly.h"
#include "Credentials.h"
const int CLOCK_PIN = 2; //common clock for shiftout
const int DATA_PIN = 3; //common data for shiftout
const int LATCH_PIN_1 = 4; //Latch for Digit 1 for shiftout
const int LATCH_PIN_2 = 5; //Latch for Digit 2 for shiftout
const int LATCH_PIN_3 = 6; //Latch for Digit 3 for shiftout
Server server(80);
String readString = String(100);
String shstring1; // shortened string for digit1
String shstring2; // shortened string for digit2
String shstring3; // shortened string for digit3
void setup() {
WiFly.begin();
if (!WiFly.join(ssid, passphrase)) {
while (1) {
// Hang on failure.
}
}
Serial.begin(9600);
Serial.print("IP: ");
Serial.println(WiFly.ip());
pinMode(LATCH_PIN_1, OUTPUT);
pinMode(LATCH_PIN_2, OUTPUT);
pinMode(LATCH_PIN_3, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
server.begin();
}
void loop() {
Client client = server.available();
if (client) {
// an http request ends with a blank line
boolean current_line_is_blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
readString = readString + c;
}
if (c == '\n' && current_line_is_blank) {
shstring1 = readString.substring(6,7);
shstring2 = readString.substring(7,8);
shstring3 = readString.substring(8,9);
Serial.println("this was the recognized number" );
Serial.println("digit 1=");
Serial.println(shstring1);
Serial.println("digit 2=");
Serial.println(shstring2);
Serial.println("digit 3=");
Serial.println(shstring3);
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("received_via_url=");
client.print("digit 1=");
client.print(shstring1);
client.print("digit 2=");
client.print(shstring2);
client.print("digit 3=");
client.print(shstring3);
//controlling of shiftout for three digits
if (shstring1.equals("0")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00111111);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("1")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00000110);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("2")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01011011);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("3")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01001111);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("4")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01100110);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("5")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01101101);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("6")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01111101);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("7")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00000111);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("8")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01111111);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring1.equals("9")){digitalWrite(LATCH_PIN_1, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01101111);digitalWrite(LATCH_PIN_1, HIGH);}
if (shstring2.equals("0")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00111111);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("1")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00000110);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("2")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01011011);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("3")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01001111);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("4")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01100110);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("5")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01101101);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("6")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01111101);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("7")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00000111);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("8")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01111111);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring2.equals("9")){digitalWrite(LATCH_PIN_2, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01101111);digitalWrite(LATCH_PIN_2, HIGH);}
if (shstring3.equals("0")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00111111);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("1")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00000110);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("2")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01011011);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("3")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01001111);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("4")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01100110);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("5")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01101101);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("6")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01111101);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("7")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B00000111);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("8")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01111111);digitalWrite(LATCH_PIN_3, HIGH);}
if (shstring3.equals("9")){digitalWrite(LATCH_PIN_3, LOW);shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, B01101111);digitalWrite(LATCH_PIN_3, HIGH);}
break;
}
if (c == '\n') {
// we're starting a new line
current_line_is_blank = true;
} else if (c != '\r') {
// we've gotten a character on the current line
current_line_is_blank = false;
}
}
}
// give the web browser time to receive the data
readString="";
delay(100);
client.stop();
}
}