Show Posts
Pages: [1] 2 3
1  International / Deutsch / Re: Code-Kontrolle on: June 29, 2011, 06:10:22 am
Natürlich funktioniert es nicht, der Ausgang drei lässt sich so nicht schalten.
Bin nicht selbst am Programmtesten, gebe nur die Fehler weiter.

LG
2  International / Deutsch / Re: Code-Kontrolle on: June 28, 2011, 08:11:06 pm
Hi Uwe!
Wieso? Kann doch Fehler machen  smiley
Oder wie meinst du das?  smiley-grin

Kannst du einen Fehler finden?  smiley-grin
3  International / Deutsch / Code-Kontrolle on: June 28, 2011, 06:38:46 pm
Hallo zusammen!
Habe hier mal ein ganzes Programm. Könnte es mir mal jemand durchchecken?
Vielleicht sind ja Fehler drin! Es soll die Webseite an den Client gesendet werden,
wenn es an der Tür klingelt.
Vielen Dank schonmal. Freue mich auf jede Hilfe!

Code:

#include <SPI.h> 
#include <Ethernet.h>
#include <Flash.h>



byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x40, 0xF2 };    // MAC-Adresse
byte ip[]  = { 192, 168, 178, 22 };                     // IP-Adresse
byte gateway[] = { 192, 168, 178, 1 };                  // Gateway
byte subnet[]  = { 255, 255, 255, 0 };                  // Subnetz
byte xbmc_ip[] = { 192, 168, 178, 43 };                 // XBMC IP
Server server(80);
Client xbmc(xbmc_ip, 80);


int Pin8 = 8;  // Digital Input
int Pin3 = 3;  // Digital Output
int Pin5 = 5;  // Analog Output
int Pin6 = 6;  // Analog Output

int state;
int helligkeit = 0;

String readString = String(100);      // String for data from address
boolean Pin8ON = false;               // Status flag
boolean Pin3ON = false;               // Status flag
boolean Pin5ON = false;               // Status flag
boolean Pin6ON = false;               // Status flag



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


    pinMode(Pin8, INPUT);
    pinMode(Pin3, OUTPUT);
    pinMode(Pin5, OUTPUT);
    pinMode(Pin6, OUTPUT);
    digitalWrite(Pin3, state);
    analogWrite(Pin5, helligkeit);
    analogWrite(Pin6, helligkeit);

    Serial.begin(9600);
}

void loop() {
     //Create a client connection
    Client 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 = readString + c;
                }
                //output chars to serial port
                Serial.print(c);
                //if HTTP request has ended
                if (c == '\n') { 
                    // indexOf locates a character or String within another String
                    // returns the index of val within the String, or -1 if not found
                    if(readString.indexOf("3=einschalten") > -1) {
                        //Setting Pin3 to HIGH
                        digitalWrite(Pin3, HIGH);
                        //printing to line that door is open
                        Serial.println("Tür ist offen!");
                        //setting local variable to true
                        Pin3ON = true;
                        //sleeping for 2.5 seconds
                        delay(2500);
                        //setting Pin3 again to LOW
                        digitalWrite(Pin3, LOW);
                        //printing to line that door is now closed again
                        Serial.println("Tür ist geschlossen!");
                        //setting local variable to false again
                        Pin3ON = false;
                    }

                    if(readString.indexOf("5=heller") > -1) {
                        if(helligkeit<255) {
                            helligkeit++;
                            analogWrite(Pin5, helligkeit);
                            delay(10);
                            Serial.println("Dimmen +");
                            Pin5ON = true;
                        }
                    }
                    //else { Pin5ON = false;
                    //}

                    if(readString.indexOf("6=dunkler") > -1){
                        if(helligkeit!=0) {
                        helligkeit--;
                        analogWrite(Pin6, helligkeit);
                        delay(10);
                        Serial.println("Dimmen-");
                        Pin6ON = true;
                        }
                    }
                    else {
                        Pin6ON = false;
                    }

                    if(readString.indexOf("all=Alles+aus") > -1){
                        digitalWrite(Pin3, LOW);
                        analogWrite(Pin5, LOW);
                        analogWrite(Pin6, LOW);
                        Serial.println("Alles ausgeschaltet");
                        Pin3ON = false;
                        Pin5ON = false;
                        Pin6ON = false;
                    }

                    if(readString.indexOf("klingel=Klingel") > -1){  // (sphere start)
                        if (xbmc.connect())
                        {
                            Serial.println("xbmc connected");
                            // Make a HTTP request:
                            xbmc.println("GET /xbmcCmds/xbmcHttp?command=ExecBuiltIn(RunScript(special://home/addons/script.playcam/default.py)) HTTP/1.0");
                            Serial.println("xbmc command sent");
                            xbmc.stop();
                        }
                        else
                              {
                            // could not contact xbmc
                            Serial.println("xbmc connection failed");
                              }
                    }  // (...end)
                }
            }
