INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Uno R3 + Ethernet Shield + RF Sender
15.07.2015, 21:50
Beitrag #1
Question Arduino Uno R3 + Ethernet Shield + RF Sender
Hallo Zusammen,

seit Kurzem beschäftige ich mich teils erfolgreich, teils weniger erfolgreich mit meinem Arduino Uno. Bisherige Projektchen wie das Steuern einer Led/Relais über mein Ethernet Lan Shield Modul W5100 haben auch super geklappt. Nun habe ich jedoch weniger die Möglichkeit meine Lichter über Relais zu schalten (zumindest nicht ohne meine Wände aufzuklopfen) und würde daher das ganze gerne über einen RF Sender machen.

Als Erstes habe ich den Sender mit einem Blinklicht über eine Baumarkt Funksteckdose getestet, hier hat auch alles super geklappt. Nun möchte ich das Ganze jedoch über eine kleine Html Seite steuern und habe es mit diesem Code:

/*
A simple RCSwitch/Ethernet/Webserver demo

http://code.google.com/p/rc-switch/
*/

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

// Ethernet configuration
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC Address
byte ip[] = { 192,168,0, 2 }; // IP Address
EthernetServer server(80); // Server Port 80

// RCSwitch configuration
RCSwitch mySwitch = RCSwitch();
int RCTransmissionPin = 6;

// More to do...
// You should also modify the processCommand() and
// httpResponseHome() functions to fit your needs.



/**
* Setup
*/
void setup() {
Ethernet.begin(mac, ip);
server.begin();
mySwitch.enableTransmit( RCTransmissionPin );
}

/**
* Loop
*/
void loop() {
char* command = httpServer();
}

/**
* Command dispatcher
*/
void processCommand(char* command) {
if (strcmp(command, "1-on") == 0) {
mySwitch.switchOn("11111", "00100");
} else if (strcmp(command, "1-off") == 0) {
mySwitch.switchOff("11111", "00100");
} else if (strcmp(command, "2-on") == 0) {
mySwitch.switchOn(1,2);
} else if (strcmp(command, "2-off") == 0) {
mySwitch.switchOff(1,2);
}
}

/**
* HTTP Response with homepage
*/
void httpResponseHome(EthernetClient c) {
c.println("HTTP/1.1 200 OK");
c.println("Content-Type: text/html");
c.println();
c.println("<html>");
c.println("<head>");
c.println( "<title>RCSwitch Webserver Demo</title>");
c.println( "<style>");
c.println( "body { font-family: Arial, sans-serif; font-size:12px; }");
c.println( "</style>");
c.println("</head>");
c.println("<body>");
c.println( "<h1>RCSwitch Webserver Demo</h1>");
c.println( "<ul>");
c.println( "<li><a href=\"/?1-on\">Switch #1 on</a></li>");
c.println( "<li><a href=\"/?1-off\">Switch #1 off</a></li>");
c.println( "</ul>");
c.println( "<ul>");
c.println( "<li><a href=\"./?2-on\">Switch #2 on</a></li>");
c.println( "<li><a href=\"./?2-off\">Switch #2 off</a></li>");
c.println( "</ul>");
c.println( "<hr>");
c.println( "<a href=\"http://code.google.com/p/rc-switch/\">http://code.google.com/p/rc-switch/</a>");
c.println("</body>");
c.println("</html>");
}

/**
* HTTP Redirect to homepage
*/
void httpResponseRedirect(EthernetClient c) {
c.println("HTTP/1.1 301 Found");
c.println("Location: /");
c.println();
}

/**
* HTTP Response 414 error
* Command must not be longer than 30 characters
**/
void httpResponse414(EthernetClient c) {
c.println("HTTP/1.1 414 Request URI too long");
c.println("Content-Type: text/plain");
c.println();
c.println("414 Request URI too long");
}

/**
* Process HTTP requests, parse first request header line and
* call processCommand with GET query string (everything after
* the ? question mark in the URL).
*/
char* httpServer() {
EthernetClient client = server.available();
if (client) {
char sReturnCommand[32];
int nCommandPos=-1;
sReturnCommand[0] = '\0';
while (client.connected()) {
if (client.available()) {
char c = client.read();
if ((c == '\n') || (c == ' ' && nCommandPos>-1)) {
sReturnCommand[nCommandPos] = '\0';
if (strcmp(sReturnCommand, "\0") == 0) {
httpResponseHome(client);
} else {
processCommand(sReturnCommand);
httpResponseRedirect(client);
}
break;
}
if (nCommandPos>-1) {
sReturnCommand[nCommandPos++] = c;
}
if (c == '?' && nCommandPos == -1) {
nCommandPos = 0;
}
}
if (nCommandPos > 30) {
httpResponse414(client);
sReturnCommand[0] = '\0';
break;
}
}
if (nCommandPos!=-1) {
sReturnCommand[nCommandPos] = '\0';
}
// give the web browser time to receive the data
delay(1);
client.stop();

return sReturnCommand;
}
return '\0';
}

Versucht.

Die Seite lässt sich auch aufrufen, nur leider passiert nichts an der Steckdose, wenn ich versuche das Licht über den Button anzuschalten.

Meine Änderungen des Codes sind eigentlich nur bei der IP und dem Code der Funksteckdose. Hat jemand eine Ahnung, woran es liegen könnte?

Danke und liebe Grüße
Marten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Box cases für arduino nano UNO etc mit ethernet buchse sepp01 8 160 22.11.2017 14:55
Letzter Beitrag: sepp01
  nano, micro oder? für LAN Shield sepp01 10 342 12.11.2017 11:30
Letzter Beitrag: sepp01
  Steckertyp von SD Card Shield V4.0? alpenpower 7 539 10.11.2017 10:04
Letzter Beitrag: SkobyMobil
  SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield Bikandajyo 11 559 18.10.2017 13:54
Letzter Beitrag: Bikandajyo
  Display für ATMega 2560 mit Shield lion88 8 847 08.10.2017 18:27
Letzter Beitrag: SkobyMobil
  Adruino mit DHT22 und 433Mhz Sender Groej 4 1.323 10.08.2017 06:08
Letzter Beitrag: RMR
  CAN-Shield iVm 3,3V Arduino Pro Mini Clubsport 12 981 13.04.2017 22:56
Letzter Beitrag: Bitklopfer
  SM5100B GSM shield huber5093 2 429 01.02.2017 04:19
Letzter Beitrag: bergfrei
  CNC Shield V3 + Nema 17 relay 2 1.454 26.12.2016 15:01
Letzter Beitrag: Ralla1
  Grundsatz Frage: Ethernet Shield 2 + SQL-Anbindung Beercules 7 674 16.12.2016 13:40
Letzter Beitrag: ardu_arne

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste