Kann ESP8266 Arduino ersetzen?


15

Ich bin ein Hobbyist und habe Arduino bisher für einfache Projekte verwendet. Jetzt möchte ich ein Projekt mit adressierbaren LEDs erstellen, ich möchte auf dem Arduino mehrere Programme für die LEDs schreiben und auf meinem Telefon auswählen, welche ausgeführt werden sollen.

Ich fand ESP8266 als eine gute und günstige Lösung, um mit meinem Arduino zu sprechen. Beim Durchsuchen des Webs, um zu erfahren, wie es funktioniert, habe ich festgestellt, dass es eine eigene MCU hat, und ich kann meinen Code in Arduino IDE schreiben und hochladen! 20kB RAM, 80MHz CPU und 4MB Flash für 3 USD (Ich bin mir jedoch nicht sicher, aber sogar ein Viertel davon ist großartig) !! Wenn ich nur ein paar GPIOs benötige, warum sollte ich dann ein Arduino UNO verwenden? Ist dieses Modul zuverlässig?


Nein, ich werde nicht nachschlagen, was ein ESP8266 ist, um hier eine Frage zu beantworten. Abgesehen davon handelt es sich nach dem Titel eindeutig um eine meinungsbasierte Frage, und es scheint sich eher um die Verwendung elektronischer Geräte als um deren Design zu handeln. Nicht nur das, sondern um jeden Zweifel auszuräumen, erwähnen Sie "Arduino".

1
Der interne ESP8266-Prozessor kann Benutzerprogramme ausführen. Welche Sprache verwendet wird, hängt davon ab, auf was Sie Zugriff haben. LOA wird häufig verwendet.
Russell McMahon

10
@OlinLathrop Wenn Menschen Begriffe wie "LM324", "BC337", 1N4148 "verwenden, ist allgemein bekannt, dass die Verwendung von Operationsverstärkern, bipolaren NPN-Transistoren mit geringer Leistung und Silizium-Kleinsignaldioden für das Verständnis nicht erforderlich ist. | Bei der ESP8266-Familie handelt es sich um eine Reihe von Modulen mit WiFi + -Prozessor in einem einzelnen IC und einem Begleitspeicher für Programme. Diese sind sehr, sehr bekannt und etwas sehr Wissenswertes, wenn Sie sie nicht kennengelernt haben. Obwohl sie (noch) nicht so allgegenwärtig sind wie z. B. ein LM324, sind sie möglicherweise die häufigste "IOT" -WLAN-Schnittstelle insgesamt.
Russell McMahon

3
Ich glaube wirklich nicht, dass diese Frage eine negative verdient
Malachi

3
@ linhartr22 Zitat von www.lua.org/about.html : "Lua" (ausgesprochen LOO-ah) bedeutet auf Portugiesisch "Mond". Als solches ist es weder ein Akronym noch eine Abkürzung, sondern ein Substantiv. Insbesondere ist "Lua" ein Name, der Name des Erdmondes und der Name der Sprache. Wie die meisten Namen sollte es in Kleinbuchstaben mit einem Anfangsbuchstaben geschrieben werden, das heißt "Lua". Bitte schreibe es nicht als "LUA", was sowohl hässlich als auch verwirrend ist, denn dann wird es zu einem Akronym mit unterschiedlichen Bedeutungen für verschiedene Personen. Also bitte "Lua" richtig schreiben!
gegangen

Antworten:


11

Nun, die Antwort auf die Frage "Kann es Arduino ersetzen" - ja, in vielen Fällen kann es.
Ob es "der Arduino-Killer" wäre - das bezweifle ich.
Es gibt mehrere Arduinos und ESPs in meinem Zuhause und 1 ESP in meinem Büro, die rund um die Uhr als Teil meiner selbst erstellten (und ständig in der Entwicklung befindlichen) Smart-Home-Lösung zusammen mit 1-2 PCs ausgeführt werden. Darüber hinaus habe ich einige Experimente / unvollendete Projekte, an denen das ESP beteiligt ist.
Aus meiner nicht allzu begrenzten Erfahrung sind hier die Vor- und Nachteile von ESP im Vergleich zu Arduino:

