Arduino Ethernet grundlegende Fragen?

Hallo,
ich hab mal einige Fragen zum Arduino Ethernet.

  1. Der Arduino lässt sich, wen ich es richtig verstehe, als Webserver nutzen.
    Kann dieser auch Php verwenden, oder Cgi.
  2. Kann man ihn über Isp mit der Arduino Ide verwenden.
    Hatt ja keinen Intigrierten Ftdi-Chip.
  3. Muss man das Ethernet Kabel an einen Router schließen oder an den Pc.
    Router wer schlecht, hab nur einen Internetstick :stuck_out_tongue:
  4. Lässt sich die Ip-Adresse verändern?
    Das wäre ganz praktisch.

Danke für Antworten
Addi

hi,

1, CGI im weitesten sinn, ja. Du kannst webseiten auf dem arduino dynamisch generieren, je nachdem,. welche requests mit welchen GET/POST-variablen vom client kommen. aber das mußt Du selbst programmieren, abkürzungen wie PHP gibt's meines wissens nicht.

2, dazu findest Du anleitungen hier im forum und sicher auch im playground.

3, kannst Du an den PC anschließen, aber nimm ein crossover-netzwerkkabel. kann auch mit normalem gehen, muß aber nicht. probieren kannst ja...

5, ja, die ip-adresse definierst Du genauso wie die subnet-mask und die mac-adresse im sketch.

gruß stefan

Hallo Addi,

zu 1) ich würde einfach mal nein sagen. Grund: Auf den Webserver muss auch die Applikation von PHP oder CGI laufen und das könnte vielleicht ein Speicher- und Geschwindigkeitsproblem geben.
Vielleicht hat ja noch ein anderer User eine andere Meinung.
zu 2) ebenfalls ein nein. Auch als InternetServiceProvider braucht man Unmengen von Speicher
zu 3) besser wäre es, wenn das LAN-Kabel an den Router käme, zumal braucht dann die Kiste nicht ständig mitzulaufen. Man kann aber auch eine Verbindung über einen PC "durchrosten"
zu 4) die IP lässt sich natürlich ändern

Gruß Gerd

PS ....bin wohl ein wenig zu spät gekommen

hi,

mit ISP ist hier wohl nicht internet service provider gemeint.
cgi mehr oder weniger schon, weil der arduino ein- und ausgabekanäle zur verfügung stellt und meines wissens auch ein paar umgebungsvariablen, damit wäre die definition laut wikipedia erfüllt. aber ich glaube, das meint addi ja garnicht, müßig zu diskutieren, was nun CGI genau sei.
was man kann, ist requests an den webserver schicken (per GET oder POST), und der verhält sich dann je nach programmierung dementsprechend. er schaltet zb. ausgänge des arduino. außerdem kann er als antwort auch eine dynamisch generierte webseite schicken. er ist also durchaus nicht statisch und kann eben nicht nur eine vorher fix geschriebene seite zur verfügung stellen, wie das vor cgi war.

gruß stefan

CGI geht nicht, der Arduino hat genau genommen nicht mal einen Webserver, auch den musst Du selbst implementieren. Es nimmt Dir also niemand ab, die Request-Line und/oder die Header der HTTP-Anfrage selbst zu parsen und entsprechend darauf zu reagieren. CGI heisst, der Server analysiert die Anfrage selbst und ruft dann ein separates Programm auf, das die Anfrage beantworten soll. Die Parameter-Übergabe geschieht über Umgebungsvariablen. Der Arduino hat kein Betriebssystem und kennt somit auch keine Umgebungsvariablen, schon gar keine Prozesse. Eine Mikrokontroller-Plattform ist nun mal nicht mit einem ausgewachsenen PC vergleichbar, auf dem ein Multitasking-OS läuft.

Wenn Du die Einfachheit einer Serverplattform im Embedded-Bereich haben willst, wähle eine der zahlreichen Linux-Plattformen, dort kannst Du je nach RAM-Kapazität sogar so Sachen wie PHP laufen lassen.

PHP braucht einen Interpreter/pharser und den gibt es nicht für Arduino. Was willst Du mit 2KByte/8kByte Ram schon großes zwischenspeichern?
Grüße Uwe

Für das was man da so plant wäre es zum Beispiel möglich ein raspberry pi mit anzudocken, da kann man seriell einlesen und einen echten Server laufen lassen. Ist eh günstiger als das dann frei werdende Shield. Bedauerlicherweise sind die Leute bei der Lieferung ein wenig im Rückstand :wink:

hi,

genau diese dikussion, was cgi nun ist, wollte ich vermeiden. das hilft nicht weiter. und was er plant, wissen wir ja nicht. was geht, hab' ich gesagt, für alles andere müssten wir mehr infos haben, was addi machen will.

gruß stefan

Soll eine kleine Hausautomatisierung werden,
welche per Internet,z.B. vom Handy, bedient werden kann.
Mit Isp meinte ich die Schittstelle am Arduino,
kann der Arduino also direkt aus der Ide(1.0.1) programmiert werden.
Ich dachte da an diesen :
www.conrad.de/ce/de/product/191406/USB-Programmer-mySmartUSB-light/SHOP_AREA_29142&promotionareaSearchDetail=005

Würd dies gehen,
oder ist das zusammen nur Geldverschwendung

Addi

Ein ISP ist meiner Meinung nach keine Geldverschwendung, die Vorteile gerade bei Benutzung des Arduino Ethernet liegen ja auf der Hand: Zum einen musst du keinen weiteren Programmieradapter kaufen, der in ähnlichen Preisregionen wie der ISP liegt. Der Hauptvorteil aber ist, dass du mit ISP auch nicht auf den Bootloader angewiesen bist, dass spart nicht nur Speicherplatz, der Mikrocontroller startet auch schneller. Das liegt daran, dass der Bootloader einige Augenblicke am UART lauscht, ob ein neuer Sketch aufgespielt werden soll.

Da gabs mal Probleme mit diesem ISP, ob sie nun der Vergangenheit angehören, kann ich dir nicht beantworten: http://arduino.cc/forum/index.php/topic,30069.0.html

hallo, addi

genau so eine kleine hausautomatisierung hab' ich. einstweilen schalte ich die 26 led-lampen im wohnzimmer über eine webseite, da soll dann noch mehr dazukommen (andere zimmer, raffstores, wenn die neuen fenster da sind, heizung usw.). sowas ist problemlos möglich...

gruß stefan

Zu dem Isp:
welche Einstellung müsste ich da in der Ide verwenden?
(Unter Tools->Programmer)

Addi

Wie im Link beschrieben, solltest u die Datei programmers.txt um folgende Zeilen ergänzen:

mySmartUSB.name=mySmartUSB
mySmartUSB.protocol=stk500v2
mySmartUSB.communication=serial

Das erzeugt in der IDE unter Programmers einen neuen Eintrag mySmartUSB, den du dann wählen kannst.