4  International / Deutsch / Re: Senden klappt nicht! on: June 27, 2011, 04:04:10 pm
Hi,
ja, der Webserver von Poldi läuft ganz gut, aber welche Bibliothek brauche
ich, um einen String zu senden? Emails zu senden soll ja auch gehen...
Geht da Udp? Es soll sowas wie eine GET-Anforderung sein, damit wirklich auf dem anderen Server eine Webseite aufgeht.
Ich weiß, es ist keine leichte Aufgabe, aber ICH BRAUCHE ES ;-)
5  International / Deutsch / Senden klappt nicht! on: June 25, 2011, 02:40:47 pm
Hallo zusammen!

Mein Ethernetshield arbeitet ja als Webserver. Nun möchte ich eine URL als Stringbefehl
versenden, damit beim empfangenden PC eine Webseite aufgeht.
Jetzt habe ich dafür die Udp-Library eingebunden und bekomme aber laufend
Fehlermeldungen wie z.B.:
no matching function for call to 'UdpClass::sendPacket(char[13], String&, int&)'
Was ist an dem Programm faul, bzw. wie kann ich das Senden realisieren?
Mein Programm sieht folgendermaßen aus, wobei ich das HTML-Zeug weg-
gelassen habe:



#include <SPI.h> 
#include <Ethernet.h>
#include <Flash.h>
#include "UdpString.h"
#include <Udp.h>


byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x40, 0xF2 };    // MAC-Adresse
byte ip[]  = { 192, 168, 178, 22 };                     // IP-Adresse
byte gateway[] = { 192, 168, 178, 1 };                  // Gateway
byte subnet[]  = { 255, 255, 255, 0 };                  // Subnetz


Server server(80);
char  ReplyBuffer[] = "acknowledged";       // a string to send back
String remoteIp = "192.168.178.44";               // the remote IP address
int remotePort = 80;                              // the destination port
unsigned int localPort = 8888;      // local port to listen on

int Pin8 = 8;  // Digital Input
int Pin3 = 3;  // Digital Output
int Pin5 = 5;  // Analog Output
int Pin6 = 6;  // Analog Output

int state;
int helligkeit = 0;

String readString = String(100);      // String for data from address
boolean Pin8ON = false;               // Status flag
boolean Pin3ON = false;               // Status flag
boolean Pin5ON = false;               // Status flag
boolean Pin6ON = false;               // Status flag

// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,



void setup() {
 
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Udp.begin(localPort);


pinMode(Pin8, INPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin5, OUTPUT);
pinMode(Pin6, OUTPUT);
digitalWrite(Pin3, state);
analogWrite(Pin5, helligkeit);
analogWrite(Pin6, helligkeit);

Serial.begin(9600);
}

void loop()
{
// Create a client connection
Client 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 = readString + c;
}

//output chars to serial port
Serial.print(c);

  // if there's data available, read a packet
  int packetSize = Udp.available(); // note that this includes the UDP header
  if(packetSize)
  {
    packetSize = packetSize - 8;      // subtract the 8 byte header
    Serial.print("Received packet of size ");
    Serial.println(packetSize);

    // read the packet into packetBufffer and get the senders IP addr and port number
  //  Udp.readPacket(packetBuffer,UDP_TX_PACKET_MAX_SIZE, remoteIp, remotePort);
    Serial.println("Contents:");
    Serial.println(packetBuffer);

    Udp.sendPacket( ReplyBuffer, remoteIp, remotePort);
  }

//clearing string for next read
readString="";

//stopping client
client.stop();
}}}}}

6  International / Deutsch / UDP-Library on: June 22, 2011, 10:49:40 am
Hallo!

Kann man sich die UDP-Bibliothek irgendwo runterladen?
Finde da gar nichts, oder ist die gar schon mit in der
Ethernet-Library integriert?

LG
7  International / Deutsch / Re: Ethernet-Buchse on: June 19, 2011, 10:12:02 am
Hehe, ja, mein eigenes Ethernetshield ist ein Teil eines Projektes zwecks
meines Abschlusses. Habe die Buchse nochmal entfernt und der Fehler lag
natürlich auf der Platine, da, wie schon erwähnt, der Schaltplan eine
andere Buchse beinhaltet. Jetzt müsste es, nach erfolgreichem
Wiederauflöten auch funktionieren, falls nicht noch andere Macken
vorhanden sind. Bin gespannt, ob das der einzige Fehler war...
8  International / Deutsch / Re: Mit Webserver Ausgänge schalten on: June 18, 2011, 09:27:50 am
So sieht bis jetzt das Programm aus:
#include "Metro.h"


#include <SPI.h> 
#include <Ethernet.h>
#include <Flash.h>


byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0x40, 0xF2 };    // MAC-Adresse
byte ip[]  = { 192, 168, 178, 22 };                     // IP-Adresse
byte gateway[] = { 192, 168, 178, 1 };                  // Gateway
byte subnet[]  = { 255, 255, 255, 0 };

