Talk:OpenDuino

From syn2cat - HackerSpace.lu
(Difference between revisions)
Jump to: navigation, search
(fixed stalling bug)
(made the "interface" (ie. the LEDs) more responsive)
Line 78: Line 78:
 
       open = !open;
 
       open = !open;
 
       request[26] = (int)open+48;
 
       request[26] = (int)open+48;
 +
      lights();
 
       dialup();
 
       dialup();
 
     }
 
     }
 
   }
 
   }
 
    
 
    
  // set the lights
 
  lights();
 
  
 
   // send regular updates
 
   // send regular updates

Revision as of 13:26, 25 September 2009

temporary storage for source code of arduino part:

#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 99 };
byte gateway[] = { 192 ,168 ,1 ,254 };
byte subnet[] = { 255, 255, 255, 0 };
boolean open = false;

//byte server_ip[] = {74, 125, 127, 100}; //google
byte server_ip[] = { 80, 90, 47, 170 }; //hackerspace.lu
//byte server_ip[] = { 192, 168, 1, 65 };

char request[300] = "GET /OpenDuino.php?status=0 HTTP/1.0";
//char request[300] = "GET /index.html HTTP/1.0";

unsigned long time = 0;
unsigned long oldtime = 0;

unsigned long trigger_oldtime = 0;

//Server server(1337);

void setup()
{
  Ethernet.begin(mac, ip, gateway, subnet);
  //server.begin();
  Serial.begin(9600);

  lights();
  // connect once on launch
  dialup();
  
  oldtime = millis();
}

void dialup() 
{
  Client client(server_ip,80);  
  Serial.println("Connecting...");
  Serial.println(request);
  if( client.connect() ){
    client.println(request);
    client.println();
   } else {
     Serial.println("Connection failed.");
   } //*/
     
  if(client.available()) {
    char c = client.read();
    Serial.println(c);
  } //*/
  client.stop();
}

void lights() {
  if( open ) {
    digitalWrite(7,HIGH);
    digitalWrite(5,LOW);
  } else {
    digitalWrite(7,LOW);
    digitalWrite(5,HIGH);
  }
}
  

void loop()
{
  time = millis();
  
  // read the switch state
  if(digitalRead(0) == 0) {
    if( time - trigger_oldtime > 1000 || time - trigger_oldtime < 0 ) {
      trigger_oldtime = time;
      Serial.println("Changing state.");
      open = !open;
      request[26] = (int)open+48;
      lights();
      dialup();
    }
  }
  

  // send regular updates
  if( time-oldtime > 300000 || time - oldtime < 0 ) {
      oldtime = time;
      dialup();
  }
}
Personal tools
Namespaces

Variants
Views
Actions
Navigation
syn2cat
Hackerspace
Activities
Initiatives
Community
Tools
Tools