Forum: Mikrocontroller und Digitale Elektronik ESP32 - Aufbau Wissen


von ESP32newbe (Gast)


Lesenswert?

Ich habe bereits Erfahrungen mit Arduino und bin geschäftlich ein 
erfahrender Anwendungs-Entwickler (Java, C, C++, C#, etc..., 
Windows/Linux, etc., VS, Eclipse, etc..). In letzten Zeit fasziniert 
mich privat immer mehr Microcontroller-Enwicklung. Ich sehe nach ersten 
Basics-Erfahrungen mit Arduino's, Attiny's, STM32 den ESP32 für mich als 
Microcontroller der Wahl um verschiedene private-Projekte damit zu 
realisieren (Preis, Grösse, Powermanagement, 2-Prozessoren, etc., 
angebotene Features).

Welche Tutorials, e-books, etc. würdet ihr empfehlen, um hier schnell 
professionell und tiefgehend zu lernen. Ich möchte einfach kein Zeit 
verschwinden um Stundenlang youtube videos oder sinnlose Bücher 
anzuschauen, die nur Basics vermitteln oder nicht gut sind. Hier ist 
Eure Erfahrung gefragt.

Folgende Schwerpunkte sind mir wichtig und sollen vertieft betrachtet 
werden:
- Multithreading, interrupts, etc.
- Entwicklung Powereffizienter Anwendungen. Powermanagement (u.a. deep 
sleep) allgemein...
- OTA
- Arduino API vs Espressif ESP32
- Arduino IDE vs. Eclipse, vs. VS, vs. platform IO, etc. bei der 
Enticklung von ESP32
- Wo sind die Grenzen bei der Arduino-IDE mit STM32
- Wo ist die Entwicklung mit Assembler unbedingt notwending (wenn 
überhaupt)?

Ich bin natürlich offen auch Geld für Bücher, etc. auszugeben, wenn ich 
dadurch eine schnellere learning-kurve habe.

von Stefan F. (Gast)


Lesenswert?

Da das SDK noch in der Beta-Phase steckt kann man noch keine Anleitung 
in Buch-Form empfehlen. Da ändert sich alle Nase etwas. An Deiner Stelle 
würde ich das IDF und die zugehöre Doku downloaden. Weitere Fragen 
werden im Support Forum geklärt.

von Marco (Gast)


Lesenswert?

Installiere Dir doch zum Anfang das Arduino für den ESP32 und geh die 
Beispiele durch, die dich interessieren. Dann guckst Du im Arduino 
SourceCode:
https://github.com/espressif/arduino-esp32
und anschliessend im IDF:
https://github.com/espressif/esp-idf

Die Arduino library ist nur ein Wrapper für das IDF, dort steht der 
Low-Level Kram drin. Wichtigstes Dokument ist dann das Manual
https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf

Habe selbst viel mit dem ESP32 rumgespielt, aber wenn Du es auf 
besonders stromsparenden Betrieb abgesehen hast, kann ich ihn leider 
nicht empfehlen. Vielleicht haben wir aber auch unterschiedliche 
Ansprüche. Schau mal bei den "Deep sleep" Beispielen zum starten und 
miss den Stromverbrauch.

Bezüglich Toolchain ist mein Vorschlag für einen simplen Einstieg mit 
einem Arduino Sketch anzufangen. Das bindest Du dann als Projekt in 
Eclipse ein und referenzierst die Arduino und IDF Bibliotheken, damit Du 
auto-completion , etc bekommst und die Bibliothek beim programmieren 
kennen lernen kannst.
Sobald der Sketch grösser wird lagerst Du einfach Funktionen (oder 
Klassen) in eine Arduino-Bibliothek aus, die Du im Sketch includierst. 
Der Vorteil ist, dass Du dich nicht gross mit dem IDF Build-System 
rumärgern musst, sondern einfach Deine main.cpp in Arduino kompilierst. 
Wenn Du dann im Thema drin bist und fortgeschrittene Ansprüche hast, 
kannst Du dich in das IDF Build-System einarbeiten.

von Marco (Gast)


Lesenswert?

Ach so, auf diese Weise lassen sich auch Arduino und IDF Funktionen 
mischen ;-)

von Marco (Gast)


Lesenswert?

