Hallo zusammen,
ich verwende einen NodeMCU ESP8266 mit einem AZDelivery W5500 im LAN und
einen Temperatursensor DS18B20. Der ESP kann sich ins LAN einwählen und
ich kann auf dem Browser die Daten sehen.
Leider stürzt der ESP nach einiger Zeit (unterschiedlich bis zu 1,5
Stunden) ab und ist nicht mehr ansprechbar. Auch nach löschen des
„Refresh“ stürzt er irgendwann ab. Ich habe bereits mehrere W5500 und
ESPs ausprobiert. Ich habe das Shield auch zur Überprüfung über ein
externes Netzteil versorgt. Ich habe alles verlötet,… hat aber nichts
gebracht. Nur ein Reset behebt das Problem und der ESP startet wieder
bis er irgendwann wieder nicht mehr ansprechbar ist.
Ich habe heute festgestellt, dass der ESP wesentlich länger ansprechbar
ist, wenn ich die Baudrate von 9600 auf 115200 erhöhe.
Ich möchte anmerken, dass ich kein Programmierprofi bin und bitte euch
um Nachsicht 😊, wenn ich irgendeinen Blödsinn in den Code eingetragen
habe.
Gruß
Stefan
1
#include <SPI.h>
2
#include <Ethernet.h>
3
#include <OneWire.h>
4
#include <DallasTemperature.h>
5
6
// Der PIN D2 (GPIO 4) wird als BUS-Pin verwendet
7
#define ONE_WIRE_BUS 4
8
9
OneWire oneWire(ONE_WIRE_BUS);
10
DallasTemperature DS18B20(&oneWire);
11
12
13
// Enter a MAC address and IP address for your controller below.
14
// The IP address will be dependent on your local network:
15
#if defined(WIZ550io_WITH_MACADDRESS) // Use assigned MAC address of WIZ550io
Stefan schrieb:> Ich möchte anmerken, dass ich kein Programmierprofi bin
Ich möchte anmerken, dass du vermutlich auch kein Hardware-
profi bist. An Versorgung und Aufbau solcher Schaltungen
sind schon viele gescheitert.
Also ohne detailliert zu zeigen wie du verschaltet, aufgebaut
und versorgt hast wird man dir hier nicht weiterhelfen können.
Stefan schrieb:> mit einem AZDelivery W5500
Was soll das genau sein? Es gibt mindestens zwei AZDelivery
Module wo ein W5500 drauf ist.
Stefan schrieb:> AZDelivery W5500
Ist das wider mal ein versuch dieser bude gratiswerbung zu machen?
Nicht das erste mal! Deshalb kauf ich dort nie was.
Warum braucht ein esp8266 einen kabel ethernet controller?
Doppelt gemoppelt hält besser oder was?
Mach das über WiFi dann geht das auch.
OMG schrieb:> Stefan schrieb:>> Ich möchte anmerken, dass ich kein Programmierprofi bin>> Ich möchte anmerken, dass du vermutlich auch kein Hardware-> profi bist. An Versorgung und Aufbau solcher Schaltungen> sind schon viele gescheitert.>> Also ohne detailliert zu zeigen wie du verschaltet, aufgebaut> und versorgt hast wird man dir hier nicht weiterhelfen können.>> Stefan schrieb:>> mit einem AZDelivery W5500>> Was soll das genau sein? Es gibt mindestens zwei AZDelivery> Module wo ein W5500 drauf ist.
Ich habe vor 30 Jahren einen Abschluss in Elektronik gemacht und kann
gerne auf deine Bemerkungen verzichten. Wenn du mir nicht helfen willst,
lass es einfach, aber werde hier nicht persönlich bitte.
PS: laut AZDelivery-Seite gibt es einen W5500https://www.az-delivery.de/products/w5500-ethernet-netzwerk-internet-modul-fuer-arduino
Alt G. schrieb:> Stefan schrieb:>> AZDelivery W5500>> Ist das wider mal ein versuch dieser bude gratiswerbung zu machen?> Nicht das erste mal! Deshalb kauf ich dort nie was.>> Warum braucht ein esp8266 einen kabel ethernet controller?> Doppelt gemoppelt hält besser oder was?>> Mach das über WiFi dann geht das auch.
Warum wird man hier in diesem Forum beim ersten Versuch um Hilfe zu
bitten so angefeindet.
Es soll ja nicht dein Problem sein, warum ich das gerne realisieren
möchte, oder? Ich werde schon meine Gründe haben, sonst hätte ich nicht
gefragt.
Unfassbar, was hier für ein Ton herrscht.
Habe zwar keine Ahnung davon, aber das while Client connected kommt mir
ein bisschen komisch vor, theoretisch schmeißt der den Loop bei nem
delay von 1 ziemlich oft..
Stefan schrieb:>> Mach das über WiFi dann geht das auch.>> Warum wird man hier in diesem Forum beim ersten Versuch um Hilfe zu> bitten so angefeindet.
Das ist keine Anfeindung, sondern ein durchaus sinnvoller Ratschlag.
Warum man zum simplen Auslesen eines Temperaturfühler neben der ohnehin
vorhandenen WLAN-Schnittstelle eine Kabel-gebundene braucht, erschließt
sich wohl kaum jemanden ausser dir.
Selbst "wenn" wegen WLAN-Problemen mal ein Report verloren geht, ist das
kein Beinbruch. Der ESP reconnected sich irgendwann wieder.
Und btw.: OMGs Beitrag ist auch nicht unbegründet.
Viele (auch welche, die das mal gelernt haben) scheitern an der doch
recht anspruchsvollen Stromversorgung bei einem ESP8266.
"Unerklärliche Abstürze" sind dann meist die Folge...
Harry L. schrieb:> Viele (auch welche, die das mal gelernt haben) scheitern an der doch> recht anspruchsvollen Stromversorgung bei einem ESP8266.
Dagegen ist leider kein Kraut gewachsen (klingt ein bisschen
nach Beratungsresistenz):
Stefan schrieb:> Ich habe vor 30 Jahren einen Abschluss in Elektronik gemacht und kann> gerne auf deine Bemerkungen verzichten.
Stürzt das Teil auch ab, wenn ein total anderes Programm darauf läuft?
Irgendetwas harmloses, ohne Serial und Ethernet?
Oder ist wirklich exakt das Programm Schuld an den Abstürzen?
Ich hatte auch mal eine CPU, die zuverlässig nach 15 Minuten abgestürzt
ist.
Auch ein paar Raspis hatten ein ähnliches Problem. Nachdem ich einen
Kühlkörper darauf montiert hatte, laufen die Geräte nun jahrelang.
PittyJ schrieb:> Nachdem ich einen> Kühlkörper darauf montiert hatte, laufen die Geräte nun jahrelang.
Ich sag ja immer ;) Meine 10 Euro für das Laser-Thermometer waren eine
gute Investition. ;)
Ich würde auch mal den Input-Strom nachmessen.
Harry L. schrieb:>> Warum man zum simplen Auslesen eines Temperaturfühler neben der ohnehin> vorhandenen WLAN-Schnittstelle eine Kabel-gebundene braucht, erschließt> sich wohl kaum jemanden ausser dir.>
... wenn man in einem Poolschacht im Boden mit Betonwänden kein Wlan
hat, nicht extra dafür einen AP hinstellen möchte und es zufällig für
die Steuerung der Anlage bereits ein LAN-Kabel gibt.
Sollte aber für die gestellte Frage auch unerheblich sein, da ich mir im
Vorfeld natürlich auch Gedanken gemacht habe.
Michael D. schrieb:> Stefan schrieb:>> Serial.write(c);>> kommentiere diese Zeile mal aus.>> Michael
Hallo Michael,
dein Rat dürfte funktionieren. Das Teil läuft jetzt seit ca 22:00 Uhr
ohne Absturz. Dürft ich dich Fragen, wieso Serial.write(c); dieses
Problem verursacht?
Vielen Dank!
Gruß
Stefan
Harry L. schrieb:> Viele (auch welche, die das mal gelernt haben) scheitern an der doch> recht anspruchsvollen Stromversorgung bei einem ESP8266.
Die meisten davon haben Probleme, weil das WLAN senden so viel Strom
benötigt und die Peaks im Strom sehr steil sind. Die Frage ist, wie viel
Strom das Ethernet benötigt.
Michael
PittyJ schrieb:> Stürzt das Teil auch ab, wenn ein total anderes Programm darauf läuft?> Irgendetwas harmloses, ohne Serial und Ethernet?> Oder ist wirklich exakt das Programm Schuld an den Abstürzen?>> Ich hatte auch mal eine CPU, die zuverlässig nach 15 Minuten abgestürzt> ist.> Auch ein paar Raspis hatten ein ähnliches Problem. Nachdem ich einen> Kühlkörper darauf montiert hatte, laufen die Geräte nun jahrelang.
Die ESP, die ich getestet habe, haben mit anderen Programmen und ohne
W5500 problemlos funktioniert. Die Wärmeentwicklung schließe ich aus, da
sowohl der ESP als auch der W5500 nur warm sind. Ich denke, dass Michael
das Problem behoben hat. Es dürfte definitiv am Code liegen.
Stefan schrieb:> dein Rat dürfte funktionieren. Das Teil läuft jetzt seit ca 22:00 Uhr> ohne Absturz. Dürft ich dich Fragen, wieso Serial.write(c); dieses> Problem verursacht?
Wenn Daten per Ethernet schneller reinkommen als du sie per serieller
Schnittstelle ausgeben kannst, dann ist irgendwann der Sendepuffer voll.
Entweder Serial.write() blockiert bis der Puffer wieder geleert ist,
dann hättest du eine lange Wartezeit in der Schleife, was zu einem
Timeout führen kann.
Oder die zu sendenden Daten werden verworfen.
Zum Debuggen sind solche Konstrukte hilfreich, aber im Betrieb können
sie eben Probleme machen.
Michael
Michael D. schrieb:> Harry L. schrieb:>>> Viele (auch welche, die das mal gelernt haben) scheitern an der doch>> recht anspruchsvollen Stromversorgung bei einem ESP8266.>> Die meisten davon haben Probleme, weil das WLAN senden so viel Strom> benötigt und die Peaks im Strom sehr steil sind. Die Frage ist, wie viel> Strom das Ethernet benötigt.>> Michael
dann dürfte das Shield bereits intern Probleme mit dem hohen Strom
haben, da ich den W5500 mit einem separaten und leistungsfähigen
Netzteil mit 5V betrieben habe.
Michael D. schrieb:> Stefan schrieb:>> dein Rat dürfte funktionieren. Das Teil läuft jetzt seit ca 22:00 Uhr>> ohne Absturz. Dürft ich dich Fragen, wieso Serial.write(c); dieses>> Problem verursacht?>> Wenn Daten per Ethernet schneller reinkommen als du sie per serieller> Schnittstelle ausgeben kannst, dann ist irgendwann der Sendepuffer voll.> Entweder Serial.write() blockiert bis der Puffer wieder geleert ist,> dann hättest du eine lange Wartezeit in der Schleife, was zu einem> Timeout führen kann.>> Oder die zu sendenden Daten werden verworfen.>> Zum Debuggen sind solche Konstrukte hilfreich, aber im Betrieb können> sie eben Probleme machen.>> Michael
Super, vielen Dank für deine Hilfe!
Gruß
Stefan
Serial.write() blockiert also tatsächlich. Daher hängt es auch von der
Baudrate ab, wie oft/schnell das Problem auftritt.
Flowcontrol ist ein lustiges Problem und nicht einfach zu lösen, da dies
viel mit Pufferhandling und Timeouts zu tun hat.
Michael
ich denke das Serial.write ist vielleicht nicht direkt das problem..
Die Ursache ist der loop an sich, das Serial.Write bei der eingestellten
Baudrate nicht die Daten los wird. Aber woher kommen die Daten und wieso
sind das soviele ;)
Ich halte den Loop auf den ersten Blick in der umsetzung für unsinnig.
Stefan schrieb:> Warum wird man hier in diesem Forum beim ersten Versuch um Hilfe zu> bitten so angefeindet.
Weil die Leute gereizt sind.
Mietwucher, (zu viel) Einwanderung, Fachkräftemangel, Corona,
Chipmangel, Krieg, Energiekriese, Inflation, kein Klopapier, ...
In meinem Leben gab es noch nie so viele Sorgen gleichzeitig.
Steve schrieb:> Mietwucher, Fachkräftemangel, Inflation
Als Fachkraft eigentlich gut. Verlang einfach mehr...
> Chipmangel, kein Klopapier
Die ausgedruckten Datenblätter für Chips mit zwei Jahren Lead-Time sind
ein guter Ersatz...
> (zu viel) Einwanderung
...
Stimmt! Deshalb lese ich hier auch nur noch und verkneife mir zu fragen
oder zu antworten. Man wird eh immer von Leuten die alles besser wissen
niedergemacht.
Der Umgangston ist in den letzten Jahren immer schlimmer geworden.
Warum Leute die nix Gescheites beitragen trotzdem ihre dummen Sprüche
ablassen verstehe ich nicht.
Wenn man nix beitragen kann oder will dann sollte man auch nichts
schreiben! Voll zum Kotzen.
Es ist wichtig, den entsprechenden Aggressoren sofort eine
reinzusemmeln.
Woran erkennt man einen Aggressor? Daran, daß er beispielsweise mit
unbelegten Unterstellungen(*) arbeitet - wie im Fall hier bezüglich
einer Fa., die der Aggressor offensichtlich nicht wertschätzt und dem
Threaderöffner mit seiner eigenen Problematik überhilft.
Solche aggressiv auftretenden Leute finden man inzwischen zuhauf in
Foren und Firmen, weil sie (leider zu oft) mit den Zauderern und den
Vorsichtigen leichtes Spiel haben.
Deshalb: Gleich eine reinsemmeln, dass das virtuelle Blut spritzt, wozu
es notwendig ist, die (*)Manipulation zu erkennen und knackig auf den
Punkt zu bringen. Dann hat man früher seine Ruhe und kann sich seiner
Arbeit statt den Schwachmaten dieser Welt widmen.
Semmel schrieb:> Es ist wichtig, den entsprechenden Aggressoren sofort eine> reinzusemmeln. Woran erkennt man einen Aggressor?
An deinem Verhalten!
Sie sind übrigens meistens feige, verstecken sich hinter einer anonymen
Fassade.
Da muß man aber ganz schön blöde sein, um so zu argumentieren. Bist Du
einer von denen, die den Ton hier schätzen? Dann bist Du eben blöde, wie
eingangs vermutet. Wahrscheinlich mangelt es auch an Sozialkompetenz.
Du erkennst wahrscheinlich gar nicht den Verlauf in diesem Thread. Das
macht ja nichts, aber oft ist es dann besser, sich nicht zu äußern. Es
sei denn, man ist blöde so wie Du, dann rafft man auch das nicht.
Semmel schrieb:> ist Du einer von denen, die den Ton hier schätzen?
Deinen Ton schätze ich jedenfalls eben so wenig wie deine mangelhafte
Sozialkompetenz die du gerade zur schau gestellt hast.
Es gibt Leute, die können ihr eigenes Verhalten bei anderen nicht
ertragen.
Solltet ihr nicht mal langsam wieder auf eine sachliche Ebene
zurückkehren.
Es gibt wohl immer irgendwelche Trolls die sich in der Anonymität so
richtig auspowern können.
Schade, dass das hier so ist.
Stefan schrieb:> Schade, dass das hier so ist.
Das wird auch hier so bleiben.
Es ist nicht so häufig, dass jemand mit einem Einzeiler
>kommentiere diese Zeile mal aus.
das Problem lösen kann, aber es passiert. Und daran erkennt man auch,
dass das ganze Geseier von denen, über deren Ton Du Dich zurecht
beschwerst, völlig überflüssig war. Meins natürlich auch.
Da das Problem gelöst ist, eine Rückfrage: Was ungefähr ist der Grund,
weshalb Du Ethernet an einen WiFi-Controller dranbastelst? Hast Du mit
dem ESP angefangen und kennst nur diesen Prozessor, um den W5500
anzutreiben?
Semmel schrieb:> Da das Problem gelöst ist, eine Rückfrage: Was ungefähr ist der Grund,> weshalb Du Ethernet an einen WiFi-Controller dranbastelst? Hast Du mit> dem ESP angefangen und kennst nur diesen Prozessor, um den W5500> anzutreiben?
Ich habe sonst immer mit dem RaspPi gearbeitet. Der ist aber entweder
nicht lieferbar oder viel zu teuer. Ich habe dann mit dem ESP einige
Versuche gestartet und da ich in einem Poolschacht im Boden mit
Betonwänden kein Wlan
habe, nicht extra dafür einen AP hinstellen möchte und es zufällig für
die Steuerung der Anlage bereits ein LAN-Kabel gibt, wollte ich dies mit
einem ESP + W5500 realisieren. Die Herausforderung hat mich halt
gereizt... Wie oben schon geschrieben, bin ich kein Profi, sondern habe
vor vielen Jahren einen Abschluss in Elektronik gemacht (damals gab es
noch den Apple IIe und Assembler) und bin dann in eine ganz andere
Richtung gegangen. Elektronik ist nur mehr ein Hobby. Ich bastle nur für
einige Projekte rund ums Haus ;-)
Stefan schrieb:> wollte ich dies mit einem ESP + W5500 realisieren.
Ein einfacher Arduino Uno, Nano oder Micro hätte es auch getan.
Wesentlich anspruchsloser im Leistungsverbrauch. Und keiner
hätte sich ob der skurrilen Kombination gewundert.
Arduino gibt es auch mit integriertem W5500.
siehe https://www.ebay.de/itm/353174184847
War allerdings früher schon mal weniger als halb so teuer.
OMG schrieb:> Ein einfacher Arduino Uno, Nano oder Micro hätte es auch getan.
Da kannst du aber nicht einfach einen http client dranhängen.
Vielleicht geht es mit viel Krücken, aber die RAM Größe der kleinen AVRs
mit 1 bis 2kB ist einfach zu klein, schließlich kann alleine ein
einziges Ethernet Paket bis zu 1500 Byte groß sein.
Der ESP hat hat viel mehr Ressourcen und einen TCP/IP Stack und http.
Damit kann man standard Web-Clients verwenden (sogar einen Browser oder
wget/curl) und ist nicht auf spezifische ressourcenschonende Protokolle
angewiesen. Sogar Verschlüsselung über https ist möglich.
Michael
Michael D. schrieb:> Der ESP hat hat viel mehr Ressourcen und einen TCP/IP Stack und http.> Damit kann man standard Web-Clients verwenden (sogar einen Browser oder> wget/curl) und ist nicht auf spezifische ressourcenschonende Protokolle> angewiesen. Sogar Verschlüsselung über https ist möglich.
Für sowas wurde MQTT erfunden...
Michael D. schrieb:> schließlich kann alleine ein> einziges Ethernet Paket bis zu 1500 Byte groß sein.
Offensichtlich hast du das was der TO erreichen will nicht
verstanden. Oder du kennst den W5500 nicht, dann kannst du
nicht mitreden. Ein riesiges RAM ist in seiner Anwendung
nicht erforderlich.
Ein Arduino mit W5500 reicht in diesem Zusammenhang
tatsächlich aus.
OMG schrieb:> Offensichtlich hast du das was der TO erreichen will nicht> verstanden. Oder du kennst den W5500 nicht,
Stimmt den kannte ich tatsächlich nicht, ich dachte das sei einfach ein
Ethernet Interface aber tatsächlich ist das ja quasi dasselbe wie ein
ESP nur mit Ethernet anstatt WLAN.
D.h. man verwendet einen winzigen Microcontroller um einen größeren zu
steuern. Da ist mir der ESP doch lieber, da spart man sich den kleinen
Microcontroller und gewinnt Flexibilität.
Michae
Michael D. schrieb:> Da ist mir der ESP doch lieber
Da kann dir lieber sein was immer es sein soll, der TO
kann aufgrund seiner Gegebenheiten kein WLAN nutzen.
Und schon wieder gilt:
OMG schrieb:> Offensichtlich hast du das was der TO erreichen will nicht> verstanden.