dear all, i made simple interface HTML to control light via light module form X10 ( on / off / dim / bright ) and for fan ( on /off ) but i would like to make it in PHP page with mySQL .
i use arduino uno with Ethernet shield and i want the ardunio take the command form the server XAMPP and to be as client .
my code :
/*
Web Server with X10 Firecracker control
No need for a app, or a program on the PC, this simple arduino program allows web based html button control of the arduino from any browser, on a PC, IPAD, IPOD, smart phone.
* Ethernet shield attached to pins 10, 11, 12, 13
* x10 Firecracker attaches to pins 8 and 9
*/
#include <SPI.h>
#include <Ethernet.h>
#include <X10Firecracker.h>
#include <WString.h>
#define RTS_PIN 8 // RTS line for C17A - DB9 pin 7
#define DTR_PIN 9 // DTR line for C17A - DB9 pin 4
#define BIT_DELAY 1 // mS delay between bits (1 mS OK)
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,178);
String s = String(30); //string for fetching data from address
String cmd = "/X" ; //X is an example of the command that will come after the ethernet address in the GET...
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Pgm started ");
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
X10.init(RTS_PIN, DTR_PIN, BIT_DELAY);
}
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
boolean DoPage=true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (s.length() < 7) { s.concat(c); } // build up a short string to parse
if(s.substring(0,3) == "GET" & DoPage)
{ // check for the GET from the web page
cmd=s.substring(4,6); // get the 2 letters in the string out and call this the CMD, /A, or /B or /H etc, these come in after the GET
// Serial.println("CMD=");
//Serial.println(cmd);
// Got a GET so, compare the received command to the specific command and then do something
if (cmd == "/A" && DoPage) {
Serial.println(F("Turn on the Light"));
X10.sendCmd( hcA, 1, cmdOn );
DoPage = false;
}
if (cmd == "/B" && DoPage) {
Serial.println(F(" Light Dim"));
X10.sendCmd( hcA, 1, cmdDim );
DoPage = false;
}
if (cmd == "/H" && DoPage) {
Serial.println(F(" Light Bright"));
X10.sendCmd( hcA, 1, cmdBright );
DoPage = false;
}
if (cmd == "/C" && DoPage) {
Serial.println(F("Turn Off the light"));
X10.sendCmd( hcA, 1, cmdOff );
DoPage = false;
}
if (cmd == "/M" && DoPage) {
Serial.println(F("Turn On the FAN"));
X10.sendCmd( hcA, 2, cmdOn );
DoPage = false;
}
if (cmd == "/O" && DoPage) {
Serial.println(F("Turn Off the FAN"));
X10.sendCmd( hcA, 2, cmdOff );
DoPage = false;
}
}
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/html"));
client.println(F("Connnection: close"));
client.println();
client.println(F("<!DOCTYPE HTML>"));
client.println(F("<html>"));
client.println(F("<head>"));
client.println(F("<meta content='text/html; charset=ISO-8859-1'http-equiv='content-type'>"));
client.println(F("<title>Welcome to Alwafi Arduino Program"));
client.println(F("</title>"));
client.println(F("</head>"));
// the next line sets the background color to something nice like blue
client.println(F("<body style='background-color: rgb(0, 0, 153); color: rgb(255, 255, 0);'alink='#cc6600' link='#cc0000' vlink='#993300'>"));
// load in a background .jpg for the web page.
client.println(F("<BODY BACKGROUND='http://www.aou.edu.kw/images/hand2.JPG' style='width: 481px; height: 690px;'></span>
"));
// set up some HTML that has buttons with specific actions that link back to the arduino at the address of the arduino and have a specific string
client.println(F("<FORM METHOD='LINK' ACTION='http://192.168.1.178/A\r'><INPUT TYPE='submit' VALUE='Turn on the Light'></FORM> "));
client.println(F("<FORM METHOD='LINK' ACTION='http://192.168.1.178/C\r'><INPUT TYPE='submit' VALUE='Turn Off the light'></FORM> "));
client.println(F("<FORM METHOD='LINK' ACTION='http://192.168.1.178/B\r'><INPUT TYPE='submit' VALUE='dim light'></FORM> "));
client.println(F("<FORM METHOD='LINK' ACTION='http://192.168.1.178/H\r'><INPUT TYPE='submit' VALUE='Bright the light'></FORM> "));
client.println(F("<FORM METHOD='LINK' ACTION='http://192.168.1.178/M\r'><INPUT TYPE='submit' VALUE='Turn On the FAN'></FORM> "));
client.println(F("<FORM METHOD='LINK' ACTION='http://192.168.1.178/O\r'><INPUT TYPE='submit' VALUE='Turn Off the FAN'></FORM> "));
client.println("</html>");
// Clear out the received string
s="";
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
client.stop();
Serial.println("client disonnected");
}
} // end