DomoticHome mit DFRobot Ethernet Modul

Hi Leute,

ich hab jetzt ganz neu mit dem Arduino angefangen und verstehe den Code noch überhaupt nicht. LED blinken lassen klappt aber :slight_smile: Ich habe mit dem Arduino angefangen, da ich dachte ich könnte einfach zusammenstecken und hätte den ersten Erfolg gleich mit Netzwerk und Android Handy… aber leider.

Also, ich habe mir nach dieser Anleitung: Arduino via Internet mit dem Android-Phone steuern – Poldis Homepage
bzw. hier den Code erzeugt: http://domotichome.heroku.com/masters

Leider habe ich erst viel zu spät gemerkt, dass ich das völlig falsche Netzwerk Shield habe :frowning: Also hab ich mir erst mal die richtige Libary von hier besorgt: Updated Arduino ENC28J60 Ethernet library available « Andy's Life

Dann das Webserver Beispiel auf den Arduino geladen und siehe da, er funktioniert. Jetzt würde ich aber gerne mal mit der DomoticHome App die LED an Port4 schalten können. Aber der Beispiel Code für den Webserver und der vom CodeGenerator erzeugte Code haben für mich überhaupt keine Ähnlichkeit. Ich brauch da mal einen Ansatzpunkt damit dieser Code auf dem DFRobot Ethernet Modul mit dem ENC28J60 läuft

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

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE };
byte ip[] = { 192 ,168 ,2 ,200 };
byte gateway[] = { 192 ,168 ,2 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
Server server(80);

String readString = String(30);


void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
delay(1000);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
Serial.begin(9600);
}

void loop(){
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30)
{
readString = readString + c;
}
if (c == '\n') {
Serial.print(readString);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();


if(readString.startsWith("GET /?out=4&status=1"))
{Serial.print("\n 4 HIGH \n");
digitalWrite(4, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(4);
client.print("\"}");
}
if(readString.startsWith("GET /?out=4&status=0"))
{Serial.print("\n 4 LOW \n");
digitalWrite(4, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(4);
client.print("\"}");
}


if(readString.startsWith("GET /?out=all"))
{
Serial.print("\n OUT ALL\n");
client.print("{\"ip\" : \"192.168.2.200\", ");
client.print("\"devices\" : ");
client.print("[{ \"type\" : \"light\", \"name\" : \"LED\", \"out\" : \"");
client.print("4");
client.print("\"}");
client.print("]}");
}
readString="";
client.stop();
}
}
}
}
}

VG
Knut

Hallo Knut,

Wäre mir neu dass DFRobot ein Ethernet Shield mit ENC28J60 hat - alle mir bekannten DFrobot Ethernet Shields arbeiten mit Wiznet W5100 Chip genau wie das original Arduino Ethernet Shield.

Also welches Shield hast du?

Viele Grüsse, Michi

Hi,

ich hatte auch erwartet, dass dieses Shield mit dem original Arduino Ethernet Shield kompatibel ist, aber leider lag ich da falsch. Ich habe das "DFRobot Ethernet Shield ENC28J60 für Arduino" von "Dave Lee" aus der Bucht: http://cgi.ebay.de/250816874117

Der Preis war super, die anderen Shields funktionieren wie erwartet und der Versand ging irre schnell (Freitag per Paypal bezahlt und am Samstag früh war das Päckchen da).

Wäre es nicht möglich, eine kompatible Libary für den ENC28J60 zu schreiben, damit der Code der für die "Ethernet.h" geschrieben wurde, auch auch mit dem anderen Chip läuft und man nur den Namen der Lib ändern müsste? Die ersten µC am LAN Projekte für die ich mich Interessiert habe, liefen damals auch mit diesem Chip (auch ATMEL) und soweit ich mich erinnern kann, hat der AVR Net-IO Bausatz von Pollin auch diesen Chip. D.h. das Wissen wie man das Teil anspricht sollte vorhanden sein.

Lange Rede kurzer Sinn, ich werde mir wohl mal das DFrobot Shield mit dem W5100 holen, dann hab ich auch gleich noch den SD-Karten Slot. Obwohl ich den wohl erst mal nicht gebrauchen kann.

Viele Grüße

Knut

xKnut: Wäre es nicht möglich, eine kompatible Libary für den ENC28J60 zu schreiben,

Ja, wäre, hat nur noch nie jemand gemacht :)

In diesem Thread ist einer, der gerade eine zur Standardlib kompatible Library entwickelt. Hab' ich sogar vor ein paar Wochen mal ausprobiert. Das sieht vielversprechend aus, ist aber noch lange nicht stable und kann bisher auch nur als Server aber nicht als Client verwendet werden (könnte also mit etwas Glück durchaus mit deinem Beispielsketch funktionieren).

Also das ist mal der absolute Knaller!

Zuerst habe ich den Simple LED Beispielcode getestet, funktioniert. Dann hab ich den DomoticHome Code vom Codegenerator genommen und was soll ich sagen, es funktioniert! Schnell noch die 4x Relaisplatine dran und ich kann 4 Verbraucher schalten. Unglaublich, wirklich fast Plug & Play :D

Super Forum, vielen Dank.

Gruß

Knut