Die ESP32 Videos von Andreas Spiess sind zum Einstieg super, der hat 
auch multithreading, deep sleep, etc:
https://www.youtube.com/channel/UCu7_D0o48KbfhpEohoP7YSQ/videos

von Stefan F. (Gast)


Lesenswert?

Marco schrieb:
> Ach so, auf diese Weise lassen sich auch Arduino und IDF Funktionen
> mischen

Sicher. Wenn Arduino ein geschlossenes System wäre, hätte es keinen 
Erfolg gehabt.

von Christoph M. (mchris)


Lesenswert?

>Sicher. Wenn Arduino ein geschlossenes System wäre, hätte es keinen
>Erfolg gehabt.

Naja. Wobei es ja nicht unbedingt so sein müsste, dass die Low-Level 
Funktionen nach oben sichtbar sind. Bei den STM32 Frameworks kommt es 
sehr darauf an, welches man verwendet und dann die HAL Header verwendet 
werden können.

von ESP32newbe (Gast)


Lesenswert?

Marco schrieb:
> Habe selbst viel mit dem ESP32 rumgespielt, aber wenn Du es auf
> besonders stromsparenden Betrieb abgesehen hast, kann ich ihn leider
> nicht empfehlen.

Der ESP32 verbraucht in deep sleep modus 7 µA, was bei CR123A 3V 
Lithium-Batterie 1600mAh theoretisch 228571 Stunden also, 9523 Tage also 
fast 26 Jahre. Die ATiny13 verbrauchen noch weniger, etwa: 0,2µA, den 
würde ich aber nur in absoluten Aussnahmefällen mit einer kleineren 
Batterie wie Z.b.: CR3230.

Geht die Programmierung unter Arduino direkt mit FreeRTOS für ESP32?

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

... ich mache beim esp32 mit micro python rum und das macht richtig 
spaß!


mt

von Christopher J. (christopher_j23)


Lesenswert?

Das einzige Buch was ich überhaupt bzgl. ESP32 kenne ist von Neil 
Kolban: https://leanpub.com/kolban-ESP32

Selbst wenn dir das nicht zusagt kannst du mal einen Blick auf seine 
"Snippets" im Github-Repo werfen:
https://github.com/nkolban/esp32-snippets

Ansonsten gibts bei Youtube interessante Videos von Andreas Spiess und 
pcbreflux, wobei ich bei letzterem auch eher einen Blick ins Repo werfen 
würde: https://github.com/pcbreflux/espressif/tree/master/esp32/app

von Mike R. (thesealion)


Lesenswert?

Ich würde die Arduino IDE nicht verwenden. Sie funktioniert zwar bietet 
aber kaum Komfort für das Programmieren, lieber eine IDE mit Code 
Vervollständigung und "IntellieSense".

Da du auch unter Arduino auf das IDF Framework zugreifen kannst, kann du 
auch die FreeRTOS Funktionen nutzen.

von Marco (Gast)


Lesenswert?

ESP32newbe schrieb:
> Der ESP32 verbraucht in deep sleep modus 7 µA, was bei CR123A 3V
> Lithium-Batterie 1600mAh theoretisch 228571 Stunden also, 9523 Tage also
> fast 26 Jahre. Die ATiny13 verbrauchen noch weniger, etwa: 0,2µA, den
> würde ich aber nur in absoluten Aussnahmefällen mit einer kleineren
> Batterie wie Z.b.: CR3230.

Das ist richtig, aber Du wirst ja auch was mit ihm machen wollen, von 
daher bist Du ja nicht durchgehend im Deep Sleep, abgesehen davon, dass 
dann jedesmal der Hauptspeicher gelöscht wird. Du kannst dann noch mit 
dem ULP was machen, der einen Speicher hat, den man über den Sleep 
retten kann. Je nachdem welche Peripherie Du brauchst. Aber wofür einen 
ESP32, wenn Du den Hauptspeicher nach jedem aufwachen wieder neu 
initialisieren musst (oder gar nicht verwendest). Kommt halt ganz auf 
den Anwendungsfall an, welchen Speicher und welche Peripherie Du 
durchgehend brauchst. Wenn er hauptsächlich Stand-By ist und nur 
gelegentlich aufgeweckt wird, kann es in Ordnung sein.

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
Noch kein Account? Hier anmelden.