besturen webcam

Arduino specifieke Software
Berichten: 3
Geregistreerd: 20 Mrt 2013, 22:02

besturen webcam

Berichtdoor Weerman » 20 Mrt 2013, 22:46

Hallo Allemaal,

Sinds kort heb ik een webcam die ik kan laten draaien door een ruitenwissermotor die wordt aangestuurd met een Arduino ethernetshield.

Zie website http://www.webcambredevoort.nl

Op het gebied van de Arduino ben ik een beginner,dus heb ik wat hulp nodig voor het volgende probleem.
Als ik b.v de motor rechtsom laat draaien met de knop rechtsom, zou ik graag willen dat de motor na 30 seconden automatisch stop met draaien, en het blokje aan weer veranderd in uit.

Ik hoop dat iemand mij kan helpen met het schrijven van de code

Groeten, Ludo

de volgende code heb ik gebruikt.
Code: Alles selecteren
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 2, 177 }; // ip in lan

EthernetServer server(80); //server port

String readString;
boolean Pin4AAN = false;                  // Status flag
boolean Pin5AAN = false;

void setup(){

  pinMode(4, OUTPUT); //pin selected to control
  pinMode(5, OUTPUT);
  //start Ethernet
  Ethernet.begin(mac, ip);
  server.begin();


}

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() < 100) {

          //store characters to string
          readString += c;
          //Serial.print(c);
        }

        //if HTTP request has ended
        if (c == '\n') {

         
if(readString.indexOf("linksom") >0)//checks for on
          {
            digitalWrite(4, HIGH);    // set pin 4 high
            Pin5AAN = true;
            Pin4AAN = false;
            digitalWrite(5,LOW);
          }
          if(readString.indexOf("stop") >0)//checks for off
          {
            digitalWrite(4, LOW);    // set pin 4 low
            digitalWrite(5,LOW);
            Pin4AAN = false;
            Pin5AAN = false;
           
          }
         
          if(readString.indexOf("rechtsom") >0)//checks for on
          {
            digitalWrite(5, HIGH);    // set pin 5 high
            Pin4AAN = true;
            Pin5AAN = false;
            digitalWrite(4,LOW);    // set pin 4 low
          }
         
          //clearing string for next read
          readString="";

          //now output HTML data header
             if(readString.indexOf('?') >=0) { //don't send new page
               client.println("HTTP/1.1 204 Zoomkat");
               client.println();
               client.println(); 
             }
             else {
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();

          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<TITLE>Webcam Meteo Bredevoort</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");

         
          client.println("<table border='0' width='500' cellpadding='5'>");

          client.println("<tr bgColor='#222222'>");
          client.println("<td align='center'><form method=get><input type=submit name=/?rechtsom value='LINKSOM'></form></td>");
          client.println("<td align='center'><form method=get><input type=submit name=/?stop value='STOP'></form></td>");
          client.println("<td align='center'><form method=get><input type=submit name=/?linksom value='RECHTSOM'></form></td>");
          client.println("</tr>");
         
          client.println("<tr bgColor='#222222'>");
          if (Pin4AAN)
          client.println("<td bgColor='#OOFFOO' align='center'><font color='#OOOOOO' size='5'> AAN </td>");
          else
          client.println("<td bgColor='red' align='center'><font color='#FFFFFF' size='5'> UIT </td>");
     
       
          client.println("<td bgColor='#FFFFFF'></td>");
     
   
          if (Pin5AAN)
          client.println("<td bgColor='#OOFFOO' align='center'><font color='#OOOOOO' size='5'> AAN </td>");
          else
          client.println("<td bgColor='red' align='center'><font color='#FFFFFF' size='5'>UIT </td>");
          client.println("</tr>");
         
          client.println("</table>");
         
 
 

          client.println("</BODY>");
          client.println("</HTML>");
             }

          delay(1);
          //stopping client
          client.stop();

   

        }
      }
    }
  }
}


Advertisement

Gebruikers-avatar
Berichten: 229
Geregistreerd: 20 Jan 2013, 12:01

Re: besturen webcam

Berichtdoor astrofrostbyte » 21 Mrt 2013, 22:29

Hey Weerman,

ik zit te denken aan het volgende
Code: Alles selecteren
Variable voor tijd stamp aanmaken ergens boven
unsigned long timestamp;

In de codeblokken linskom en rechtsom de timestamp bewaren.
if(readString.indexOf("linksom") >0)    //checks for on
{ digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  Pin5AAN = true;   Pin4AAN = false;
  timestamp = millis();
}

In de root van loop()  controleren of de 30 seconden voorbij zijn bij een beweging link of rechts.
if ( Pin5AAN || PIN4AAN)
{   if ( millis() - timestamp >= 30000 )
  {  digitalWrite(4, LOW);
     digitalWrite(5, LOW);
     Pin4AAN = false;  Pin5AAN = false;
  }
}


Probleem is wel dat je webpage niet geupdate wordt met 'UIT'
Gear: Arduino- Uno,Due,Ethernet,Mega2560 , OLS LogicAnalyser, TDS1002, Rigol DG1022, J-Link EDU, BusPirate

Berichten: 3
Geregistreerd: 20 Mrt 2013, 22:02

Re: besturen webcam

Berichtdoor Weerman » 21 Mrt 2013, 23:58

Hallo , astrofrostbyte

Het werkt als een tierelier, hier wordt ik erg blij van
Hartelijk dank voor jou Hulp.
Groet, Ludo

Gebruikers-avatar
Berichten: 229
Geregistreerd: 20 Jan 2013, 12:01

Re: besturen webcam

Berichtdoor astrofrostbyte » 24 Mrt 2013, 21:13

Mooi, ik heb er ook ff mee gespeeld, was s'-nachts , kon iets van een kerktoren zien.

Ik zou graag ook nog wel iets van een 'weerstation' maken , maar dan meer met stralingswaarden van de zon ivm. (astronomy)
Sensoren zoals pyranometer, UV, etc.... mischien nog iets van hoog-energetisch deeltjes.
Gear: Arduino- Uno,Due,Ethernet,Mega2560 , OLS LogicAnalyser, TDS1002, Rigol DG1022, J-Link EDU, BusPirate

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: besturen webcam

Berichtdoor DeDraak » 14 Jan 2016, 14:49

Even een vraagje,

Draait deze site ook op de arduino?

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 82 gasten