App PWA che dice cosa fare nell'orto e, soprattutto, quanta acqua dare a ogni coltura, calcolandolo sul meteo reale invece che su un calendario fisso. Motore idrico (metodo FAO-56) - il terreno come serbatoio: capacità dal tipo di suolo per la profondità radicale, prelievo giornaliero pari a ET0 × Kc, ricarica da pioggia efficace e irrigazioni al netto dell'efficienza del metodo - bilancio ricostruito su 21 giorni reali e proiettato su 10 di previsione, così si sa anche fra quanti giorni servirà il prossimo turno e quando saltarlo - soglia di intervento dipendente dal metodo: con la goccia si bagna al 55% della riserva utile, con l'aspersione all'85%, a mano si sfrutta tutto - correzioni per pacciamatura, serra e coltura in vaso Dati - 58 schede fra ortaggi, frutta e aromatiche con coefficienti colturali, profondità radicali e fattori di deplezione da FAO-56, più calendario, sesti, consociazioni, cure e problemi tipici - ricerca che capisce i nomi dialettali: cocomero, popone, petonciano, ramerino - meteo ed evapotraspirazione da Open-Meteo, senza chiave API, con cache offline Automazione - generatore di programma per centraline a settori: ritmo di regime da impostare e giorni esatti con le piogge già scontate - agente Node che custodisce lo stato, esegue i turni un settore alla volta e registra nel diario quello che ha davvero erogato - driver per ESP32, Shelly Gen1/Gen2, Tasmota, più modalità simulata predefinita - sonde Watermark: veto sui turni, riancoraggio del bilancio su misura reale, confronto fra sonda e calcolo - sicurezze: tetti su minuti e litri, blocchi gelo/vento/pioggia, chiusura all'avvio e all'uscita, doppia chiusura a tempo lato dispositivo, un settore per volta, sospensione dei settori con sonda muta o guasta Firmware ESP32 incluso, con schema di collegamento e istruzioni di posa. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GFnqupGt8T5HNNhPPHCjKs
124 lines
4.8 KiB
Markdown
124 lines
4.8 KiB
Markdown
# Firmware ESP32 per Pollice Verde
|
|
|
|
Trasforma un ESP32 e una scheda a relè nella centralina comandata dall'app.
|
|
|
|
## Materiale
|
|
|
|
| Pezzo | Indicativo |
|
|
|---|---|
|
|
| ESP32 DevKit v1 | 8 € |
|
|
| Scheda a 4 relè con optoisolatore | 7 € |
|
|
| Trasformatore 24 V AC per elettrovalvole (se non ne hai già uno) | 15 € |
|
|
| Alimentatore 5 V per l'ESP32 | 6 € |
|
|
| Scatola stagna IP65 | 10 € |
|
|
| Sonda Watermark 200SS (una per settore) | 35 € |
|
|
| Resistenza 10 kΩ 1% (una per sonda) | pochi centesimi |
|
|
|
|
Le elettrovalvole da giardino sono quasi sempre a **24 V AC**. Il relè commuta
|
|
quella tensione, non la 230 V: il comune del trasformatore va a tutte le valvole,
|
|
e ogni relè chiude il ritorno di una valvola. Se il tuo impianto usa tensione di
|
|
rete, fallo vedere a un elettricista prima di metterci le mani.
|
|
|
|
## Collegamenti
|
|
|
|
```
|
|
ESP32 GPIO 26 → IN1 della scheda relè (canale 0)
|
|
ESP32 GPIO 27 → IN2 (canale 1)
|
|
ESP32 GPIO 14 → IN3 (canale 2)
|
|
ESP32 GPIO 12 → IN4 (canale 3)
|
|
ESP32 5V → VCC scheda relè
|
|
ESP32 GND → GND scheda relè
|
|
|
|
Trasformatore 24V AC ─┬─ comune di tutte le elettrovalvole
|
|
└─ COM di ogni relè
|
|
Ogni NO del relè ─────── filo della rispettiva elettrovalvola
|
|
```
|
|
|
|
Il numero di canale che scrivi nella scheda dell'aiuola, dentro l'app, è la
|
|
posizione nell'array `PIN_RELE`: il primo pin è il canale 0.
|
|
|
|
### Sonde Watermark
|
|
|
|
Ogni sonda va in serie a una resistenza da 10 kΩ, fra due pin di eccitazione, e
|
|
l'ADC legge il punto di mezzo:
|
|
|
|
```
|
|
GPIO 32 ──┬── filo 1 della sonda 0
|
|
│
|
|
sonda 0 (Watermark 200SS)
|
|
│
|
|
├── GPIO 34 (lettura ADC)
|
|
│
|
|
resistenza 10 kΩ
|
|
│
|
|
GPIO 33 ──┘
|
|
|
|
GPIO 25 / 35 / GPIO 4 → stessa cosa per la sonda 1
|
|
```
|
|
|
|
I fili della Watermark non hanno polarità. GPIO 34 e 35 sono di **solo ingresso**
|
|
sull'ESP32 ed è il motivo per cui sono stati scelti per la lettura.
|
|
|
|
**La cosa da non sbagliare: i Watermark si leggono in corrente alternata.** Una
|
|
tensione continua elettrolizza il gesso e in poche settimane la sonda è da
|
|
buttare. Il firmware lo fa già: ogni misura è due letture a polarità invertita da
|
|
50 microsecondi l'una, e fra una misura e l'altra i pin restano entrambi a zero.
|
|
Non aumentare `MICROSECONDI_ECCITAZIONE` e non leggere più spesso di ogni
|
|
quarto d'ora.
|
|
|
|
### Dove infilare la sonda
|
|
|
|
A **metà della profondità delle radici** — 15-20 cm per l'orto, 30-40 cm per un
|
|
albero — e a 15-20 cm di lato dal gocciolatore, mai sotto: sotto il gocciolatore
|
|
misureresti il bulbo bagnato, non il terreno che la pianta esplora davvero.
|
|
|
|
Fai un foro con una punta di legno del diametro della sonda, bagna la sonda in
|
|
acqua per qualche minuto prima di inserirla, e **fai fango**: versa un po' di
|
|
terra stemperata nel foro prima di calare la sonda, così il gesso resta a
|
|
contatto pieno col terreno. Una sonda con aria attorno legge sempre secco.
|
|
|
|
A fine stagione, sui terreni che gelano, tirale fuori.
|
|
|
|
## Caricamento
|
|
|
|
1. Arduino IDE → *Preferenze* → URL aggiuntive:
|
|
`https://espressif.github.io/arduino-esp32/package_esp32_index.json`
|
|
2. *Gestore schede* → installa **esp32** by Espressif.
|
|
3. Apri `pollice-verde-esp32.ino`, scrivi rete Wi-Fi e password in cima.
|
|
4. Scheda: *ESP32 Dev Module*. Carica.
|
|
5. Apri il monitor seriale a 115200: stampa l'indirizzo IP da mettere in
|
|
*Impostazioni → Centralina → Indirizzo del dispositivo*.
|
|
|
|
Assegna all'ESP32 un **IP fisso** dal router, altrimenti prima o poi cambierà e
|
|
l'agente non lo troverà più.
|
|
|
|
## Sicurezze già nel firmware
|
|
|
|
- **Chiusura a tempo autonoma.** Ogni apertura porta con sé la sua durata: la
|
|
scheda chiude allo scadere anche se l'agente è morto o la rete è caduta.
|
|
- **Tetto di 3 ore** per singola apertura, non aggirabile dall'esterno.
|
|
- **Un solo canale alla volta**, perché la pressione di un impianto domestico
|
|
non basta per due settori insieme (disattivabile con `UNO_ALLA_VOLTA`).
|
|
- **Relè chiusi prima di configurare i pin**, così un riavvio dell'ESP32 non
|
|
apre le valvole per un istante.
|
|
- **Riconnessione Wi-Fi** ogni 30 secondi senza interrompere un turno in corso.
|
|
|
|
## Prova prima di collegare l'acqua
|
|
|
|
Carica il firmware, alimenta solo l'ESP32 e la scheda relè, e da un browser:
|
|
|
|
```
|
|
http://<ip-esp32>/stato
|
|
http://<ip-esp32>/valvola?canale=0&secondi=10
|
|
http://<ip-esp32>/sensori
|
|
```
|
|
|
|
Devi sentire il relè scattare e, dopo dieci secondi, scattare di nuovo in
|
|
chiusura. Solo quando tutti i canali fanno così, collega le valvole.
|
|
|
|
Per le sonde, la prova che vale: immergi la sonda in un bicchiere d'acqua e
|
|
aspetta dieci minuti. `/sensori` deve leggere **0-5 kPa**. Tirala fuori, lasciala
|
|
asciugare all'aria un giorno, e deve salire **oltre i 100 kPa**. Se resta
|
|
inchiodata su un valore o dice sempre `scollegata`, il problema è nel cablaggio,
|
|
non nel terreno.
|