Arduino Nano V3.0 + ENC28j60 + Webserver + RC-Switch....

(1/4) > >>

Shojo:
Hi ihr µler ;)

Ich bin seit ca. 3 Wochen auch dabei und bin begeistert!
Allerdings war mir "damals" nicht bewusst das es verschiedene Netzwerk Chipsätze gibt und bin daher auf den ENC28j60 gekommen.
Jetzt habe ich schon viel Zeit mit der Suche nach einer brauchbaren Lib vertan.....

Habe dann ja auch eine gefunden die mir brauchbar erschien, damit habe ich auch ein kleinen Webserver zum laufen gebracht.
Nun habe ich aber das Problem sobald ich über rc-switch ein Steuersignal ausgebe das sich der Server weghängt da die Variable rec voll gespämmt wird und ich kann es nicht nachzuvollziehen wie das zustande kommt.

Ich hoffe das mir hier Jemand mit mehr Erfahrung  helfen kann.

Soo hier der Code:
Code:

#include <etherShield.h>
#include <ETHER_28J60.h>
#include <RCSwitch.h>

//Netzwek Conf
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};
static uint8_t ip[4] = {192, 168, 0, 88};
static uint16_t port = 80;

// RCSwitch Conf
RCSwitch mySwitch = RCSwitch();
int RCTransmissionPin = 12;

ETHER_28J60 e;

void setup()
{
  Serial.begin(9600);
  e.setup(mac, ip, port);
  mySwitch.enableTransmit( RCTransmissionPin );
}

