Vaso che si annaffia da solo con ESP32-S3
Un sensore capacitivo nel terreno del vaso e una piccola pompa a 12 V in una tanica d'acqua: quando la terra diventa secca la pompa annaffia, e si ferma quando torna umida. Un galleggiante nella tanica ferma la pompa prima che giri a secco e accende il LED rosso: è ora di riempirla. Funziona da solo, senza computer e senza internet.
Il programma
Chip BASIC: ogni riga è un'istruzione che leggi e puoi cambiare. Il compilatore lo verifica a ogni rilascio del sito.
REM Vaso che si annaffia
REM @part terra = soil
REM @part tanica = float
REM @part interruttore = mosfet
REM @part pompa = pump on=interruttore
10 LET secco = 30 : REM @cfg secco 5..60 Annaffia sotto (%)
20 IF terra.MOISTURE < secco AND tanica THEN pompa ON
30 IF terra.MOISTURE >= secco + 15 OR tanica = 0 THEN pompa OFF
40 IF tanica = 0 THEN LED red, on
50 IF tanica THEN LED red, off
60 WAIT 1s
70 GOTO 20Cosa devi vedere: con la terra umida la pompa è spenta; sotto il 30% di umidità parte, e si ferma al 45%. Con la tanica vuota la pompa non parte mai e il LED rosso è acceso. Nel simulatore abbassa il cursore del terreno e clicca il galleggiante per svuotare la tanica.
▶ Aprilo nell'IDENel simulatore vedi la logica girare subito, senza hardware. Il simulatore non verifica i cavi: quelli li controlli sulla scheda, e la verifica collegamenti dell'IDE ti guida.
I pezzi
Il compilatore ricava i pezzi dal programma. Per ognuno, la sua pagina ha il programma di prova da usare prima di montare tutto.
- LED (con le resistenze: 220 Ω, o 470 Ω su UNO R4)
- Sonda umidità del terrenoSi infila nella terra del vaso e dice quanto è bagnata, da 0 % (secca) a 100 % (bagnata).
- GalleggianteUn galleggiante nel serbatoio: vale 1 quando l'acqua lo solleva fino al suo livello.
- Driver MOSFETUn interruttore che un pin della scheda accende e spegne, per una pompa, una ventola o una valvola a 12 V.
- Pompa 12 VUna pompetta a immersione che sposta l'acqua, per annaffiare una pianta o riempire un vaso.
Collegamenti con ESP32-S3
- + rosso → ESP32-S3: GPIO4Con una resistenza da 220 Ω
- − → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
- SIG → ESP32-S3: GPIO2Il pin dice all'interruttore quando chiudersi: la corrente del carico passa dall'interruttore, mai dalla scheda.
- GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
- AOUT → ESP32-S3: GPIO9
- VCC → ESP32-S3: 3V3
- GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
- Segnale → ESP32-S3: GPIO1Pull-up interno: premuto vale 1
- GND → ESP32-S3: GNDMassa comune: questo collegamento è obbligatorio.
- pompa: + → interruttore: V+
- pompa: − → interruttore: OUT−
- Alimentatore 12 V: − → interruttore: GNDMassa comune: questo collegamento è obbligatorio.
- Alimentatore 12 V: + → interruttore: V+Collega l'alimentatore per ultimo, dopo aver controllato ogni filo.
Se non funziona
- Le luci: il programma gira ma non succede niente
- Il LED è girato al contrario, o manca la resistenza in serie. La gamba lunga va dal lato del piedino della scheda, la corta verso GND, con la resistenza in mezzo (220 Ω, o 470 Ω su UNO R4).
Cosa puoi cambiare
La soglia è l'impostazione `secco` alla riga 10 (un cursore nell'IDE): un cactus ne vuole meno, un basilico di più. Annaffia a brevi spruzzi: l'acqua ci mette un po' ad arrivare al sensore. Chiedi all'assistente di mandare l'umidità al telefono una volta al minuto, o di annaffiare solo la mattina.
Su quali schede funziona
- ESP32-S3 Freenove: sì
- Nordic nRF54LM20 DK: sì
- Arduino UNO R4 WiFi: sì