++++ Internet-Konnektivität eingebaut!
++ Schnellere Uhr und mehr Speicher.
+ Läuft auf 3V3 (die meisten, aber nicht alle Arduinos sind 5V), sodass 3V3-Geräte (wie die meisten Displaymodule) direkt ohne Pegelumsetzer angeschlossen werden können.
+ Das "grundlegende" ESP-12E kostet ungefähr so ​​viel wie ein Arduino Nano oder Pro Micro.

- Der "grundlegende" ESP-12E hat einen Abstand von 2,0 mm und nicht von 2,54 mm.
- Es gibt Ausbrüche, die das Prototyping erleichtern, aber die Kosten erhöhen und zu viel Platz auf einem Steckbrett / Protoboard beanspruchen.
- Der häufigste Breakout - NodeMCU - ist teurer und weist neu zugeordnete Pins auf, was sehr ärgerlich ist, es sei denn, Sie programmieren ihn in Lua, was nur für sehr einfache Projekte in Ordnung ist. IMO, es sollte nur für das Prototyping verwendet werden.
- Sie werden mit 3v3 betrieben, was es schwierig macht, 5V-Module zu verbinden, die meisten MOSFETs vollständig einzuschalten usw.
- Sie sind äußerst wählerisch bei der Stromversorgung.
- Sie verbrauchen deutlich mehr Energie als der Arduino, wenn er nicht sendet, und viel mehr, wenn er sendet.
- Sie sind fast immer schlechter für batteriebetriebene Projekte - Sie brauchen einen 3v3-Regler (der Ruhestrom hat), Sie müssen viel schlafen (und Sie brauchen GPIO16 dafür) und am Ende des Tages einen Arduino + einen Low -Power Radio erledigt den gleichen Job und hält im Akkubetrieb deutlich länger.
- Sie haben weniger GPIO-Pins und einige von ihnen müssen beim Start eingestellte Spannungen haben (GPIO0 - hoch, GPIO2 - hoch oder schwebend, GPIO15 - niedrig), außerdem "wackeln" sie einige ihrer IO-Pins beim Start und machen sie oft unbrauchbar für viele Geräte.
- Sie haben nur einen ADC, und meines Wissens ist er langsamer als die bereits langsamen Arduino-ADCs, und Sie können ihn nur mit 0-1,1 V (interne Referenz) verwenden.
- Viele der Arduino-Bibliotheken funktionieren sofort oder sind bereits portiert, aber viele nicht. Sie müssen sie entweder selbst portieren oder auf jemanden warten, der dies tut. Im Allgemeinen ist die Arduino-Community viel größer und ausgereifter, sodass die meisten "noob-freundlichen" Tutorials, Bibliotheken usw. für das Arduino bereitgestellt werden.

Trotzdem ist der ESP8266 immer noch großartig und äußerst nützlich. Sogar Lua ist nützlich für schnelle kleine Projekte. In den meisten Fällen, in denen eine Internetverbindung erforderlich ist, scheinen sie die beste Lösung zu sein. In vielen anderen Fällen spielt es keine Rolle, ob Sie ESP oder Arduino verwenden. Und manchmal ist der Arduino (oder der kleine ATTiny85) die bessere Wahl.
Wie immer ist "das richtige Werkzeug für den Job" der richtige Weg.
Oder eine Kombination von Werkzeugen.


2
Stimme überhaupt nicht zu, dass es "einfach falsch" ist, ein ESP als sekundäres Gerät für ein Arduino mit einer UART-Schnittstelle zu verwenden. Sie nennen selbst Gründe dafür - wenn Sie Bibliotheken verwenden möchten, die noch nicht auf das ESP portiert sind, warum sollte das Arduino nicht das primäre Gerät sein und das ESP verwenden, um einen Job gut zu erledigen? Oder wenn Sie mit 8-Bit-AVR-Geräten besser vertraut sind und sich 5 US-Dollar für ein sehr leistungsfähiges WLAN-Addon leisten können, warum nicht? In der Technik gibt es, abgesehen von Dummheit, keinen richtigen oder falschen Weg, vorausgesetzt, es funktioniert - nur mehr oder weniger passend für eine bestimmte Herausforderung.
Stefandz

