Kann ich über das Ethernet-Shield programmieren

Hallo Arduino Gemeinde,

im Rahmen einer Projektarbeit sollen wir versuchen einen Mikrokontroller via Ethernet-Schnittstelle auszulesen, aber auch zu programmieren.

Es sollen Sensoren “ausgelesen” werden.
Passen die Sensor-Werte nicht zu den Vorgaben so soll Beispielsweise ein Relais ein oder ausgeschaltet werden.

Weiterhin soll es möglich sein Vorgaben oder Programme via Ethernet-Verbindung zu ändern.

Beispiel:
Lies Temperatur an A0…
Wenn Temp. > 23°C schalte A5…
Wenn Temp. < 19°C schalte A4…

Derzeit wird all das über ein Bedienteil mit Serieller Schnittstelle gemacht es beschreibt einen ATmega16 und liest anschließend die Werte.
Passt ein Wert nicht wird der ATmega neu beschrieben.

Die Firma möchte von der seriellen Verbindung weg zu Ethernet.

Auslesen und beschreiben per USB - kein Problem.
Auslesen via Ethernet mit Hilfe Webserver - kein Problem
Programieren ATmega2560 via Ethernet-Shield - großes Problem

Wir können dazu aber nichts im Netz finden.

Könt ihr uns helfen???

Nimm einen ESP. Mach ota. Hausübung gelöst.

Ui... das ging schnell.

leider sind wir keine Profis.

Was ist ESP und OTA???

Wenn ich nach ESP suche finde ich eine Anleitung zum Firmwareupdate bei einem Arduino UNO Wifi...

Zu unserer Hardware und Software:

ATMega 2560 R3
Ethernet-Shield w5100

Arduino 1.8.3 (mitgelieferte Software)

Okay,

kaum sucht man richtig... :sweat_smile:

Leider soll das ganze Kabelgebunden bleiben.
Somit scheidet Wifi aus!

Soweit mir bekannt gibt es keinen Ethernet fähigen Bootloader für Arduinos.

Damit ist der kurze Weg gestorben.

Der lange Weg:

  1. Einen Bootloader auf den Arduino, welcher sich aus einem I2C/SPI Flash,EEPROM,FRAM sein neues Programm saugen kann.
  2. Ein Programm auf den Arduino, welches das genannte I2C/SPI Flash,EEPROM,FRAM über Ethernet mit dem neuen Programm bespielen kann.

Warum müsst ihr denn den Mega über Ethernet neu programmieren ?

Wenn ihr nur Konfigurationswerte ändern müsst, braucht ihr den doch nicht neu zu programmieren.

Beschreibe doch noch mal genauer, was passieren soll.

Ich hab mal eine Anleitung in einer Zeitschrift gefunden. Darin wurde beschrieben wei man über Linux einen Ausgang auf HIGH setzt. Dazu haben sie auf den Arduino einen neuen Sketch hochgeladen.

Ja, es geht, daß man aber jeden Zweifel aus der Welt schaft, daß man von Infrmatik und Technik rein gar nichts verstanden hat ist ein netter Nebeneffekt.

Auch ich denke wie HotSystems daß die Frage aus einem riesen Verständnisproblem heraus gestellt wurde. Man kann dem Arduino über irgendeine Schnittstelle (auch Ethernet) eine Anfrage schicken und dieser antwortet mit einem Meßwert oder was immer man will. Dazu ist es nicht nötig den Sketch zu verändern.

Grüße Uwe

Dazu ist es nicht nötig den Sketch zu verändern.

Spätestens, wenn man ein zusätzliches Feature des Arduinos nutzen möchte, muss man es erst in der Firmware des Arduinos verankern.

Ich kann das Ansinnen des TEs nachvollziehen.

Alternativ:
Ein Forth System auf dem Arduino unter bringen, dann kann man das Programm zur Laufzeit verändern.

Davon gibt es ja richtig viele verschiedene. Danke für den Anstoß.

Gruß Tommy

Hallo,

Ich hab da schon einwenig zu dem Thema gefunden. Das Problem ist das einfügen der links wenn man Mobil ist.

Suche nach TFTP Bootloader.

Hier und noch ein Englischer Thread.

lg dony

Da fallen mir 2 Möglichkeiten ein.

  1. Jomelo hatte mal was gepostet, wie man über den Raspberry das hex File schicken kann.

  2. Der rs485 bootloader Dude..... macht es über den Mega mit einem Ethernet Shield. Das hex File liegt in dem Fall auf der SD von dem Mega.

Okay... Okay...

Ich sehe das es ne Ihr euch ne Menge Gedanken für uns gemacht habt. Dafür schon mal vielen, vielen Dank.

Um die Frage von HotSystems zu beantworten...:

Die Firma, mit welcher wir das Projekt machen, beliefert und oder betreut hauptsächlich Bäckereien.

Auszug aus dem Kick-Off Meeting:

Ziel des Projektes soll es sein, ein bestehendes Relaisteil (Platine) zu erweitern.
Dazu muss ein Hardwareprototyp, bestehend aus Mikrokontroller und einer Testplatine, entwickelt und erprobt werden. Anschließend soll versucht werden, eine Kommunikation zwischen HMI (Bedienteil) und der „neuen“ Hardware über die Ethernet-Schnittstelle mittels TCP-Protokoll herzustellen sowie die Programmierung über USB- oder Ethernet - Schnittstelle zu realisieren.

Es existiert derzeit ein Relaisteil welches mittels eines Mikroprozessors ATmega 16-16AU gesteuert wird.
Auf dem Mikroprozessor läuft nur die Logik zur Erfassung der Sensorik und Ansteuerung der Akteure.
Um die Anlagen steuern zu können muss derzeit ein Bedienteil mit einem Linux Betriebssystem via serieller Schnittstelle angeschlossen sein.
Über dieses Bedienteil werden alle Programme gesteuert und die Abläufe geregelt.
Bei Ausfall des Bedienteils ist die Anlage nur bedingt lauffähig.

Nun möchte die Firma wie schon im Text erwähnt das ganze dann per USB und Ethernet realisieren.

Ich hoffe ihr könnt damit was anfangen...???

Benny19814:
Auszug aus dem Kick-Off Meeting:

Ziel des Projektes soll es sein, ein bestehendes Relaisteil (Platine) zu erweitern.
Dazu muss ein Hardwareprototyp, bestehend aus Mikrokontroller und einer Testplatine, entwickelt und erprobt werden.Anschließend soll versucht werden, eine Kommunikation zwischen HMI (Bedienteil) und der „neuen“ Hardware über die Ethernet-Schnittstelle mittels TCP-Protokoll herzustellen sowie die Programmierung über USB- oder Ethernet - Schnittstelle zu realisieren.

Programmierung über USB ist kein Problem. Das ist Arduino-Standard. Da im Pflichten Heft steht, reicht eins von beidem?

Die andere Frage ist, müssen wirklich neue Sketche über Ethernet aufgespielt werden oder wird hier Programmierung im Sinne von Konfiguration verwendet?

Niemand eine Idee?

Ideen hast Du doch schon eine ganze Menge bekommen. Auch Fragen wurden Dir gestellt, deren Antwort noch aussteht.

Ich denke, nun bist Du wieder dran oder wartest Du darauf, die Lösung präsentiert zu bekommen.

Gruß Tommy