void loop()
{
  char* rec;
  int recint;
  if (rec = e.serviceRequest()){
//-----------------------------------------Webseite--------------------------------------//       
        e.print("<html><head><title>Arduino HomeContol</title></head><body>");
        e.print("<center><hr>");
        e.print("<H1><h1>Willkommen bei den Arduino HomeContol</h1></H1>");
        e.print("</center><hr>");
        e.print("</body></html>");
        e.respond();
   
   
   
    recint = atoi(rec);
    if (recint > 0 ){
      Serial.print("Eingehendes Request = " );
      Serial.println (recint);
      Serial.print("Ausgeloeste Funktion: ");
      switch (recint) {
//-------------------------------------Housecode 10000------------------------------------//
case 110:
          mySwitch.switchOff("10000", 1);
          Serial.println("Dose 1 OFF");
          //ReplyBuffer = "Dose 1 OFF";
        break;
       
case 111:
          mySwitch.switchOn("10000", 1);
          Serial.println("Dose 1 ON");
          //ReplyBuffer = "Dose 1 ON";
        break;     
//-----------------------------------------------//
        case 120:
          mySwitch.switchOff("10000", 2);
          Serial.println("Dose 2 OFF");
          //ReplyBuffer = "Dose 2 OFF";
        break;
       
        case 121:
          mySwitch.switchOn("10000", 2);
          Serial.println("Dose 2 ON");
          //ReplyBuffer = "Dose 2 ON";
        break;
//-----------------------------------------------//             
        case 130:
          mySwitch.switchOff("10000", 3);
          Serial.println("Dose 3 OFF");
          //ReplyBuffer = "Dose 3 OFF";
        break;
       
        case 131:
          mySwitch.switchOn("10000", 3);
          Serial.println("Dose 3 ON");
          //ReplyBuffer = "Dose 3 ON";
        break;
//-----------------------------------------------//       
        case 140:
          mySwitch.switchOff("10000", 4);
          Serial.println("Dose 4 OFF");
          //ReplyBuffer = "Dose 4 OFF";
        break;
       
        case 141:
          mySwitch.switchOn("10000", 4);
          Serial.println("Dose 4 ON");
          //ReplyBuffer = "Dose 4 ON";
        break;
//-----------------------------------------------//       
        case 150:
          mySwitch.switchOff("10000", 5);
          Serial.println("Dose 5 OFF");
          //ReplyBuffer = "Dose 5 OFF";
        break;
       
        case 151:
          mySwitch.switchOn("10000", 5);
          Serial.println("Dose 5 ON");
          //ReplyBuffer = "Dose 5 ON";
        break;
       
 //-------------------------------------Housecode 11000------------------------------------//
        case 210:
          mySwitch.switchOff("11000", 1);
          Serial.println("Dose 6 OFF");
          //ReplyBuffer = "Dose 6 OFF";
        break;
       
        case 211:
          mySwitch.switchOn("11000", 1);
          Serial.println("Dose 6 ON");
          //ReplyBuffer = "Dose 6 ON";
        break;       
//-----------------------------------------------//       
        case 220:
          mySwitch.switchOff("11000", 2);
          Serial.println("Dose 7 OFF");
          //ReplyBuffer = "Dose 7 OFF";
        break;
       
        case 221:
          mySwitch.switchOn("11000", 2);
          Serial.println("Dose 7 ON");
          //ReplyBuffer = "Dose 7 ON";
        break;
//-----------------------------------------------//       
        case 230:
          mySwitch.switchOff("11000", 3);
          Serial.println("Dose 8 OFF");
          //ReplyBuffer = "Dose 8 OFF";
        break;
       
        case 231:
          mySwitch.switchOn("11000", 3);
          Serial.println("Dose 8 ON");
          //ReplyBuffer = "Dose 8 ON";
        break;       
//-----------------------------------------------//       
        case 240:
          mySwitch.switchOff("11000", 4);
          Serial.println("Dose 9 OFF");
          //ReplyBuffer = "Dose 9 OFF";
        break;
     
        case 241:
          mySwitch.switchOn("11000", 4);
          Serial.println("Dose 9 ON");
          //ReplyBuffer = "Dose 9 ON";
        break;     
//-----------------------------------------------//       
        case 250:
          mySwitch.switchOff("11000", 5);
          Serial.println("Dose 10 OFF");
          //ReplyBuffer = "Dose 10 OFF";
        break;
       
        case 251:
          mySwitch.switchOn("11000", 5);
          Serial.println("Dose 10 ON");
          //ReplyBuffer = "Dose 10 ON";
        break;
       
//-----------------------------------------Stellung A------------------------------------//
case 810:
          mySwitch.sendTriState("1FFF1FF00001");
          Serial.println("Dose 11 OFF");
          //ReplyBuffer = "Dose 11 OFF";
        break;
       
case 811:
          mySwitch.sendTriState("1FFF1FF00010");
          Serial.println("Dose 11 ON");
          //ReplyBuffer = "Dose 11 ON";
        break;       
//-----------------------------------------------//
        case 820:
          mySwitch.sendTriState("1FFFF1F00001");
          Serial.println("Dose 12 OFF");
          //ReplyBuffer = "Dose 12 OFF";
        break;
       
case 821:
          mySwitch.sendTriState("1FFFF1F00010");
          Serial.println("Dose 12 ON");
          //ReplyBuffer = "Dose 12 ON";
        break;       
//-----------------------------------------------//
        case 830:
          mySwitch.sendTriState("1FFFFF100001");
          Serial.println("Dose 13 OFF");
          //ReplyBuffer = "Dose 13 OFF";
        break;
       
case 831:
          mySwitch.sendTriState("1FFFFF100010");
          Serial.println("Dose 13 ON");
          //ReplyBuffer = "Dose 13 ON";
        break;
       
//-----------------------------------------Stellung B------------------------------------//
case 910:
          mySwitch.sendTriState("F1FF1FF00001");
          Serial.println("Dose 14 OFF");
          //ReplyBuffer = "Dose 14 OFF";
        break;
       
case 911:
          mySwitch.sendTriState("F1FF1FF00010");
          Serial.println("Dose 14 ON");
          //ReplyBuffer = "Dose 14 ON";
        break;       
//-----------------------------------------------//
        case 920:
          mySwitch.sendTriState("F1FFF1F00001");
          Serial.println("Dose 15 OFF");
          //ReplyBuffer = "Dose 15 OFF";
        break;
       
case 921:
          mySwitch.sendTriState("F1FFF1F00010");
          Serial.println("Dose 15 ON");
          //ReplyBuffer = "Dose 15 ON";
        break;       
//-----------------------------------------------//
        case 930:
          mySwitch.sendTriState("F1FFFF100001");
          Serial.println("Dose 16 OFF");
          //ReplyBuffer = "Dose 16 OFF";
        break;
       
case 931:
          mySwitch.sendTriState("F1FFFF100010");
          Serial.println("Dose 16 ON");
          //ReplyBuffer = "Dose 16 ON";
        break;
       
    } 
    Serial.println("//=============================================//");
//    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
//    Udp.write(ReplyBuffer);
//    Udp.endPacket();
  }
 }

//----------------------------------------------------------



   
 
  delay(10);       
}   



///----------------------------------------------------------




Hier noch Paar Bilder zu den Ding ;)




Gruß
Shojo

mkl0815:
Könnte Dein Problem ectl. sein, das Du den Pin12 für die RC-Switch Lib verwendest? Den Pin12 gehört zum SPI Bus (D11 - D13 (MOSI , MISO und SCK))
Zusätzlich verwendet Dein Shield noch D10 als Chipselect soweit ich weiss.
Verwende mal einen anderen Pin für die RC-Switch Lib.

Mario.

Shojo:
Danke für dein Tipp!

Aber das hatte ich auch schon probiert er liegt normalerweise auf Pin 5 hatte den jetzt nur mal testweise da liegen.

//Edit:
   So habe es trotzdem noch mal auf Pin3 gesetzt, hat leider auch nicht gebracht :(
   Code:

  SI RVA
   SI RVA
   SI RVA
   SI RVA
   SI RVA




Gruß

mkl0815:
Funktioniert denn der Sketch wenn Du nicht über die RC-Lib schaltest, sondern nur die Ausgaben auf die serielle Konsole ausgibst?
Poste mal bitte einen Link zu der Ethernet-Lib.

Shojo:
Ja der Fehler kommt nur wenn die RC-Lib zu tragen kommt.....

Hier die Libs http://www.the-intruder.net/filebase/libraries

Navigation

[0] Message Index

[#] Next page