Skip to content

Umochi/AutomaticHenHouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

#AutomaticHenHouse

Progetto per automazione della porta di un pollaio.

L'hardware che si occupa dell'apertura e chiusura della porta è costituito da una scheda Arduino Uno,
collegata alla rete tramite Ethernet-Shield.

Ethernet-Shield 


Il motore che esegue l'apertura della porta tramite una barra filettata è un semplice motore a 12v che monta un mandrino.

  


Per interfacciarsi con il motore è stato utilizzato un diver lmd18200, ma potevano essere utilizzati anche 4 semplici relais. L'utilizzo di questo diver permette di comandare oltre alla direzione e all'attività del motore, anche il voltaggio in uscita per regolare la velocità di salita e discesa.

  


Due semplici bottoni (PCB Switch) costituiscono il fine corsa per lo sportello in apertura e chiusura.
Altri due bottoni dello stesso tipo costituiscono una tastiera aggiuntiva per forzare la chiusura e l'apertura senza dover utilizzare l'interfaccia web service.

  


L'interfaccia grafica e la gestione dell'automatizzazione della chiusura e apertura sono costituite da un flusso Node-Red.
In particolare la libreria node-red-dashboard fornisce i nodi necessari alla creazione dell'interfaccia grafica.
L'interfaccia generata è responsive e si adatta bene anche all'utilizzo da smartphone.

 

      


La libreria: node-red-contrib-sun-position fornisce le funzionaità di schedulazioni con l'evento di alba e tramonto, relativo alla zona impostata.


Il comportamento del sistema è il seguente:

  • Arduino esegue il loop, nel quale controlla se sono presenti invocazioni sul servizio web esposto o pressione dei tasti.
  • Il servizio web, restituisce un json che riporta lo stato dei sensori di apertura e chiura e l'attività del motore.
  • Inoltre vengono recuperati i comandi inviati come url parameters, questi possono essere il comando di Chiusura, Apertura e di Stop. Ogni parametro non previsto verrà ignorato.
  • Il comando di Stop non viene però utilizzato all'interno della user interface esposta.
  • Viene anche data possibilità di tarare l'energia utilizzata dal mototore in caso di necessità. L'attivazione del motore viene eseguita al 100% del voltaggio disponibile, e viene ridotta al 50% dopo un secondo.
  • L'intera operazione di Apertura/Chiusura dura all'incirca 4 secondi.
  • La riduzione di potenza è importate, non solo per ridurre la velocità e la possibilà di incidenti, ma per ridurre l'inerzia sul fine corsa, e la possibilità di bloccare il meccanismo e non avare uno spunto sufficiente a avviare l'operazione successiva.
  • Alcuni ritardi condizionati nel ciclo sono stati introdotti per non sovracaricare Arduino.
  • Il Flow creato in Node-Red si occupa di generare l'interfaccia grafica, e attivare le schedulazioni.
  • La user interface mostra lo stato della porta, Chiusa, Aperta o in Stato Intermedio e lo stato di attività del motore.
  • Viene data lo possibilità di attivare o disattivare l'esecuzione automatica.
  • Due bottoni invece rendono possibile forzare Chiusura e Apertura.
  • Quando lo switch è impostato su Automatico, la schedulazione condizionata dalla posizione del sole nello stato di "Alba" e "Fine Tramonto" scatenano le operazioni di apertura e chiusura.
  • L'interfaccia può essere esposta su internet, nel mio caso utilizzo un servizio gratuito di DDNS e NginX per gestire reverse proxy e autenticazione.