Κώδικας:
//*******************************
#include <SPI.h>
#include <Ethernet.h>
#include <avr/pgmspace.h>
////////////////////////////////////////////////////////////////////////////////////////////////////////
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 111 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(8888); // server port
////////////////////////////////////////////////////////////////////////////////////////////////////////
#define A_pin 2
#define B_pin 3
#define C_pin 4
#define D_pin 5
#define E_pin 6
#define F_pin 7
#define Y_pin 8
#define Z_pin 9
/////////////////////////////////////////////////////////////////////////////////////////////////////////
int sensorPin = A0;
int sensorValue = 0;
int sensorPin1 = A1;
int sensorValue1 = 1;
int sensorPin2 = A2;
int sensorValue2 = 2;
int sensorPin3 = A3;
int sensorValue3 = 3;
int sensorPin4 = A4;
int sensorValue4 = 4;
int sensorPin5 = A5;
int sensorValue5 = 5;
float volt = 0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
char link[]= ""; // link data
String readString = String(70); // string for fetching data from address
boolean Ledstatus[8];
//var globale, pt afisarea etichetelor(cap de tabel)
char font_gray[] ="<font color="#ce0000" size="5">";//kokkino
char font_green[]="<font color="#7aa200" size="5">";//prasino
prog_char string0[] PROGMEM = "<font color="gray" size="6"><button type='submit' name='A' value='1'>1<br><button type='submit' name='A' value='0'>0</td>";
prog_char string1[] PROGMEM = "<font color="gray" size="6"><button type='submit' name='B' value='1'>1<br><button type='submit' name='B' value='0'>0</td>";
prog_char string2[] PROGMEM = "<font color="gray" size="6"><button type='submit' name='C' value='1'>1<br><button type='submit' name='C' value='0'>0</td>";
prog_char string3[] PROGMEM = "<font color="gray" size="6"><button type='submit' name='D' value='1'>1<br><button type='submit' name='D' value='0'>0</td>";
prog_char string4[] PROGMEM = "<font color="gray" size="6"><button type='submit' name='E' value='1'>1<br><button type='submit' name='E' value='0'>0</td>";
prog_char string5[] PROGMEM = "<font color="gray" size="6"><button type='submit' name='F' value='1'>1<br><button type='submit' name='F' value='0'>0</td>";
prog_char string6[] PROGMEM = "<font color="gray" size="6"><button type='submit' name='Y' value='1'>1<br><button type='submit' name='Y' value='0'>0</td>";
prog_char string7[] PROGMEM = "<font color="gray" size="6"><button type='submit' name='Z' value='1'>1<br><button type='submit' name='Z' value='0'>0</td>";
PROGMEM const char *string_table[] = // change "string_table" name to suit
{ string0,
string1,
string2,
string3,
string4,
string5,
string6,
string7};
char buffer[140]; //lungimea max a unui string din PROGMEM +1
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
// Serial.begin(57600); //enable serial datada print
Ethernet.begin(mac, ip, gateway, subnet); //start Ethernet
pinMode(A_pin, OUTPUT); //Set pin 4 to output
pinMode(B_pin, OUTPUT);
pinMode(C_pin, OUTPUT);
pinMode(D_pin, OUTPUT);
pinMode(E_pin, OUTPUT);
pinMode(F_pin, OUTPUT);
pinMode(Y_pin, OUTPUT);
pinMode(Z_pin, OUTPUT);
Serial.print("Started server");
sensorValue = analogRead(sensorPin);
Serial.println("");
Serial.println("");
Serial.println (sensorValue);
Serial.println("");
Serial.println("");
sensorValue = analogRead(sensorPin1);
Serial.println("");
Serial.println("");
Serial.println (sensorValue);
Serial.println("");
Serial.println("");
sensorValue = analogRead(sensorPin2);
Serial.println("");
Serial.println("");
Serial.println (sensorValue);
Serial.println("");
Serial.println("");
sensorValue = analogRead(sensorPin3);
Serial.println("");
Serial.println("");
Serial.println (sensorValue);
Serial.println("");
Serial.println("");
sensorValue = analogRead(sensorPin4);
Serial.println("");
Serial.println("");
Serial.println (sensorValue);
Serial.println("");
Serial.println("");
sensorValue = analogRead(sensorPin5);
Serial.println("");
Serial.println("");
Serial.println (sensorValue);
Serial.println("");
Serial.println("");
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
void loop(){
volt = (analogRead(sensorPin5) * 5.10 * 1000)/1024;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
EthernetClient client = server.available(); // Create a client connection
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 70) { //read char by char HTTP request
readString.concat(c); } //store characters to string
Serial.print(c); //output chars to serial port for debugging
if (c == '\n') { //if HTTP request has ended
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Serial.println("");
int Ae = readString.indexOf("A=");
int Be = readString.indexOf("B=");
int Ce = readString.indexOf("C=");
int De = readString.indexOf("D=");
int Ee = readString.indexOf("E=");
int Fe = readString.indexOf("F=");
int Ye = readString.indexOf("Y=");
int Ze = readString.indexOf("Z=");
//lets check if LED should be lighted
if (readString.substring(Ae,(Ae+3)) == "A=1") { //led has to be turned ON
digitalWrite(A_pin, HIGH); // set the LED on
//Serial.println("A_pin paa");
Ledstatus[0] = true;
}
if (readString.substring(Ae,(Ae+3))== "A=0") { //led has to be turned OFF
digitalWrite(A_pin, LOW); // set the LED OFF
//Serial.println("A_pin av");
Ledstatus[0] = false;
}
if (readString.substring(Be,(Be+3)) == "B=1") {
digitalWrite(B_pin, HIGH);
Ledstatus[1] = true;
}
if (readString.substring(Be,(Be+3)) == "B=0") {
digitalWrite(B_pin, LOW);
Ledstatus[1] = false;
}
if (readString.substring(Ce,(Ce+3)) == "C=0") {
digitalWrite(C_pin, LOW);
Ledstatus[2]=false;
}
if (readString.substring(Ce,(Ce+3)) == "C=1") {
digitalWrite(C_pin, HIGH);
Ledstatus[2]=true;
}
if (readString.substring(De,(De+3)) == "D=0") {
digitalWrite(D_pin, LOW);
Ledstatus[3]=false;
}
if (readString.substring(De,(De+3)) == "D=1") {
digitalWrite(D_pin, HIGH);
Ledstatus[3]=true;
}
if (readString.substring(Ee,(Ee+3)) == "E=0") {
digitalWrite(E_pin, LOW);
Ledstatus[4]=false;
}
if (readString.substring(Ee,(Ee+3)) == "E=1") {
digitalWrite(E_pin, HIGH);
Ledstatus[4]=true;
}
if (readString.substring(Fe,(Fe+3)) == "F=0") {
digitalWrite(F_pin, LOW);
Ledstatus[5]=false;
}
if (readString.substring(Fe,(Fe+3)) == "F=1") {
digitalWrite(F_pin, HIGH);
Ledstatus[5]=true;
}
if (readString.substring(Ye,(Ye+3)) == "Y=0") {
digitalWrite(Y_pin, LOW);
Ledstatus[6]=false;
}
if (readString.substring(Ye,(Ye+3)) == "Y=1") {
digitalWrite(Y_pin, HIGH);
Ledstatus[6]=true;
}
if (readString.substring(Ze,(Ze+3)) == "Z=0") {
digitalWrite(Z_pin, LOW);
Ledstatus[7]=false;
}
if (readString.substring(Ze,(Ze+3)) == "Z=1") {
digitalWrite(Z_pin, HIGH);
Ledstatus[7]=true;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
client.println("HTTP/1.1 200 OK"); // now output HTML data starting with standart header
client.println("Content-Type: text/html");
client.println();
client.println("<META HTTP-EQUIV=REFRESH CONTENT=2 URL=>");
client.print ("<body style=background-color:#575757>"); //set background to white
// HTML Code
client.println("<br />");
client.println("<font color="#dedede"><center><p><h1>***A R D U I N O-:::::::-T A K H S***</font></h1></p><center><hr><br />");//send first heading
client.println("<font color="#1b174d"><h1>CONTROL+STATUS</font></h1>");//send first heading
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//table
client.println("<form><table border=4><tr>");
for(int i=0; i<8; i++){
client.println("<td>");
if(Ledstatus[i]) client.println(font_green);
else client.println(font_gray);
client.println("<center><b>LED<h3>");
client.println(i+1);
client.println("</b></font><br />");
strcpy_P(buffer, (char*)pgm_read_word(&(string_table[i])));
client.println(buffer);
if(i==3) client.println("</tr><tr>"); //new row
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
client.println("</tr></table></form> ");
client.println("<font color="#1b174d"><h1>SENSOR-STATUS</font></h1>");//s
client.print("<font color="#ffff00"><h3>A 0: ");
sensorValue = analogRead(sensorPin);
client.print(sensorValue);
Serial.print(sensorValue);
client.print("<br>A 1: ");
sensorValue = analogRead(sensorPin1);
client.print(sensorValue);
Serial.print(sensorValue);
client.print("<br>A 2: ");
sensorValue = analogRead(sensorPin2);
client.print(sensorValue);
Serial.print(sensorValue);
client.print("<br>A 3: ");
sensorValue = analogRead(sensorPin3);
client.print(sensorValue);
Serial.print(sensorValue);
client.print("<br>A 4: ");
sensorValue = analogRead(sensorPin4);
client.print(sensorValue);
Serial.print(sensorValue);
client.print("<br>voltmeter : ");
client.print((int)volt);
client.println(" v");
client.println("</body></html>");
client.stop();//stopping client
//Serial.println("Stopper klient");
//clearing string for next read
readString="";
}}}}}