esp32 alcuni chiarimenti

Ciao a tutti,
Avrei bisogno di un grande aiuto mi sono avvicinato da poco a questo mondo. Vi chiedo un pò di pazienza:-).

Ho acquistato un esp32 per creare una stazione meteo con un anemometro della davis vantage basandomi sul progetto
http://cactus.io/projects/weather/arduino-weather-station-davis-anemometer.

Con arduino il codice funziona ma adesso mi trovo a dover fare il porting sul esp32.

Secondo voi posso mantenere gli stessi collegamenti elettronici?
Tipo il
wind speed GPIO33
Windirection GPIO34 Analogico
stressa resistenza
e lavorare sul codice per portarlo sul esp32 ?

Grazie per l'aiuto.

Buonasera, :slight_smile:
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Gli ESP32 dovrebbero supportare gli interrupt su quasi tutti i piedini per cui dovrebbe funzionare.
Unico cambiamento la dichiarazione della routine di interrupt
https://lastminuteengineers.com/handling-esp32-gpio-interrupts-tutorial/

void IRAM_ATTR NomeRoutineInterrupt() {
    
}

va aggiunto IRAM_ATTR subito dopo void. La funzione dovrebbe essere isr_timer() se ho letto bene.

L'altra differenza sta nel convertitore AnalogicoDigitale per leggere la direzione

Cambia il fondoscala che non è più 5V ma 3.3V e cambia la risoluzione che da 10 passa a 12 bit quindi invece di valori da 0 a 1023 li hai da 0 a 4095.
Quindi
Direction = map(VaneValue, 0, 1023, 0, 359);
diventa
Direction = map(VaneValue, 0, 4095, 0, 359);
C'è anche il fatto che forse ti dovrai ricalibrare il tutto facendo delle prove perché il convertitore pur avendo 4096 valori non è lineare, quindi il 180 non è detto che corrisponderà a 2048.

Se il sensore viene da una Davis recente dentro non c'è un reed ma un sensore di Hall.

Grazie zoomx,
Sono riuscito a far funzionare il tutto.

Ho lasciato la resistenza di pullup a 4.7k forse va ricalcolata con i 3,3V rispetto ai 5V?
La direzione è perfetta metre la lettura dei cicli mi lascia un pò di dubbi.
La rilevazione della velocità è un pò bassa rispetto ad arduino.

Se la direzione ti funziona non toccare nulla.

Sulla velocità non so dirti, fino adesso ho usato anche io Arduino e non gli ESP32. Potrebbe essere che non rileva tutti gli impulsi perché va cambiato qualcosa, forse il pull up.