Manual Vase Kit (IT)

MyDot Vase Kit
Guida completa all'installazione e all'utilizzo dello sketch
examples/MyDotVase incluso nella libreria Arduino MyDot.
L'esempio trasforma la carrier MyDot in un controller connesso per la cura delle piante. Legge un sensore analogico di umidità del terreno, controlla una pompa tramite il relè della carrier, pilota i NeoPixel, riceve comandi dal cloud Microeden e salva in memoria non volatile le impostazioni delle luci e della pompa.
1. Hardware e sicurezza
Hardware necessario
- carrier Microeden MyDot V1.0;
- una scheda Arduino supportata (l'esempio è testato con Arduino Nano ESP32);
- sensore analogico di umidità del terreno AZ-Delivery;
- pompa a bassa tensione e alimentatore esterno adatto alla pompa;
- tubo e serbatoio dell'acqua;
- stampante 3D per i componenti fisici del Vase Kit;
- dispositivo Microeden configurato sul cloud e rete Wi-Fi.
Componenti stampati in 3D
Per realizzare i componenti fisici del Vase Kit, come contenitore della pianta, staffe, supporti per il sensore e porta pompa/tubo, è necessaria una stampante 3D. La libreria Arduino contiene l'esempio firmware; i componenti meccanici devono essere stampati e assemblati separatamente in base al design Vase Kit utilizzato.
File STL da stampare
Scarica e stampa i seguenti file per assemblare il Vase Kit:
| File | Componente | STL |
|---|---|---|
column.stl |
Sezione standard della colonna; stampare il numero di pezzi necessario per l'altezza della pianta | Scarica STL |
mydot_pump_support.stl |
Supporto pompa | Scarica STL |
mydot_support.stl |
Supporto case MyDot | Scarica STL |
vase_bottom.stl |
Sottovaso | Scarica STL |
vase_top.stl |
Vaso | Scarica STL |
Il file column.stl è una sezione standard della colonna. Stampa il numero di
pezzi identici necessario in base all'altezza della pianta e assemblali tra
loro. Non scalare il file e non modificare l'altezza della singola sezione.
Materiali esterni consigliati
I seguenti materiali esterni sono quelli utilizzati come riferimento per il prototipo Vase Kit:
- Tubo trasparente flessibile – ANOMM
- Pompa elettrica autoadescante – RUNCCI-YUN
- Sensore capacitivo di umidità del terreno – AZ-Delivery
- Jumper maschio-maschio
I link sono riferimenti a prodotti esterni, non dipendenze della libreria e non costituiscono una garanzia di compatibilità. Prima del montaggio verifica il diametro interno del tubo, tensione e corrente della pompa, portata e compatibilità del relè/driver con l'hardware specifico.
Alimentazione
Alimenta la carrier tramite il jack DC esterno quando utilizzi relè, pompa, NeoPixel o driver della ventola. La sola alimentazione USB non è sufficiente per gli stadi di uscita della carrier. Rispetta il range di tensione specificato per la carrier e per il driver della pompa e verifica la polarità prima di collegare l'alimentazione.
La pompa deve essere alimentata tramite il relè della carrier o tramite un driver esterno appropriato. Non collegare mai una pompa o un motore direttamente a un GPIO Arduino.
Attenzione al sensore del terreno
Alimenta il sensore AZ-Delivery a 3,3 V, non a 5 V. Un'uscita analogica a 5 V può superare il range di ingresso della scheda selezionata e danneggiarla.
| Collegamento sensore | Collegamento MyDot/Nano |
|---|---|
VCC |
3V3 |
GND |
GND |
AO / uscita analogica |
A0 |
Pin della Nano ESP32
Quando è selezionata una Arduino Nano ESP32, la libreria MyDot utilizza questi alias della carrier:
| Funzione | Alias Nano ESP32 |
|---|---|
| Ingresso analogico sensore | A0 |
| Pulsante A | A7 |
| Pulsante B | D4 |
| Relè | D2 |
| NeoPixel | D3 |
| Chip select SD | D10 |
La libreria supporta sia la numerazione Arduino sia la modalità By GPIO number (legacy). È consigliata la normale numerazione Arduino; utilizza l'opzione legacy solo se richiesta dal resto del progetto.
2. Installazione dell'esempio
- Installa MyDot dal Library Manager dell'Arduino IDE oppure copia la libreria nella cartella delle librerie Arduino.
- Installa le dipendenze dichiarate in
library.propertiesse l'IDE non le installa automaticamente. - Seleziona Arduino Nano ESP32 e la porta seriale corretta.
- Apri File > Examples > MyDot > MyDotVase.
- Apri la scheda
microeden_secrets.he sostituisci localmente i placeholder:#define SECRET_WIFI_SSID "YOUR_WIFI_SSID" #define SECRET_WIFI_PASSWORD "YOUR_WIFI_PASSWORD" #define SECRET_DEVICE_ID "YOUR_DEVICE_ID" #define SECRET_DEVICE_TOKEN "YOUR_DEVICE_TOKEN"Non fare mai il commit di credenziali Wi-Fi o token cloud reali.
- Collega l'alimentazione esterna della carrier, collega la scheda via USB e carica lo sketch.
- Apri il Monitor Seriale a 115200 baud.
La connessione cloud su ESP32 utilizza il certificato ISRG Root X1 incluso nella libreria. Non è necessario abilitare TLS insicuro.
3. Funzionamento dello sketch
Il codice si trova in:
Lo sketch esegue queste operazioni:
- Inizializza le periferiche MyDot e il backend per la memoria persistente.
- Recupera modalità, stato e luminosità delle luci e durata della pompa.
- Avvia Wi-Fi e connessione MQTT al cloud.
- Legge e media otto campioni ADC del sensore del terreno.
- Invia telemetria su terreno, pompa, luci ed eventi.
- Gestisce comandi cloud, slider e pulsanti locali.
- Gestisce il timer della pompa e la riconnessione automatica Wi-Fi/MQTT.
Il loop() deve continuare a chiamare dot.run(). Non sostituirlo con ritardi
bloccanti di lunga durata.
4. Controlli locali
- Pulsante A: accende e spegne le luci.
- Pulsante B: passa tra le cinque modalità:
coolWhite,warmWhite,growVegetative,growBloomegrowFull.
Le azioni dei pulsanti vengono salvate immediatamente.
5. Controlli cloud
Il campo dei comandi cloud normalmente si chiama content.
Comandi
| Comando | Effetto |
|---|---|
pump |
Avvia un ciclo temporizzato con la durata salvata. |
lights_on |
Accende i NeoPixel con modalità e luminosità salvate. |
lights_off |
Spegne i NeoPixel senza perdere la luminosità. |
lights_warm |
Seleziona la luce bianco caldo. |
lights_cool |
Seleziona la luce bianco freddo. |
grow_veg |
Seleziona la modalità grow vegetativa. |
grow_bloom |
Seleziona la modalità grow fioritura. |
grow_full |
Seleziona il preset grow completo. |
lights_mode |
Usa un campo numerico aggiuntivo mode da 0 a 4. |
I vecchi comandi continui on e off della pompa non vengono più gestiti. La
pompa viene attivata solo da pump e si spegne automaticamente.
Widget slider
I messaggi degli slider utilizzano il formato compatto chiave_valore nel
campo content del cloud.
| Chiave slider | Esempio messaggio | Intervallo | Salvato |
|---|---|---|---|
brightness |
brightness_128 |
0–255 | Sì |
pumpDuration |
pumpDuration_5 |
1–60 secondi | Sì |
Il valore dello slider viene consumato una sola volta come evento. Un'eco di stato o telemetria dal cloud non può essere interpretata come un nuovo comando e non può riportare il valore a zero.
Campi di telemetria
Lo sketch pubblica questi campi:
| Campo | Significato |
|---|---|
soilRaw |
Lettura ADC mediata da A0. |
soilPercent |
Percentuale del terreno dopo la calibrazione. |
pumpOn |
Stato corrente del relè, in sola lettura. |
pumpActivations |
Numero di attivazioni dall'avvio. |
pumpDuration |
Durata configurata per la prossima attivazione. |
lightsOn |
Stato corrente delle luci. |
lightMode |
Nome della modalità corrente. |
lightModeIndex |
Indice della modalità corrente, 0–4. |
brightness |
Luminosità corrente dei NeoPixel, 0–255. |
event |
Motivo dell'ultimo messaggio di telemetria. |
Gli eventi più comuni sono periodic, pump, pumpStop, pumpBusy,
pumpCooldown, brightness, pumpDuration, lightsOn e lightsOff.
6. Temporizzazione e sicurezza della pompa
Lo slider della durata è limitato dal codice a 1–60 secondi. Il valore
predefinito è due secondi. Quando arriva pump:
- il relè viene attivato;
pumpOndiventatrue;pumpActivationsviene incrementato;- viene inviata la telemetria
pump; - il relè viene disattivato automaticamente dopo la durata configurata;
- viene inviata la telemetria
pumpStop.
È inoltre presente un cooldown di un minuto, misurato dall'inizio dell'ultima
attivazione. Un secondo comando durante il ciclo produce pumpBusy; un comando
durante il cooldown produce pumpCooldown. Questo impedisce a un widget
malfunzionante, a messaggi MQTT ripetuti o a un'automazione di riavviare
continuamente la pompa.
Il cooldown protegge il funzionamento durante l'avvio corrente. Viene azzerato al riavvio della scheda; la durata configurata invece rimane salvata.
Gestione dell'acqua
Prima di avviare un ciclo di irrigazione controlla che ci sia acqua disponibile nel sottovaso/serbatoio. Dopo l'irrigazione controlla il sottovaso e ricordati di svuotarlo periodicamente, per evitare ristagni o traboccamenti. Il sottovaso va controllato e svuotato regolarmente durante la normale manutenzione.
Per il Vase Kit stampabile in 3D, inizia impostando una durata di irrigazione di massimo un secondo. Il kit stampabile ha una capacità d'acqua ridotta e un ciclo più lungo può riempire rapidamente il sottovaso. Se la pompa viene usata con un sistema diverso o con un vaso più grande, regola il tempo di irrigazione in base alle dimensioni del vaso, al tubo, alla portata della pompa e al drenaggio. Prima di abilitare il funzionamento automatico prova sempre la durata scelta sotto supervisione.
7. Calibrazione del sensore terreno
Lo sketch definisce:
const int SOIL_RAW_DRY = 3000;
const int SOIL_RAW_WET = 1300;
La conversione predefinita assume che il valore ADC diminuisca quando il
terreno diventa più bagnato. soilPercentFromRaw() associa il valore secco a
0% e quello bagnato a 100%, limitando poi il risultato all'intervallo 0–100.
Per calibrare il sensore:
- leggi
soilRawcon la sonda nel terreno secco e annota il valore; - leggi il valore nel terreno ben bagnato;
- sostituisci
SOIL_RAW_DRYeSOIL_RAW_WETnello sketch; - ricompila e carica il programma.
Non alimentare il sensore a 5 V durante la calibrazione.
8. Stato persistente
Il record salvato contiene:
lightsOn;mode;brightness;pumpDurationSeconds.
Il backend viene scelto automaticamente in base all'architettura:
- Nano ESP32:
Preferences/ NVS di ESP32; - Nano RP2040 Connect con core Mbed: Mbed KVStore;
- core RP2040 o Nano 33 IoT con supporto EEPROM: EEPROM.
Il record include valore magico, versione e checksum. La versione corrente è la 4. I record della versione 3 vengono migrati per i campi delle luci e usano la durata predefinita di due secondi finché non viene salvato un nuovo valore.
La modifica dello stato luci, della luminosità o dello slider della durata viene salvata subito. La telemetria viene ritardata solo brevemente per evitare di intasare il cloud mentre uno slider viene trascinato.
9. Diagnostica seriale
Usa il Monitor Seriale a 115200 baud. Sono utili questi messaggi:
Restored light state...;Restored pump duration...;Pump duration from cloud...;Pump request ignored: a timed cycle is already active;Pump request ignored: cooldown active...;Telemetry - ...;MyDot: MQTT connected.e i messaggi di riconnessione.
L'esempio Display è dedicato alla diagnostica OLED. MyDotVase utilizza il
Monitor Seriale per lasciare visibili contemporaneamente messaggi del terreno,
del cloud, della pompa e della memoria persistente.
10. Risoluzione dei problemi
Lo sketch compila ma la pompa non parte
- verifica che l'alimentazione esterna della carrier sia collegata;
- verifica che la pompa abbia un alimentatore adeguato;
- controlla cablaggio del relè/driver e massa comune;
- verifica nel Monitor Seriale i messaggi
pumpepumpStop; - controlla che non sia attivo il cooldown di un minuto.
La pompa non riparte
È normale durante il ciclo attivo e fino a 60 secondi dal suo inizio. Attendi
la fine del cooldown o controlla la telemetria pumpCooldown.
Lo slider non sembra cambiare valore
- verifica che la chiave della dashboard sia esattamente
brightnessopumpDuration; - verifica che il contenuto ricevuto sia
brightness_<valore>opumpDuration_<secondi>; - verifica che il valore rientri nell'intervallo documentato;
- controlla il messaggio
from cloudnel Monitor Seriale.
Dopo il riavvio le luci sono spente
- controlla i messaggi ripristinati
lightsOn,brightnesselightMode; - verifica che la carrier sia alimentata dal jack esterno;
- verifica che il pin dati NeoPixel sia l'alias
D3sulla Nano ESP32; - assicurati che la libreria installata corrisponda alla versione dello sketch.
I valori del terreno sono invertiti o fuori scala
- verifica che il sensore sia alimentato a 3,3 V;
- verifica che
AOsia collegato adA0; - calibra
SOIL_RAW_DRYeSOIL_RAW_WETsul terreno e sulla sonda reali.
11. Sequenza di test consigliata
- Avvia lo sketch con la pompa scollegata e verifica la telemetria
soilRaw. - Accendi e spegni le luci con il pulsante A.
- Cambia modalità con il pulsante B.
- Modifica
brightnesse verifica che il valore resti dopo un riavvio. - Imposta
pumpDurationa un valore breve, ad esempio 1–2 secondi. - Invia una volta
pumpe verifica lo spegnimento automatico. - Invia subito un altro
pumpe verifica che venga rifiutato dal cooldown. - Collega la pompa solo dopo aver verificato relè e temporizzazione.