Arduino ins Netz bringen

Arduino kann durch Shields erweitert werden. Dabei handelt es sich um weitere Boards, die auf das eigentliche Arduino Duemilanove Board aufgesteckt werden und seine Funktionalität erweitern. Um Arduino im Netzwerk verfügbar zu machen, kann man das Arduino Ethernet Shield einsetzen.

Es bietet eine Anschlussmöglichkeit für RJ45 Stecker und wird durch Aufstecken mit dem Arduino Board verbunden. Die Digital Pins 10, 11, 12 und 13 werden zur Kommunikation zwischen Arduino Board und dem Ethernet Shield verwendet; sie können daher nicht mehr für andere Aufgaben verwendet werden. Auf dem Arduino Board vorhandene LEDs und der Reset Taster befinden sich ebenfalls auf dem Ethernet Shield, so dass man diese problemlos betrachten bzw. betätigen kann.

Der auf dem Board integrierte Chip bietet ein IP Stack, das TCP und UDP kompatibel ist. Mit Hilfe der Ethernet Library können eingehende Verbindungen angenommen und Verbindungen aufgebaut werden. Bis zu vier gleichzeitige Verbindungen unterstützt das Ethernet Shield.

Die Anbindung des Arduino Boards an das Netzwerk bietet ein großes Potential. Mit ein wenig Konfiguration wäre es sogar möglich, Arduino nicht nur im lokalen Netzwerk, sondern im Internet verfügbar zu machen.

Ein passendes Einstiegsprojekt zum ersten Testen des Ethernet Shields kann beispielsweise ein kleiner “Webserver” sein. Mit Hilfe des folgenden Beispielcodes wird ein Webserver realisiert, der nach Aufruf der Arduino IP (hier 192.168.0.99) im Browser eine Website zurückgibt. Vorraussetzung ist, dass das Ethernet Shield auf das Arduino Board aufgesteckt ist und mit dem Netzwerk verbunden ist.

#include <Ethernet.h>

/* Mats-Vanselow.de

Lizenz (Deutsch): creative commons Namensnennung - Keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported - http://creativecommons.org/licenses/by-nc-sa/3.0/deed.de
Bei Verwendung und Weitergabe des Quellcodes muss ein Verweis auf den Autor und die Webseite erfolgen. In Begleitdokumentationen ist ebenfalls in angemessener Weise dieser Verweis anzubringen.

License (English): creative commons Attribution-Noncommercial-Share Alike 3.0 Unported - http://creativecommons.org/licenses/by-nc-sa/3.0/
When using and distributing this source code a reference to the author and the web page must take place. In accompanying documents this reference must also be attached.

Code by Mats Vanselow - http://www.mats-vanselow.de

*/

byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };           // MAC Adresse des Arduino Boards
byte ip[] = {
  192, 168, 0, 99 };                              // IP Adresse des Arduino Boards
//byte gateway[] = { 10, 0, 0, 1 };               // Gateway (optional)
//byte subnet[] = { 255, 255, 0, 0 };             // Subnet Maske (optional)
Server server = Server(80);                       // Port Einstellung (Standard 80)

void setup() {
  Ethernet.begin(mac, ip);//, gateway, subnet);   // Ethernet initialisieren
  server.begin();                                 // Auf Clients warten
}

void loop() {
  Client client = server.available();             // Pr&uuml;fen, ob Client Seite aufruft
  if (client) {                                   // Seitenaufruf durch User
    server.print("HTTP/1.0 200 OK\r\nServer: arduino\r\nContent-Type: text/html\r\n\r\n");
    server.print("<HTML><HEAD><TITLE>");
    server.print("Arduino Board");
    server.print("</TITLE>");
    server.print("</HEAD><BODY>");
    server.print("<b>Hello World!</b><br />");
    server.print("Arduino runs for ");
    server.print(millis());
    server.print(" ms.</BODY></HTML>");
    delay(10);                                    // Kurz warten, um Daten zu senden
    client.stop();                                // Verbindung mit dem Client trennen
  }
}

Auf Basis dieses sehr einfach gehaltenen Webservers können jetzt Funktionen wie das Schalten der Ausgänge oder auch das Auslesen der Eingänge des Arduino Boards per Browser realisiert werden.

© Mats Vanselow - Impressum / Datenschutzerklärung