Ich hatte mal ein Projekt auf dem Esp8266 gemacht aber nachher zu wenig Pins. Nun überlege ich dies weiter zu machen und es gibt ja jetzt den Esp32. Nun werden so Nodemcu Boards angeboten und ich verstehe das nicht ganz. So wie ich gelesen habe, ist das eine Art Betriebssystem. Ist Nodemcu im Flash abgelegt und ich würde das beim flashen überschreiben? Hat das nur den Sinn die Eingangsspannung wegen USB zu steuern? Kostet das Speicher den ich dann für mein Programm weniger hab? Ich hab damalsden Esp8266 ganz normal mit der Arduino IDE programmiert, bei dem Nodemcu steht aber was von LUA, wovon ich keine Ahnung habe. Aus dem was ich beim Googeln gefunden habe werde ich nicht schlau. Kann mich bitte wer aufklären?
Bernd B. schrieb: > Nun werden so Nodemcu Boards angeboten und ich verstehe das nicht ganz. > So wie ich gelesen habe, ist das eine Art Betriebssystem. Nodemcu Board sind Boards mit ESP Chip. Mit "Betriebssystem" meinst du wohl die NodeMCU Software. Du kannst diese Boards aber auch mit Arduino oder dem SDK von Espressif programmieren. Letztendlich beruhen alle Varianten auf dem SDK von Espressif, deswegen haben sie viele gemeinsame Eigenschaften. Anders geht es auch nicht, denn der Firmware-Kern im SDK ist Closed-Source (wird nur als Binärdatei vertrieben) und auch der Chip ist nicht detailliert genug dokumentiert, dass dazu jemand seine eigene Firmware schreiben könnte. > Ist Nodemcu im Flash abgelegt und ich würde das beim > flashen überschreiben? Korrekt. Auch deine Lua Scripte, die von der NodeMCU Firmware ausgeführt werden, liegen im Flash (in einem anderen Bereich mit einem Filesystem). Wenn du da ein Arduino Programm drauf lädst, wird die ganze NodeMCU Software dadurch überschrieben. Und umgekehrt würde die Installation der NodeMCU Software dein Arduino Programm überschrieben. > Hat das nur den Sinn die Eingangsspannung wegen USB zu steuern? Die Frage verstehe ich nicht > Kostet das Speicher den ich dann für mein Programm weniger hab? Was kostet mehr Speicher? Der Firmware Kern von Espressif belegt beim ESP8266 ungefähr 250kB. Dazu kommt dann ggf. noch der LUA Interpreter von NodeMCU, sowie dein eigenes Programm und alle optionalen Bibliotheken, die du verwendest. Bei NodeMCU kannst du dein Paket von Firmware+LUA+Bibliotheken individuell zusammen stellen. Danach lädst du deine LUA Scripte hoch. > Aus dem was ich beim Googeln gefunden habe werde ich > nicht schlau. Kann mich bitte wer aufklären? Der wesentliche Unterschied ist: a) Arduino erzeugt Programme in Maschinensprache, die von der CPU ausgeführt werden. Sie können bis zu 1 Megabyte groß sein. b) Die NodeMCU Firmware interpretiert hingegen LUA Scripte. Diese können beim ESP8266 nur einige zig kB groß sein, dafür kann man aber beliebig viele Scripte in den Flash Speicher legen, die sich gegenseitig aufrufen. LUA ist logischerweise viel langsamer.
Du kannst dir auch mal ESP Easy anschauen, das ist ein weiteres Betriebssystem für verschiedene ESP Boards und reduziert die meisten GPIO+Wifi Aufgaben auf reine Konfigurationsarbeit.
Also wenn ich richtig verstanden habe kann ich mir ein nodemcu Board holen und ganz normal über die serielle Schnittstelle ein Arduino Programm drauf laden, ohne Probleme zu bekommen dass danach irgenxwas nicht mehr geht (Schnittstelle etc) ? Oder muss ich wenn ich nicht Lua programmieren will boards holen die nicht Nodemcu drauf haben
Bernd B. schrieb: > kann ich mir ein nodemcu Board > holen und ganz normal über die serielle Schnittstelle ein Arduino > Programm drauf laden, ohne Probleme zu bekommen Korrekt
Korrekt, du musst lediglich beachten, dass der seriell/USB Chip auch an den ESP angeschlossen ist. Das stört aber (wahrscheinlich) nicht.
Nee das ist ja der Vorteil weswegen ich so einen holen will. Der geht doch wenn ich es richtig verstanden habe auch ohne nodemcu.
Nochmal nur um sicher zu gehen, weil ich in Videos immer sehe die wählen als Board z.B. den ESP8266 Nodemcu aus, laden aber ein normales Arduino Programm hoch. Was ist der Unterschied dazu wenn ich nur esp8266 auswählen würde? Wenn ich das mit Nodemcu wähle wird Nodemcu mit hochgeladen und mein Arduino Code läuft über Lua? Wenn ich das ohne wähle wird das nodemcu überschrieben und mein Arduino Code in Maschinencode hochgeladen?
> Was ist der Unterschied dazu wenn ich nur esp8266 auswählen würde? Was meinst du mit "auswählen"? Kaufen? Oder irgendeine Programmeinstellung? Lies Dir erstmal das durch, dann kannst du bessere Fragen stellen: http://stefanfrings.de/esp8266/index.html > Wenn ich das mit Nodemcu wähle wird Nodemcu mit hochgeladen > und mein Arduino Code läuft über Lua? Also falls du damit die Board-Einstellung in der Arduino IDE meinst: Arduino hat mit NodeMCU Software und LUA gar nichts am Hut. Hinter den Boards verbergen sich einfach nur sinnvolle Voreinstellungen. Wenn du "Generic ESP8266" einstellst, hast du mehr Einstellmöglichkeiten und damit auch mehr mögliche Fehler. > Wenn ich das ohne wähle wird das nodemcu überschrieben > und mein Arduino Code in Maschinencode hochgeladen? Die Arduino IDE überschreibt in jedem Fall die NodeMCU Firmware, egal was du einstellst.
Die NodeMCU Hardware ist ein Board das eine Stromversorgung und eine seriell-via-USB Schnittstelle an ein ESP Board bringt. (Wie beim Arduino) Die NodeMCu Software ist eine firmware / ein Betriebssystem für den ESP das es dir erlaubt LUA Scripte auf dem Ding auszuführen. (Ohne flashen) Wenn du willst kannst du eigene Firmware flashen. Die Schnittstelle und die Stromversorgung bleiben dabei natürlich.
Ich werde immer verwirrter.... Ich hab damals denESP einzeln gehabt, Draht dran gelötet und aufs Steckbrett. Dann ESP8266 im Boardmanager ausgewählt (ohne Nodemcu) . Und hochgeladen. Zum Verständnis: Nodemcu ist also im Chip statt der AT firmware die auf meinen war und wird nur gebraucht, wenn ich kein Programm hochladen will. Richtig verstanden? Wenn ich also die Arduino IDE benutze meinen code hochladen will brauche ich das beides eh nicht Es würden beide überschrieben. Dann mache ich die Wlan Geschichte uber die Arduino Funktionen das auch richtig? Irgendwie muss ich oft die Grundzusammenhänge verstehen, damit es Klick macht.
> Ich werde immer verwirrter.... Du verwirrst dich selbst, idem zu zu viele Fragen stellst, als es einfach mal auszuprobieren. Bei dem Preis kann doch gar nichts falsch machen. Ein guter Kaffee ist mancherorts schon teurer. NodeMCU ist ein Programmpaket, basierend auf der Firmware von Espressif, welche LUA Script ausführt, die ebenfalls im Flash Speicher liegen. NodeMCU ist aber auch Sammelbegriff für eine Reihe von Boards mit ESP8266 Chips. Die AT Firmware ist ein Beispielprogramm von Espressif. Auf NodeMCU Boards ist meistens die NodeMCU Software vorinstalliert. Auf anderen ESP8266 Boards ist meistens die AT Firmware vorinstalliert. Verlassen kann man sich darauf allerdings nicht. > Wenn ich also die Arduino IDE benutze meinen code > hochladen will brauche ich das beides eh nicht Ja > Dann mache ich die Wlan Geschichte uber > die Arduino Funktionen das auch richtig? Die "WLAN Geschichte" wird von der Firmware des Chipherstellers gesteuert, also genau dem Teil, denn du nicht umprogrammieren kannst. Diese Firmware ist Bestandteil von allen anderen Programmen, also auch: * Der AT Firmware * Alle Arduino Programme, die mit dem ESP8666 Core compiliert wurden * NodeMCU Software * ESP Easy * Programme die du mit dem Espressif SDK erstellst (egal welches) * ... Du kannst den Chip unmöglich ohne die Firmware von Espressif benutzen. Alle anderen Entwicklungsumgebungen bauen darauf auf. Sie erzeugen Programme, welche den Code von Espressif enthalten. Das sind 250 Kilobytes, die schon für einen simplen LED Blinker drauf gehen. > Irgendwie muss ich oft die Grundzusammenhänge verstehen, > damit es Klick macht. Lies meine Webseite, da steht alles, was du wissen willst.
Ok, dann hab ich es denke ich verstanden. Also brauche ich nodemcu z.B. nur wenn ich den Chip als Wlan sender an meinem Arduino nutze statt ihn selbst einzeln. Dass die Boards auch so genannt werden hat mich verwirrt. Testen kann ich nicht, weil ich ja gerade erst bestellen will und das vorher abklären wollte um nicht falsch zu bestellen. Die Seite lese ich nachher durch wenn ich zuhause bin. Das einzige was mir jetzt noch nicht klar ist warum gibt es dann genau den ESP8266 als auch den mit Nodemcu im Boardverwalter? Wenn ich den mit Nodemcu verwende bleibt es drauf und der Rest wird dazugeschrieben? Weil elektronisch unterscheiden sich die Boards dann ja nicht. Was genau wird da denn unterschiedlich gemacht?
Bernd B. schrieb: > Also brauche ich nodemcu z.B. > nur wenn ich den Chip als Wlan sender an meinem Arduino nutze statt ihn > selbst einzeln. Äh nein. Die NodeMCU Software ist eine Alternative zu Arduino ist eine Alternative zum Espressif SDK. Alle drei sind für Leute gedacht, die den Chip programmieren möchten. Wer den Chip nur als Netzwerk-Interface benutzen möchte, verwendet die AT-Firmware (oder etwas selbst gestricktes). Wer den Chip als remote-Station für gängige Sensoren und Aktuatoren nutzen möchte, die von einem zentralen PC aus dirigiert werden, der nimmt ESP Easy (oder etwas selbst gestricktes). AT-Firmware und ESP-Easy sind vollständige Programme, fix und fertig zur direkten Ausführung. NodeMCU, Arduino und Espressif SDK sind Grundlagen für das Erstellen eigener Programme.
Ok, aber wo liegt jetzt der Unterschied zwischen den beiden auswahlen um Boardverwalter?
Bernd B. schrieb: > Ok, aber wo liegt jetzt der Unterschied zwischen den beiden auswahlen um > Boardverwalter? In den Einstellbaren Parametern. Die meisten werden unten in der Statuszeile angezeigt. Du kannst auch in die entsprechende Konfigurationsdatei schauen: Bei mir liegen die Datei in /opt/arduiono-1.8.7/portable/packages/esp8266/hardware/esp8266/2.3.0/boa rds.txt
Also ich wollte jetzt mal gucken, hab die Boards beide installiert, werden auch angezeigt, aber in der Boards.txt ist nichts drin, das ist noch die alte von früher wie es scheint. Kann es sein, dass das jetzt woanders abgelegt wird???? Und nur, da ich gerade woanders angemotzt wurde ich solle suchen.... Bei mir gibts nur eine einzige Boards.txt Datei im Arduino Ordner, hab Windows suchen lassen. Und das ist die uralte.
:
Bearbeitet durch User
Bernd B. schrieb: > Habs gefunden, die haben getrennte Boards.txt die woanders lagen Hallo Bernd, was dir Stefanus F. in mehreren Beiträgen durch die Blume sagen will: Lies dir erst mal seine Webseite durch. Da hat der sich nämlich richtig viel Mühe gemacht alles zum Thema ESP8266 auf einer Seite zusammenzuschreiben und für Anfänger gut zu beschreiben. Ich hab nirgends im deutschsprachigen Bereich eine bessere Doku gesehen. Er listet dort unter anderem auf welche Platinen es gibt, auf denen der ESP8266 Mikrocontroller verbaut ist und welche Pinbelegung diese haben bzw. worin sich diese Platinen unterscheiden. Außerdem wird auch erklärt wie man den ESP8266 mit der Arduino IDE programmieren kann bzw. was diese AT Firmware von Espresif (Hersteller des ESP8266) oder LUA kann und worin die Vorteile/Nachteile der verschiedenen Formen der Programmierung liegen. Ich denke bevor du noch eine Frage hier stellst, wäre es fair von dir die Seite von ihm mal komplett durchzulesen. Damit kommst du recht weit. @Stefanus: Hat sich an deiner Aussage auf der Webseite (Herbst 2018) zum ESP32 schon was geändert?
Timo N. schrieb: > Hat sich an deiner Aussage auf der Webseite (Herbst 2018) zum > ESP32 schon was geändert? Ich habe mich seit dem nicht weiter mit dem ESP32 beschäftigt. Den aktuellen Stand kenne ich nicht. Daran wird sich wahrscheinlich auch nichts mehr ändern, denn ich besitze immer noch einen üppigen Vorrat an ESP8266 Modulen. Ich hatte eigentlich vor, das ganze Haus damit zu vernetzen, bin dann aber rechtzeitig doch noch vernünftig geworden.
Hallo, Bernd B. schrieb: > Habs gefunden, die haben getrennte Boards.txt die woanders lagen meine Sicht zu den diversen ESP8266-Varianten und Boards: ich programmiere die immer mit eigeneer Software aus der ArduinoIDE. Mir ist also völlig egal, ob da im Lieferzustand LUA oder die AT-Software drauf ist, wird ja ohnehin überschrieben. Es ist prinzipiell egal, ob man Generic ESP8266 oder einen direkten Modultyp auswählt. Wenn man Generic benutzt, muß man natürlich wissen, was man da auf dem Board hat, also Flashgröße und Programmiermode richtig auswählen. Bei falscher Einstellung geht nichts kaputt, aber man bekommt Probleme beim Flashen oder im Betrieb. Die voreingestellten Werte für CPU-Freq., Flashtakt usw. passen in wohl 95% für alle ESP-Module. Upload Speed wird bei mir generell auf 921600 gesetzt, machen alle CH34x, FTDI, CP210x USB-Chips mit und spart Zeit. Eigentliches Problem: die diversen Boardhersteller bei den ESP-Modulen sind sehr kreativ, was die Pinbezeichnungen angeht, die auf die Boards gedruckt werden. Wenn man im Sketch z.B. die Bezeichnungen der NodeMCU nutzen will (D1, D2 usw.) sollte man das passende Board einstellen, weil dann dann die #defines für die IDE passend gesetzt werden. Da ich generell die GPIO-Nummern nutze, ist mir das auch egal, muß eben ein Bild es jeweiligen Boards oder eine Referenzliste parat liegen. ESP32: das IDF und die Arduino-Version 1.0.2 halte ich für recht stabil und nutzbar. Problem ist, daß der ESP32 zuvile kann und etliches noch nicht sauber in die ArduinoIDE eingebaut ist, auch die Beispiele im IDF sind teilweise noch unvollständig. Speziell betrifft das BT und die Threadzuordnungen für die Cores im RTOS, aber auch so muß man manchmal auf direkte IDF-Funktionen zurückgreifen. Ansonsten gilt das Gleiche: man kann alles mit ESP32 Dev Modul programmieren, da aber noch mehr Boardversionen existieren (Flashgröße, PSRAM usw.) muß man eben wissen, was man da gefauft hat. Gruß aus Berlin Michael
Vielleicht noch eine Ergänzung dazu: es gibt seit einiger Zeit auch MicroPython für ESP8266 und ESP32. Python ist eine einfach zu erlernende Sprache, wenn man keine grossen Ansprüche an Geschwindigkeit stellt.
Bernd B. schrieb: > Bei mir gibts nur eine einzige Boards.txt Datei im Arduino Ordner, hab > Windows suchen lassen. Und das ist die uralte. Wer in der falschen Ecke sucht, findet auch nur das falsche, wenn überhaupt. Das ist der "Beobachter Selektionseffekt" In dem Fall ist es auch egal, in wie vielen Foren man fragt. Es ist eher ein Problem der inneren Justage. Arduino zeigt übrigens beim kompilieren genau an, welche Hardware Definition es verwendet. Man muss der IDE nur die Chance dazu geben. Die ausführliche Ausgabe aktivieren. Lesenswert, für alle, welche sich mit den Arduino Hardware Definitionen beschäftigen (wollen/müssen): https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification Das dort vermittelte Wissen ermöglicht einige interessante Tänze.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.