beelogger

Ethernet-Adapter (WIZnet W5100)

Um die Verbindung vom Arduino zum Webserver herzustellen, wird ein Netzwerkadapter benötigt. Besteht über LAN kein direkter Zugang zum Internet, ist auch eine zusätzliche Anbindung über einen WLAN-Router im Client Mode oder mit einem Master-Client-System über Funk (RF433 oder nRF24L01) möglich, wodurch man sich teure WLAN-Adapter für den Arduino spart. Es gibt zwei gebräuchliche Chips für LAN-Adapter für den Arduino:

  • W5100
  • ENC28J60

Im Internet sind viele Beiträge über die Unterschiede dieser beiden Adapter zu finden, worauf hier aber nicht näher eingegangen wird. Da der WIZnet W5100 über eine Arduino-Standard-Library bereits integriert, gut dokumentiert und nur unwesentlich teurer als der  ENC28J60 ist, bezieht sich der Programmcode für den beelogger auf Adapter mit diesem Chip.

Bezug

Den W5100 gibt es als Shield beispielsweise für den Arduino Uno oder als Board. Das Ethernet-Board ist relativ klein und kann somit gut verbaut werden. Leider scheinen alle am Markt befindlichen Boards auf dem gleichen Schaltplan zu basieren. Dieser Schaltplan sieht vor, dass die SPI-Kommunikation ständig aktiv ist, wodurch es erstmal nicht möglich ist, weitere SPI-Geräte am gleichen Arduino zu betreiben. Um den zusätzlichen Einsatz eines nRF24L01 zu ermöglichen (für den Master bei Verwendung des Programmcodes ‘beelogger nRF24L01’), muss als Workaround die MISO-Leitung zum Ethernet-Adapter, während dieser nicht benötigt wird, unterbrochen werden. Die Platine beelogger-EasyPlug hat hierfür einen Schalter in Form eines IC vorgesehen, womit man sich um diese Steuerung keine Gedanken machen muss. Bei aktuellen Ethernet-Shields besteht dieses Problem nicht, da sie die SPI-Kommunikation direkt am W5100 deaktivieren können.

 Das WIZnet W5100-Board ist kompatibel mit beelogger-EasyPlug !
 Bild Bezugsquelle Preis ab Suchbegriffe* Bemerkungen
 beelogger W5100 Adapter eBay 5,80€ Arduino Ethernet LAN Network W5100 WIZnet Board
 beelogger W5100 Shield eBay 5,90€ Arduino Ethernet LAN Network W5100 WizNet Shield Shield für Arduino Uno

*Einkaufstipps

Beschaltung

Sofern kein kompatibles Shield zum Aufstecken verwendet wird, sind folgende Verbindungen vorzunehmen.

Arduino Uno, Nano, usw. W5100
3,3V / 5V (abhängig vom Board) VCC
GND GND
RESET RESET
D10 / SS CS / SS /NSS
D11 / MOSI MOSI
D12 / MISO MISO
D13 / SCK SCK

Libraries

<SPI.h> – in der Arduino-Software bereits integriert
<Ethernet.h> – in der Arduino-Software bereits integriert

Test-Programmcode

beelogger W5100 TestDer Test-Programmcode setzt voraus, dass der Webserver erfolgreich aufgesetzt und vom LAN-Adapter physikalisch zu erreichen ist. Bei Erfolg wird alle 10 Sekunden ein Datensatz an den Webserver gesendet und in der Datei ‘beelogger.csv’ gespeichert. Nach jedem Versand werden die Werte der Variablen um 1 erhöht.

Der Programmcode arbeitet mit einer Checksumme zur Fehlerkorrektur, womit auf dem Webserver die Integrität der empfangenen Daten geprüft und der Arduino bei einem Fehler dazu veranlasst wird, die Daten erneut zu senden. Bei korrupten Daten, die vom Webserver empfangen werden oder bei Verbindungsproblemen, sind vier Wiederholungen eingestellt.

Im Programmcode kann zudem eingestellt werden, ob der Ethernet-Adapter seine Konfiguration über DHCP bezieht oder ob die eingestellten Werte der eigenen Konfiguration verwendet werden. Hierzu ist eine der beiden Optionen auszukommentieren. Als Standard ist der Bezug der Konfiguration über DHCP aktiviert. Durch die Auskommentierung der DHCP-Funktion und Aktivierung der eigenen Konfiguration, werden über 3kB Speicherplatz auf dem Arduino eingespart!

Zur Programmierung darf der Ethernetadapter nicht mit dem Arduino verbunden sein.

Konfiguration über DHCP:

Konfiguration über eingestellte Werte der allgemeinen Konfiguration:

Ausgabe des seriellen Monitors (9600 baud):

Programmcode downloaden:

Download

Der komplette Programmcode für den Arduino Datenlogger mit Stockwaage für Imker ist unter Programmcode zu finden.