Modulo WiFi+Bt ESP32

Volevo segnalare questo simpatico progetto per ESP32 ... "Run a C Language Interpreter on Your ESP32" ...

I put together a C language interpreter for the ESP32 based boards that allows me to use their built-in file system for persistent program storage, to edit and Interpret my programs within a browser page without needing a compile and upload cycle. Better yet, I built in support for the common I/O Arduino functions such as analogWrite, digitalRead/Write, and supplied highly accurate servo positioning functions. But maybe the best part is that I added a debugger to the Interpreter that supports conditional Debug tracing, and conditional Watch functions that report variable values as the program executes. This article gives credit to those who built tools that I used for the Interpreter and also explains how to use it on your ESP32.

... un qualche pazzo che ha implementato un piccolo interprete 'C' che gira su ESP32 ed al quale ci si interfaccia tramite browser :grin:

Guglielmo

Incredibbbile! Lo ha fatto per provare degli sketch senza doverli caricare sulla flash. Alcune MCU permettono di avere lo sketch interamente in RAM (alcuni STM32 se non tutti, se non sbaglio, ma questo ne ha implementato una sorta di emulazione tramite l'interprete. Però per me la cosa più interessante è la CAM a 2 Mpx.

Gente con le palle

Qualcuno cortesemente saprebbe indicarmi una libreria funzionante per collegare un RTC ds3232 con la ESP32?

Ma scusa, ESP32 non usa la libreria Wire? ? ? :o ... perché, altrimenti, una libreria per Arduino dovrebbe andare bene, dato che, di sicuro, non vengono fatte cose a basso livello, ma solo chiamate alla Wire per gli accessi I2C ::)

Guglielmo

Ne ho provate diverse ma non ancora riesco a far funzionare il modulo RTC. Ho provato anche quella di JChristensen ma mi da errore su setSyncProvider(RTC.get); // the function to get the time from the RTC

Hai provato QUESTA versione qui (sempre di JChristensen)? ... magari è più aggiornata ::)

Guglielmo

gpb01:
Hai provato QUESTA versione qui (sempre di JChristensen)? … magari è più aggiornata ::slight_smile:

Guglielmo

No, la proverò e ti farò sapere, grazie :wink:

gpb01: Hai provato QUESTA versione qui (sempre di JChristensen)? ... magari è più aggiornata ::)

Guglielmo

Nulla di fatto Guglielmo.

Ho provato la tua libreria ma oltre a dire che non è compatibile con la Lolin D32 Pro in compilazione restituisce sempre l'errore sulla riga "setSyncProvider(RTC.get); // the function to get the time from the RTC2"

questa è la schermata di errore:

Arduino:1.8.9 (Windows 10), Scheda:"LOLIN D32 PRO, Disabled, Default, 80MHz, 921600, None"

ATTENZIONE: la libreria DS3232RTC dichiara di funzionare sulle architetture (avr) e potrebbe non essere compatibile con la tua scheda che utilizza l'architettura (esp32)
C:\Users\Ettore\AppData\Local\Temp\arduino_modified_sketch_61938\TimeRTC.ino: In function 'void setup()':

TimeRTC:13:21: error: 'RTC' was not declared in this scope

     setSyncProvider(RTC.get);   // the function to get the time from the RTC

                     ^

exit status 1
'RTC' was not declared in this scope

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

Prova con la Adafruit

testato: Prova con la Adafruit http://www.esp32learning.com/code/esp32-and-ds3231-rtc-example.php

Quella è per DS3231 ... non so se è compatibile con i DS3232 che usa lui e, sicuramente, mancano una serie di funzioni per accedere alla memoria in più che ha detto chip.

Guglielmo

Sto provando ad usare la libreria RtcDS3231.h come in questo esempio https://www.hackster.io/shaddow1201/using-the-esp32-with-rtc-ds3231-module-de9d85
Sembrerebbe funzionare però il problema è che non riesco ad interfacciarlo con la libreria NTP (NtpClientLib.h) che uso nel mio sketch. Non riesco a capire come assegnare epochTime nell’esempio postato sopra.
Il mio intento è ricevere l’ora da NTP ed aggiorare il modulo RTC di tanto in tanto.

Rettifico: non da errore in compilazione ma devo verificare se il modulo RTC dialoga correttamente con I2C (non ne sono molto sicuro).

L'ESP8266 ha un RTC software che gestisce automaticamente il passaggio fra orario invernale ed estivo e anche l'aggiornamento via NTP. Immagino sia lo stesso su ESP32.

zoomx: L'ESP8266 ha un RTC software che gestisce automaticamente il passaggio fra orario invernale ed estivo e anche l'aggiornamento via NTP. Immagino sia lo stesso su ESP32.

Questa cosa mi sarebbe utile perchè senza RTC al primo avvio non riesco a visualizzare correttamente l'ora sul display fino a che non riceve l'ora giusta dal NTP

Io ho un piccolo orologino che dall'avvio all'ora in 5 secondi mostra l'ora esatta. A volte ci sta di più per problemi di rete.

Su ESP32, avete mai provato a sfruttare la programmazione dei due core tramite arduino IDE creando due task (in multitasking)? Secondo voi come si possono passare variabili tra un task e l'altro?

1) no. 2) credo di si, ne parlano qui

gpb01: Quella è per DS3231 ... non so se è compatibile con i DS3232 che usa lui e, sicuramente, mancano una serie di funzioni per accedere alla memoria in più che ha detto chip.

Guglielmo

Il 3232 ha solo la ram in più, funzionano tutte le lib 3231, a lui non serve la ram integrata

Aggiorno sulle porte ESP32 (e così rinfresco un po’ anche la sezione ESP32.

Per chi non seguiva, avevo notato che le analogiche di ESP32 leggono diversamente da scheda a scheda (!!!).
Proseguendo le ricerche sul sito Espressif, la cosa era stata notata (con un po’ di ritardo) e si era corso ai ripari eseguendo la taratura delle porte direttamente sul chip in fase di produzione, uno a uno.

Di questi chip, però, sembra che ancora non se ne vedano, almeno sul mercato cinese.

Infatti esiste ancora il solito problema alla programmazione con IDE che obbliga a premere il tastino BOOT per far partire il trasferimento del programma, e le porte analogica continuano a leggere valori diversi da chip a chip.

Vi allego un foglio che ho redatto proprio ora con 12 schedine esp32-devkit dove leggo le prime due porte analogiche e le confronto con un DHT22 (che, chiaramente, essendo digitale, non può che dare valori identici su tutte le schede).
Le differenze, come potete vedere, si aggirano anche oltre i 3 gradi.
Gli asterischi li ho messi a schede con una stampigliatura diversa e molto più completa dello schermo metallico.

Se qualcuno ha avuto a che fare con ESP32 nuove ci può rendere edotti…

ESP32-Analogic.pdf (4.01 KB)

Dovresti leggere delle piccole tensioni note, tipo una pila alcalina carica o un generatore, se lo hai.