Habe von TME einen "Arduino Nano ESP32"
https://docs.arduino.cc/hardware/nano-esp32/ gekauft - und noch weitere
bestellt, weil das eigentlich auf Anhieb gut funktioniert hat. Nach ein
bisschen rumspielen tauchen doch noch Fragen auf, die zwar
Arduino-spezifisch sind, aber dort nicht beantwortet werden:
- die 16MB Flash extern, über SPI angebunden, werden die für die
Firmware verwendet? Oder ist frei verfügbar, bzw. was von der Firmware
nicht besetzt ist? Kann ich darauf meine Logdaten speichern und abrufen
über https://github.com/PaulStoffregen/SerialFlash
- kann ich die
https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis
uneingeschränkt verwenden? Weil bei mir der Analogeingang mit
1
temperatur=analogRead(17);
schonmal nicht funktioniert (kommt immer 0 raus).
Gruss Chregu
Christian M. schrieb:> temperatur = analogRead(17);> schonmal nicht funktioniert (kommt immer 0 raus).
Sieh dir einfach das Pinout an, da siehst du welche Pins als analoge
genutzt werden können.
Vermutung wo die 17 her kommt: Der analoge Eingang vom ESP8266 heißt
bei Arduino A0, und A0 hat den numerischen Wert 17.
Verwechsle nicht Anleitungen vom ESP8266 mit den ESP32! Die ESP32 werden
anders programmiert, als der ESP8266.
Die Pinbelegung von deinem Board ist dort
https://docs.arduino.cc/resources/pinouts/ABX00083-full-pinout.pdf
Möglicherweise hat irgendein Pin zufällig den numerischen Wert 17, aber
benutzen sollst du nur die Bezeichnungen A0 bis A7 und D0 bis D24.
Der Flash Speicher enthält die Closed-Source Firmware vom Hersteller,
sowie den Python Interpreter oder das selbst erstellte Programm (Sketch)
auf Basis des Arduino Core oder Espressif IDF. Ein großer Teil davon
kann für weitere Daten verwendet werden (z.B. ein Dateisystem mit Python
Scripten).
> Kann ich darauf meine Logdaten speichern und abrufen
Ja aber nicht
> über https://github.com/PaulStoffregen/SerialFlash
denn diese Bibliothekist dazu gedacht, einen weiteren SPI Flash Chip
anzusteuern, den du hinzufügen würdest. Für den Chip, der sich auf dem
Board befindet, musst du die Funktionen des Arduino Frameworks
verwenden. Siehe https://docs.arduino.cc/tutorials/nano-esp32/spiff/
Sherlock 🕵🏽♂️ schrieb:> meine Logdaten speichern und abrufen>> Ja aber nicht>>> über https://github.com/PaulStoffregen/SerialFlash>> denn diese Bibliothekist dazu gedacht, einen weiteren SPI Flash Chip> anzusteuern, den du hinzufügen würdest. Für den Chip, der sich auf dem> Board befindet, musst du die Funktionen des Arduino Frameworks> verwenden. Siehe https://docs.arduino.cc/tutorials/nano-esp32/spiff/
Danke für die Info! Ich werde dann wohl einen weiteren SPI-Flash nehmen!
John P. schrieb:> IO17 ist ja auch kein Analog EingangDieter S. schrieb:> Sieh dir einfach das Pinout an, da siehst du welche Pins als analoge> genutzt werden können.
Ja eben, und in der API steht:
1
analogRead
2
This function is used to get the ADC raw value for a given pin/ADC channel.
3
uint16_t analogRead(uint8_t pin);
4
pin GPIO pin to read analog value
So habe ich physische Pins verstanden!
Gruss Chregu
Christian M. schrieb:> Danke für die Info! Ich werde dann wohl einen weiteren SPI-Flash nehmen!
Musst du nicht.
du kannst den internen Flash vom ESP als EEPROM (emulation), FFAT oder
SPIFF Speicher verwenden. Je nach dem was besser für dich passt.
Christian M. schrieb:> Ja eben, und in der API steht:> analogRead> This function is used to get the ADC raw value for a given pin/ADC> channel.> uint16_t analogRead(uint8_t pin);> pin GPIO pin to read analog value>> So habe ich physische Pins verstanden!
Es kommt auch immer auf den verwendeten Core an. Espressif nimmt die
PIN-Zahl die auch in der Doku steht.
Arduino verwendet gerne die Zahlen die auf der LP aufgedruckt sind (A0
bis A7)
also die Analogen sind beim ESP32:
ADC1 -> 36,39,34,35,32,33
ADC2 -> 25,26,27,14,12,13,15
Wobei ADC2 wegen diverser Kleinigkeiten mit Vorsicht zu genießen ist.
Christian M. schrieb:> eine andere API ist, die viel umfangreicher,> aber eben nicht für Arduino ist
Der Arduino Core ist ein Aufsatz auf das Espressif IDF. Die steht also
beide zur Verfügung, allerdings nicht uneingeschränkt (manche beißt
sich).
Der Temperatursensor im Chip wird intern gebraucht, um thermische
Effekte auszugleichen. Aus Sicht der Anwendung kann man damit nur sehr
wenig sinnvolles anfangen. Die Raumtemperatur misst man damit jedenfalls
nicht.
John P. schrieb:> Es kommt auch immer auf den verwendeten Core an.Sherlock 🕵🏽♂️ schrieb:> Der Arduino Core ist ein Aufsatz auf das Espressif IDF.
"Der Arduino Core" ist es eben nicht.
Es gibt 2 Cores.
Einen von Espressif -> https://github.com/espressif/arduino-esp32
Einen von Arduino -> der baut auf den von Espressif auf. Ist aber in der
Version immer älter und hat halt ein paar mehr einschränkungen.
Naja, ich wollte halt irgendeinen Analogwert zum testen mit der Cloud.
Aber da ich nun komischerweise ohne Erwähnung im "Free Plan" plötzlich
auf 5 Gadgets (Variablen) eingeschränkt bin, hilft mir das ganze
Cloud-Geraffel nicht mehr viel. Wollte halt die Heizungssteuerung
erweitern, dass ich auch von extern darauf zugreifen kann, da externer
Zugriff wegen NAT nicht erreichbar ist.
Gruss Chregu
John P. schrieb:> Es gibt 2 Cores.> Einen von Espressif> Einen von Arduino
Habe ich im Laufe der Jahre ganz vergessen, danke für den Hinweis.
Ziemlich fies ist dabei, dass Arduino die 2,5 Jahre alte Version bereit
stellt, aber auf aktuelle Dokumentation von Espressif verweist. Da passt
natürlich einiges nicht mehr zusammen. So ein Murks!
Christian M. schrieb:> ollte halt die Heizungssteuerung> erweitern, dass ich auch von extern darauf zugreifen kann
Lass das lieber sein. Etwas sicher ins Internet zu hängen und es sicher
zu halten ist eine Aufgabe für Spezialisten.
Sherlock 🕵🏽♂️ schrieb:> Lass das lieber sein. Etwas sicher ins Internet zu hängen und es sicher> zu halten ist eine Aufgabe für Spezialisten.
Ja hast recht! Damit kenne ich mich wirklich zu wenig aus! Ich dachte,
mit der Arduino-Cloud und "Secret Key" sei das sicher...
Gruss Chregu
Christian M. schrieb:> Ich dachte, mit der Arduino-Cloud und "Secret Key" sei das sicher...
Man bekommt nichts geschenkt. Schon gar nicht verantwortungsvollen
Umgang mut Daten und Verbindungen.