Go Down

Topic: Netzwerksetup per Webinterface (Read 1 time) previous topic - next topic

edvler

Mar 29, 2013, 01:00 pm Last Edit: Apr 13, 2013, 04:42 pm by edvler Reason: 1
Hallo zusammen,

hatte bei meinen Aufbauten oft die Anforderung per Ethernetshield eine Netzwerkanbindung zu realisieren.
Leider ist es schwierig solche Projekte "Endbnutzerfreundlich" umzusetzen, da bereits beim Netzwerksetup wieder der Quellcode benötigt wird.

Da ich als Grundlage Webduino nutze, habe ich dafür ein Webinterface geschrieben mit welchem das Netzwerksetup erledigt werden kann. Die Einstellungen werden permanent im EEPROM gespeichert.

Außerdem sind dort noch Infos wie RAM Auslastung und Uptime zu finden.

Zu finden ist das Netzwerk Webinterface bereits im Webduino GitHub Repository.


Eine kurze Anleitung habe ich hier zusammengestellt: http://www.edvler-blog.de/arduino_networksetup_webinterface_with_eeprom/


Hier noch ein Bild der aktuellen Version


Ein Nachteil ist, dass ein solches Webinterface natürlich viel FLASH Speicher benötigt und auch der SRAM stark beansprucht wird. Ich nutze daher grundsätzlich einen MEGA 2560 wenn ich das Webinterface nutze!

Grüße
EDVler

uwefed

Etwas was ich nicht ganz verstehe.
Du stellst über LAN die LAN-Parameter der Ethernetkarte ein. Wie bekommst Du Kontakt zum Arduino wenn dieser fürs LAN noch nicht richtig eingestellt ist.
Grüße Uwe

mkl0815

Vermutlich gibt es wie bei jedem anderen Gerät das man z.B. kauft eine default Einstellung. Die meisten Router verwenden z.B. 192.168.1.1, bei den AVM Fritzboxen ist das Default-Netz das 192.168.178.0/24.

edvler

Im Code gibt es eine default Section.
Dort kann man die Standard IP-Adresse, Subnet, Gateway etc. hinterlegen.

Findet der Arduino beim starten keine Config so zieht er die im Code definierten default Einstellungen.
Alternativ gibt es die Möglichkeit einen Reset Button anzuschließen. Wird dieser beim einschalten gedrückt, werden ebenfalls die default Einstellungen herangezogen.

Bei meinen "Geräten" habe ich einen Reset-Schalter angebracht und dort die default IP und das Subnet vermerkt mit Etikett.
So kann jeder nach einem Reset sich auf das Webinterface verbinden und dort seine IP Adresse hinterlegen.

Grüße
EDVler

tao13

Hi.
Can you modify it to works on arduino 1.6.5?
Many thanks

Doc_Arduino

Hallo,

das ist ja richtig cool.

Kann man die Weboberfläche auch so umbauen, dass man andere Dinge einstellen kann und mit Bluetooth statt LAN?

Ich hab es zur Zeit bei mir so. Ich sende vom Smartphone aus über eine Terminalprogramm eingetippte Befehle über Bluetooth zu meinem Arduino. Die Daten wie zum Bsp. Weckuhrzeiten werden auch im EEprom gespeichert.

Kann man das auch mit einer Weboberfläche machen und über Bluetooth oder geht das überhaupt nicht?
Dann könnte ich meine eingestellten Weckzeiten
a) übersichtlicher anschauen und
b) bequemer ändern


Tschau
Doc Arduino '\0'

qualidat

Ich habe etwas ähnliches gemacht, nutze aber eine App auf dem Laptop und die USB/Serial-Verbindung zur Parametrierung. Damit kann ich zwar nicht aus der Ferne zugreifen, aber zum Einrichten vor Ort beim Kunden reicht es - auch ohne Quellcode.

Wird das serielle Interface für die eigentliche Anwendung benötigt, schalte ich den Arduino per Tastendruck (an einem Pin) nach dem Reset in den "config mode".

Noch einen Hinweis zur Netzwerk-Konfiguration: Inzwischen kann die Ethernet-Lib ja auch DHCP, d.h. man muss den nicht konfigurierten Arduino im Netz einfach mit einem IP-Scanner suchen und anhand seiner MAC-Adresse herausfinden. Hat der Arduino ein Display, kann man selbstverständlich dort die IP anzeigen und muss nicht suchen ...  :)

Serenifly

Mit einem GUI Programm kann man das auch so machen, dass die Art der Verbindung egal ist. Die Schnittstelle zwischen Oberfläche und Kommunikations-Ebene kann über eine Klasse erfolgen die nur virtuelle Methoden enthält. Diese überschreibt man dann in abgeleitenden Klassen die z.B. Ethernet oder eine serielle Schnittstelle implementieren. Dann kann man die Kommunikationsklasse austauschen ohne dass sich was größeres am GUI ändert.

Go Up