Sistema Domotico STM32 con App Android per Idroponica o giardino: Controllo Completo di Luci Irrigazione e Clima

  • Postato 12 gennaio 2025
  • Elettronica
  • By Daniele Baglivo
  • 630 Views

Un sistema domotico completo per idroponica,orto,giardino o serra che integra hardware STM32 websocket e un'app Android personalizzata. Il sistema permette il controllo totale dell'ambiente: illuminazione, irrigazione, temperatura e ventilazione, tutto gestibile da remoto attraverso un'interfaccia mobile intuitiva.

STM32_5-c4TCSlIrXO.webp
Stm32-Android

In questo articolo spiegherò in dettaglio il sistema di controllo domotico che ho sviluppato per gestire una coltivazione indoor idroponica o per sistemi di irrigazione giardino,ecc...  Il sistema è controllabile tramite un'app client sviluppata con Ionic/Vue.js che comunica con il microcontrollore stm32 attraverso WebSocket.

Il controllo puo` avvenire sia in locale,ma anche da remoto, ma in quest'ultimo caso bisogna avere un ip statico o un servizio come noip. Oggi vedremo solo la parte in locale, ma eventualmente faro` un articolo dedicato per la gestione da remoto.

Caratteristiche Principali

  • Controllo luci con timer
  • Gestione pompe d'irrigazione con timer multipli
  • Controllo temperatura e umidità
  • Gestione ventilazione
  • Controllo riscaldamento
  • Interfaccia app per il controllo remoto
  • Sincronizzazione oraria via NTP
  • Facilmente ampliabile con altre uscite

Hardware Necessario

  • STM32 (Blue Pill)
  • Modulo Ethernet W5500
  • Sensore DHT22 (temperatura e umidità)
  • Sensore umidità terreno
  • 5 relè per il controllo di:
    • Luci
    • Pompe (x2)
    • Ventilazione
    • Riscaldamento

Librerie Utilizzate 

Struttura del Codice

1. Gestione WebSocket

Il sistema utilizza WebSocket per la comunicazione real-time:

void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length)

Gestisce:

  • Connessione/disconnessione client
  • Autenticazione token
  • Comandi di controllo
  • Aggiornamento stati

 

2. Struttura Dati

Il sistema memorizza le configurazioni nella struttura Settings:

  • Stati manuali/automatici
  • Timer per luci e pompe
  • Soglie temperatura/umidità
  • Stati correnti dei relè

 

3. Controllo Dispositivi

Tre funzioni principali gestiscono il sistema:

void controlLights()      // Gestione illuminazione
void controlPump()        // Gestione pompe irrigazione
void controlEnvironment() // Gestione clima
 

4. Gestione Timer

Supporta:

  • Timer giornaliero per le luci
  • Timer multipli per ogni pompa
  • Controllo automatico ventilazione/riscaldamento basato su sensori
 

5. Persistenza Dati

Salvataggio configurazioni in memoria Flash:

void saveSettings()
void loadSettings()
 

6. Sincronizzazione NTP

Mantiene l'ora sincronizzata:

void syncTime()
void setupNTP()
 

Funzionamento

Inizializzazione

  • Caricamento configurazioni
  • Setup sensori e relè
  • Connessione rete
  • Avvio WebSocket server
  • Sincronizzazione ora
 

Loop Principale

  • Lettura sensori (DHT22, umidità suolo)
  • Controllo dispositivi
  • Gestione WebSocket
  • Salvataggio configurazioni modificate
 

Logica di Controllo

Verifica:

  • Timer programmati
  • Soglie sensori
  • Stati manuali
  • Condizioni ambientali

 

Schema Hardware:

Caption

App android:

 

Caption

 

Conclusioni

Questo sistema offre un controllo combinando:

  • Automazione basata su timer
  • Controllo ambientale
  • Gestione remota
  • Persistenza delle configurazioni
  • Configurazione flessibile

Il codice è strutturato in modo modulare e può essere facilmente esteso per aggiungere nuove funzionalità.

Il sistema e` ancora in fase di sviluppo e in futuro non escludo nuovi aggiornamenti, in ogni caso se volete partecipare con suggerimenti e nuove idee,fatecelo saper nei comenti del nostro canale youtube..

Vi metto a disposizione il codice che ho scritto con il relativo apk android, potete scaricarlo qui Stm32_websocket.zip

Caricheremo a breve il video sul nostro canale AdbProject che mostra il funzionamento del sistema. Se avete il piacere ci farebbe molto piacere se mettete un bel like e vi inscrivete al nostro canale, grazie!

4
Autori
Daniele Baglivo
Daniele Baglivo