Server server(80);

int Pin3 = 3;
int Pin4 = 4;
int Pin5 = 5;
int Pin6 = 6;
int state;
  Metro pin3Metro = Metro(1000);

String readString = String(100);      // string for fetching data from address
boolean Pin3ON = false;               // Status flag
boolean Pin4ON = false;

void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
digitalWrite(Pin3, state);

Serial.begin(9600); }

void loop(){

// Create a client connection
Client 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 = readString + c;
}

Serial.print(c);  //output chars to serial port

if (c == '\n') {  //if HTTP request has ended
digitalWrite(Pin3, state);
if(pin3Metro.check() == 1) {
// indexOf locates a character or String within another String.
// Returns the index of val within the String, or -1 if not found.
if(readString.indexOf("3=einschalten") > -1) {
 digitalWrite(Pin3, HIGH);
 Serial.println("Pin 3 eingeschaltet!");
 Pin3ON = true;
 pin3Metro.interval(1000);
}
/*if(readString.indexOf("3=ausschalten") > -1){
 digitalWrite(Pin3, LOW);
 Serial.println("Pin 3 ausgeschaltet!");
 Pin3ON = false;
}*/else {state = LOW; }
state = LOW;
digitalWrite(Pin3, state);
}
if(readString.indexOf("4=einschalten") > -1) {
 digitalWrite(Pin4, HIGH);
 Serial.println("Pin 4 eingeschaltet!");
 Pin4ON = true;
}
if(readString.indexOf("4=ausschalten") > -1){
 digitalWrite(Pin4, LOW);
 Serial.println("Pin 4 ausgeschaltet!");
 Pin4ON = false;
}

if(readString.indexOf("all=Alles+aus") > -1){
 digitalWrite(Pin3, LOW);
 digitalWrite(Pin4, LOW);
 Serial.println("Alles ausgeschaltet");
 Pin3ON = false;
 Pin4ON = false;
}


//clearing string for next read
readString="";

//stopping client
client.stop();
}}}}}
9  International / Deutsch / Re: Ethernet-Buchse on: June 18, 2011, 09:16:24 am
Hallo, ich habe mein eigenes EthernetShield gebaut und da war eben
nach Messen mit dem Durchgangsprüfer festzustellen, dass da ne Verbindung
existiert, die wohl da nicht hingehört. Habe nach Schaltplan verdrahtet und
da liegt auch der Fehler, da dieser eine andere Buchse aufweist.
10  International / Deutsch / Mit Webserver Ausgänge schalten on: June 18, 2011, 06:33:12 am
Hi!
Mit meinem EthernetShield als Webserver möchte ich über eine Webseite
Ausgänge schalten. Das klappt auch soweit, die HTML-Syntax steht auch.
Nur, wie baue ich das ein, dass der gesetzte Ausgang nach einer bestimmten
Zeit wieder von selbst zurückgesetzt wird?
Und, muss ich da auch was in der HTML-Syntax verändern? Wahrscheinlich,
dass nach einer Zeit der Ausgang OFF zeigen soll, oder?

Hoffentlich kennt sich hier jemand damit aus!

LG Logomaus
11  International / Deutsch / Re: Ethernet-Buchse on: June 18, 2011, 06:27:01 am
Na ja, die Buchse gehört zum Arduino EthernetShield...
12  International / Deutsch / Ethernet-Buchse on: June 18, 2011, 03:18:09 am
Hallo!
Benutze für mein Ethernet-Shield eine Westernbuchse vom
Typ TRJ0011BANL. Das Datenblatt zeigt folgendes:
http://shockwaves-control.co.uk/ebay/20091111/TRJ0011BANL.pdf

Was bedeutet bei der unteren Schematic PC Board Connections?
Da ist doch die Pinbelegung der Buchse auf der Leiterplatte gemeint, oder?
Frage deswegen, weil bei mir Pin 1, 2, 3, 4, 5, und 6 auf der Platine
miteinander verbunden sind! Kann das so stimmen oder habe ich etwa
einen Kurzschluss?

LG Logomaus
13  International / Deutsch / MAC-Adresse on: June 17, 2011, 04:02:22 pm
Hallo!
Jetzt muss ich doch nochmal nachhaken: Kann ich wirklich
für mein selbstgebautes Ethernetshield irgendeine ausgedachte
MAC-Adresse nehmen?

LG
14  International / Deutsch / Re: Halogenlampen-Dimmer on: June 17, 2011, 03:56:55 pm
Hallo Leute!

Ähm, ja, werde ein gekauftes, fertiges Netzteil nehmen und ansonsten
die Halogenlampe mit ner Fassung. Habe nun eine mit 12V/20W.
Natürlich geht es mir nur um DC!  smiley-grin

LG
15  International / Deutsch / Re: Halogenlampen-Dimmer on: June 17, 2011, 10:23:30 am
Jupp, danke mal für die Hilfe!

LG
Pages: [1] 2 3