Om detta har jag ingen koll alls.
Jag har hittat lite kod som jag stulit och sedan ändrat för att passa mig.
Det fungerar delvis.
Jag kan tända och släcka mina lampor ett litet tag, sedan hänger sig hemsidan och jag måste starta om min Arduino.
Det finns ingen logik att jag måste trycka en viss kombination utan det inträffar lite som det själv vill.
Någon som kan hjälpa mig på vägen?
Sedan har jag ett problem som jag ej löst än och skulle behöva lite kod till.
Hur kan jag ändra färgen på knappen jag tryckt på?
Ett annat litet problem. Om jag har en ingång på Arduinon, hur kan jag få detta att visas på hemsidan utan att själv behöva uppdatera den i webläsaren.
Koden som jag har just nu:
Kod: Markera allt
//zoomkat 8-04-12
//simple button GET server code to control arduino pins
//for use with IDE 1.0 or later
//open serial monitor to see what the arduino receives
//use ' instead of " in the html
//address will look like http://192.168.0.239:80 when submited
//for use with ENC28J60 based ethernet shields
#include <SPI.h>
#include <UIPEthernet.h>
// NYI
#include <EEPROM.h> // Spara utgångarnas värde i minnet. För att kunna återta rätt läge vid strömavbrott
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // physical mac address
byte ip[] = {192, 168, 0, 239}; // ip in lan
byte gateway[] = {192, 168, 0, 253}; // internet access via router
byte subnet[] = {255, 255, 255, 0}; // subnet mask
byte port = 80; // Portatt lyssna på
EthernetServer server(port); // Dra igång servern på rätt port
String readString; // Håller inkommande sträng
//////////////////////
void setup()
{
// Vilka pinnar går till reläerna
pinMode(5, OUTPUT); //pin selected to control
pinMode(6, OUTPUT); //pin selected to control
pinMode(7, OUTPUT); //pin selected to control
pinMode(8, OUTPUT); //pin selected to control
// Se till att alla utgångarna är av
digitalWrite(5, HIGH); // set pin 5 low
digitalWrite(6, HIGH); // set pin 6 low
digitalWrite(7, HIGH); // set pin 7 low
digitalWrite(8, HIGH); // set pin 8 low
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
//enable serial data print
Serial.begin(9600);
Serial.println("server multi pin button test 1.1"); // so I can keep track of what is loaded
// Skriver ut enhetens IP. Användbart vid DHCP
Serial.print("My IP address: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
// print the value of each byte of the IP address:
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
}
}
void loop()
{
// Create a client connection
EthernetClient client = server.available();
if (client)
{
while (client.connected())
{
if (client.available())
{
char c = client.read();
//read char by char HTTP request
if (readString.length() < 200)
{
//store characters to string
readString += c;
}
//if HTTP request has ended
if (c == '\n')
{
client.println(F("HTTP/1.1 200 OK")); //send new page
client.println(F("Content-Type: text/html"));
client.println(F("Connection: close")); // the connection will be closed after completion of the response
client.println(F("Refresh: 5")); // refresh the page automatically every 5 sec
client.println();
client.println(F("<HTML>"));
client.println(F("<HEAD>"));
client.println(F("<TITLE>Arduino GET test page</TITLE>"));
client.println(F("</HEAD>"));
client.println(F("<BODY>"));
client.println(F("<body bgcolor='yellow'>")); //blue
client.println(F("<center><H1>Nätverkstest alfa 0.1</H1>"));
// For simple testing, pin 5, 6, 7, and 8 are used in buttons
client.println(F("<input type=button value='1 ON' onmousedown=location.href='/?on1;'>"));
client.println(F("<input type=button value= '1 OFF' onmousedown=location.href='/?off1;'><br><br>"));
client.println(F("<input type=button value='2 ON' onmousedown=location.href='/?on2;'>"));
client.println(F("<input type=button value= '2 OFF' onmousedown=location.href='/?off2;'><br><br>"));
client.println(F("<input type=button value='3 ON' onmousedown=location.href='/?on3;'>"));
client.println(F("<input type=button value= '3 OFF' onmousedown=location.href='/?off3;'><br><br>"));
client.println(F("<input type=button value='4 ON' onmousedown=location.href='/?on4;'>"));
client.println(F("<input type=button value='4 OFF' onmousedown=location.href='/?off4;'><br><br>"));
client.println(F("<input type=button value='ALL ON' onmousedown=location.href='/?on1on2on3on4;'>"));
client.println(F("<input type=button value='ALL OFF' onmousedown=location.href='/?off1off2off3off4;'><br><br>"));
client.println(F("</BODY>"));
client.println(F("</HTML>"));
///////////////////// control arduino pin
if(readString.indexOf("on1") >0)//checks for 2
{
digitalWrite(5, LOW); // set pin 5 high
client.println(F("Light 1 Is On"));
client.println(F("<br/>"));
}
if(readString.indexOf("off1") >0)//checks for 3
{
digitalWrite(5, HIGH); // set pin 5 low
client.println(F("Light 1 Is Off"));
client.println(F("<br/>"));
}
if(readString.indexOf("on2") >0)//checks for 4
{
digitalWrite(6, LOW); // set pin 6 high
client.println(F("Light 2 Is On"));
client.println(F("<br/>"));
}
if(readString.indexOf("off2") >0)//checks for 5
{
digitalWrite(6, HIGH); // set pin 6 low
client.println(F("Light 2 Is Off"));
client.println(F("<br/>"));
}
if(readString.indexOf("on3") >0)//checks for 6
{
digitalWrite(7, LOW); // set pin 7 high
client.println(F("Light 3 Is On"));
client.println(F("<br/>"));
}
if(readString.indexOf("off3") >0)//checks for 7
{
digitalWrite(7, HIGH); // set pin 7 low
client.println(F("Light 3 Is Off"));
client.println(F("<br/>"));
}
if(readString.indexOf("on4") >0)//checks for 8
{
digitalWrite(8, LOW); // set pin 8 high
client.println(F("Light 4 Is On"));
client.println(F("<br/>"));
}
if(readString.indexOf("off4") >0)//checks for 9
{
digitalWrite(8, HIGH); // set pin 8 low
client.println(F("Light 4 Is Off"));
client.println(F("<br/>"));
}
delay(1);
//stopping client
client.stop();
//clearing string for next read
readString = "";
}
}
}
}
}