2
Es ist nichts auszusetzen, wenn ein Arduino (oder Attiny) über UART mit ESP verbunden ist. Was sich "falsch" anfühlt, ist die Verwendung von AT-Befehlen und das Parsen von HTML-Anfragen und -Antworten durch Arduino ESP) als Master zu fungieren und bestimmte Aufgaben auf den weniger leistungsfähigen Chip zu verlagern, nicht umgekehrt. Meistens ist es auch der einfachere Weg - mit AT-Befehlen zu fummeln, die auf dem Arduino analysiert werden, macht weder Spaß noch ist es effizient. Ja, Sie müssen beide Chips auf diese Weise programmieren, was unpraktisch ist.
Mishony

1
Könnte es wert sein, Ihre Antwort zu bearbeiten, um diese Klarstellung aufzunehmen.
Stefandz

1
Denn der Rest der Antwort ist gut, aber der letzte Satz ist unklar und irreführend, imho. Wenn Sie nach Antworten suchen, können Sie diejenigen aufklären, die nicht verstehen, warum dies eine schlechte Idee sein könnte, und sie von der Idee abbringen, dass es so etwas wie "einfach falsch" ohne klare Begründung gibt. Aber die Antwort liegt bei Ihnen - natürlich können Sie tun, was Sie für richtig halten.
Stefandz

1
Wenn Sie wirklich ein Arduino UND ein ESP (anstatt nur das ESP) verwenden müssen, können Sie weiterhin die serielle Kommunikation verwenden, aber auf einer höheren Ebene - zum Beispiel sendet Arduino "temp = 26.5" an das ESP, Ihren Code auf dem ESP erkennt dies und sendet eine HTTP-Anfrage an thingspeak.com oder was auch immer. Damit dies funktioniert, müssen Sie sowohl das Arduino als auch das ESP programmieren. Dies ist ein bisschen umständlich, aber nicht wirklich schwerer als mit AT-Befehlen zu fummeln. In vielen Situationen können Sie den Arduino einfach fallen lassen und nur das ESP verwenden.
Mishony

1

Ja, es gibt einige I / O-Pins. Theoretisch könnten Sie also eine oder mehrere LEDs ansteuern oder beispielsweise einen I / O-Port-Expander (I2C) verwenden.

Und ja, Sie können Software entwickeln und sogar in die kostengünstigen Module herunterladen. Der Arduino-ähnliche Winkel ist nur eine Möglichkeit, dies zu tun. Es ist kein ARM, wie man glauben könnte. Aber es gibt eine Gnu-Toolchain für das esp8266 usw. Ja, 80 oder 160 MHz, 32-Bit-RISC, einige Flash, einige RAM.


1

Wenn Sie es programmieren können, ist es natürlich möglich, Ihre Lichter direkt zu steuern. Es hat nicht so viele I / O-Pins wie das Arduino, aber solange Sie genug haben, um die Arbeit zu erledigen, sinken sicherlich die Kosten, die Größe und der Strombedarf.


1
@Dow können Sie sogar besseren Preis auf ebay / aliexpress finden.
Darko

1
Für meine Anwendung reicht ein IO aus, ESP-12 bietet jedoch mehrere IOs, 10-Bit-ADC und vieles mehr. Eigentlich habe ich einen ESP-01 für 1,78 USD (von Aliexpress) gekauft! Überprüfen Sie github.com/esp8266/Arduino für die Verwendung Ihres ESP in Arduino IDE. Sie brauchen nur einen USB-Seriell-Konverter. Oder Google NodeMCU, um alles in einem Board zu bekommen.

1

Das Arduino Uno-Board und das ESP-Modul sind nicht dasselbe, aber solange das GPIO des ESP8266 die für Ihre Anwendung erforderliche Hardware bereitstellt, funktioniert es.

Eines meiner Anliegen ist die Zertifizierung. Das Produkt hat mehrere Zertifizierungen erhalten. Sie müssen überprüfen, ob Ihre Version auch zertifiziert ist. Sie können die Zertifizierungen des Herstellers (und einige Dokumentationen) auf der FCC- Suchseite nachschlagen, indem Sie 2AC7Z als Empfängercode eingeben. Die von Ihnen verwendete Karte kann davon abhängen oder eine eigene Zertifizierung erfordern.

Wie Sie bemerkt haben, kann es als Board-Typ zum Arduino-Tool hinzugefügt werden, was es für Anfänger viel einfacher macht, damit zu spielen.

Ich habe gerade die Stipendien überprüft und alle drei verlangen, dass die WiFi-Antenne mindestens 20 cm von allen Personen entfernt ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.